移除所有已安装的 Gem 并重新开始
Posted
技术标签:
【中文标题】移除所有已安装的 Gem 并重新开始【英文标题】:Removing all installed Gems and starting over 【发布时间】:2011-06-21 21:58:35 【问题描述】:我最近开始学习 Ruby 和 Ruby on Rails,并且看过大量的入门资料。我最近发现我不断收到错误,即无法安装 gems 或将安装它们但由于某种原因无法使用它们,我决定我想删除所有内容,再次安装 Ruby并重新开始安装。一个培训视频让我使用 RVM 安装了我的大部分 gem,所以我不知道这是否会改变任何东西。
简而言之,我的问题是“我如何摆脱 RVM、Rubygems 和所有已安装的 Gem,以便我可以只使用 Ruby 重新开始?”
编辑:我使用的是 Mac OS 10.6
【问题讨论】:
你安装到 /opt/ruby 了吗?这就是我所做的,以便我可以快速移除红宝石。 参见***.com/questions/15100496/… 这也适用于 1.9.3 :) 你的问题标题和最后的“短问题”摘要是两个不同的东西...... 【参考方案1】:来自RVM 支持网站:
RVM 将所有内容安装到 ~/.rvm 中。 要从系统中删除 RVM,请运行 'rm -rf ~/.rvm'。您可能在 ~/.rvmrc 中有一个额外的配置文件,并且 当然你的 RVM 钩子 bash/zsh 启动文件。
所以,只需转到命令行并输入rm -rf ~/.rvm
所有已安装的 gem 都在 ~/.rvm 文件夹中,因此执行上述操作将一次性删除 gem 和已安装的 rubies。
可以通过在命令提示符下键入以下内容来删除您使用默认 ruby 安装在 RVM 之前添加的 Gem:
for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done
【讨论】:
我刚刚运行了它,但仍然安装了 gems。然而,它看起来像是重新加载了它。不确定它是否重新加载了 Mac XCode 的默认值或什么... 添加了另一行来摆脱您在 RVM 之前添加的宝石 我会在 gem 卸载时添加 '-all -x -I' 选项,以防止它在卸载时提示您(对于二进制文件、版本或依赖项)。 供参考,完整的命令是:for x in `gem list --no-versions`;做 gem 卸载 $x -a -x -I;完成 更多参考,另一种选择:gem list --no-versions | xargs gem uninstall -aIx
【参考方案2】:
gem uninstall -aIx
在没有提示的情况下卸载所有 gem。
选项
-a, --[no-]all Uninstall all matching versions
-I, --[no-]ignore-dependencies Ignore dependency requirements while
uninstalling
-x, --[no-]executables Uninstall applicable executables without
confirmation
【讨论】:
这给了我:ERROR: While executing gem ... (Gem::InstallError) gist is not installed in GEM_HOME, try: gem uninstall -i /usr/share/rubygems-integration/all gist
那么你应该按照它的建议去做。然后再重新运行gem uninstall -aIx
。如果其他 gem 发生错误,请重复,直到它完成【参考方案3】:
对于 Windows 和 Unix 在命令提示符中复制/粘贴 (Ruby 1.9.x)。
ruby -e "`gem list`.split(/$/).each |line| puts `gem uninstall -Iax #line.split(' ')[0]` unless line.strip.empty? "
【讨论】:
ERROR: While executing gem ... (Gem::CommandLineError) Please specify at least one gem name (e.g. gem build GEMNAME) -e:1: no .<digit> floating literal anymore; put 0 before dot bundle (0.0.1) ^ -e:1: syntax error, unexpected tINTEGER bundle (0.0.1) ^
@isomorphismes 不确定我是否已修复它,但您现在可以尝试命令。【参考方案4】:
使用 RVM,您只需键入...
rvm gemset empty GEMSET
其中 GEMSET 是您要清空的 gemset。那么……
安装包
yum install bundler
最后
bundle install
【讨论】:
【参考方案5】:rvm implode
(请参阅cli docs)似乎有效 - 它甚至可以告诉您在哪里寻找剩菜
【讨论】:
这在技术上是最正确的答案,也正是它的设计目的。 "implode - 删除它管理的所有 ruby 安装,在 ~/.rvm 中的所有内容" "implode 不会卸载 RVM 本身。基本上,除了手动清理安装对系统所做的所有事情之外,没有办法自动卸载 RVM。这是一个巨大的缺点。唯一的方法卸载 RVM 就是手动清理它对系统所做的一切。”来源:duseev.com/articles/rbenv-vs-rvm 注:我是新手,没有资格判断文章中的建议是否准确。 @MarkGavagan 我同意它不会做所有事情,但它会告诉你还需要做什么(我在上面所说的“剩菜”)。事实上,那篇文章关于卸载 rvm 的第 0 步是……rvm impode
:-)
这个效果和rvm gemset empty GEMSET
一样吗?【参考方案6】:
这是在 Ubuntu 16.04 上为我工作的。对我来说,当我执行 命令 rails -v 由于 NameError,它会抛出错误。我有 安装了 3 个版本的导轨(4.2.0、4.2.6、5.0.0.1)。我在尝试 使用命令 gem uninstall rails -v 卸载不必要的 gem 版本号但我做不到,但我找到了解决方法 这个问题。为了卸载所有 gem,你必须循环 使用 bash 脚本遍历 gem 列表中的所有条目。这种方法是 很不方便。感谢 Rubygems 2.1.0,您现在可以做到 一个命令。
步骤 - 1
首先,请确保将 Rubygems 升级到 2.1.0 或 较新。为此运行此命令(如果您正在使用较旧的 版本。您可以使用此命令检查您的 gem 版本 其中 gem -v 或 gem --version)
gem 更新 --system
gem --version
步骤 - 2
在你的终端中运行这个命令
gem 卸载 --all
步骤 - 3
安装 gem 包(我认为没有必要只是为了 防范措施) gem 安装包
步骤 - 4
使用此命令在系统上安装导轨
gem install rails -v specific version you want to install
你可以在官网查看rails版本rails all versions
示例:-我已经安装了 rails 4.2.6
版本,您根据要求安装。
gem install rails -v 4.2.6
步骤 - 5
最后检查安装的rails框架应用程序的版本 通过使用基本命令 rails -v。它将呼应当前 rails 框架的版本。享受:)
参考文献
http://ruby-journal.com/how-to-uninstall-all-ruby-gems/ http://guides.rubyonrails.org/v4.1/getting_started.html
【讨论】:
【参考方案7】:第 1 步:
我首先一直遇到一个错误,上面写着:
您没有 /usr/bin 目录的写入权限
为了获得许可,我成为了 的 root 用户(由于我目前无法理解的原因,这可能很危险):
sudo -s
Credit
第 2 步:
然后,我一直遇到一个错误,上面写着:
[gem] 无法卸载,因为它是默认 gem
这让我可以卸载所有东西:
for i in `gem list --no-versions`; do gem uninstall -aIx $i; done
Credit
【讨论】:
【参考方案8】:FWIW,有一些奇怪的情况下安装了 gems 但没有真正安装:
这应该可以合理可靠地解决问题。
gem uninstall -Iax `gem list | grep default | awk 'print $1'`
【讨论】:
您可能想用 grep 代替'default:'
(包括冒号),因为有不少 gem 的名称中包含“default”。以上是关于移除所有已安装的 Gem 并重新开始的主要内容,如果未能解决你的问题,请参考以下文章
Puppet:安装 gem 包时如何重新加载环境 - rbenv 版本未激活