卸载rails和gem,得到错误“无法卸载,检查’gem list -d …’

我将从通常的noob线开始,“我是铁杆新手”。 哦,我正在运行Mac OSX 10.6.4

我一直在关注一些指南来设置,特别是这两个在这里和这里 。 指南很棒,我使用第二个的原因是因为RVM,我使用第一个的原因是MYSQL。

无论如何,当我开始时,我没有完全遵循指示,所以在我安装RVM之后,出于某种原因我安装了带有sudo gem install rails -v 2.3.8因为那是我需要的版本。 所以…我意识到我正在使用系统ruby,并没有利用RVM。 我现在做的是安装Ruby 1.9.2所以我可以安装rails 3并测试它,我还安装了1.8.7和rails 2.3.8所以我可以用它来满足我的需要。

现在,我正在尝试从系统Ruby卸载gem,但每当我尝试我收到此错误时:

错误:执行gem时…(Gem :: InstallError)
无法卸载,请检查’gem list -d 我尝试卸载任何gem

有关如何移除导轨和所有这些gem的任何想法? 我只想从头开始使用RVM。


更新:

通过运行命令gem list -d rails我在/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/18中找到了gem。 我应该手动删除它们吗?

解决 !! 我仍然不明白为什么会发生这种情况,如果有人能够解释,我会很高兴。 为什么路径不存在? 是什么导致了这个错误

此外,我想提一下,我链接的解决方案有一条评论说这个问题是重复的。 然而,原版有一个不同的解决方案,并没有帮助我(虽然它是找到这个答案的基础)。 只需在finder中手动删除gems,就不会将它们从gem列表中删除。

没有进一步的麻烦 – 事实certificate,当试图卸载gem时,它无法找到它的路径(我认为问题是因为使用sudo安装,但我可能是错的)。 你需要做的是(你必须逐个为每个gem做这个,或者至少我必须这样做):

  1. gem list -d 'name of gem' -d’gem gem list -d 'name of gem'并注意“Installed at:”位置(在我的例子中为/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8)
  2. sudo gem uninstall 'name of gem' -i 'the path noted above' sudo gem uninstall rails -i /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 sudo gem uninstall 'name of gem' -i 'the path noted above' (例如,在我的情况下, sudo gem uninstall rails -i /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
  3. 某些gem仍然可能无法卸载返回权限错误。 如果是这种情况,您需要做的是在上面的路径中创建一个文件夹/ bin。 (就我而言, mkdir /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/bin
  4. 继续卸载,如步骤2,仍然使用原始路径(/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8)。

现在所有卸载都应该有效!

使用rvm时应注意两件事:

  1. 永远不应该使用sudo来安装gem,只需要做一个gem install xxx

  2. 您无法从另一个gemset中卸载安装在全局 gemset中的gem。 你应该切换到全局gemset并从那里卸载:

 rvm gemset use global gem uninstall xxx 

在irb或正确的脚本中执行此操作:

 `gem list --no-versions`.split("\n").each do |gem| `gem list -d #{gem}`.gsub(/Installed at(.*):.*/).each do |dir| dir = dir.gsub(/Installed at(.*): /,'').gsub("\n", '') system "gem uninstall #{gem} -aIx -i #{dir}" end end 

试试这种方式:

 sudo apt purge rails 

好的我明白了….

在这一点上,如果你在终端,它不应该花几分钟重新安装整个shebang

我怀疑你可能没有正确的rvm名称,你有想要安装的gem,这就是为什么我建议重新安装rubygems并从你的Global rvm gemset名称开始构建你的核心gem。

删除旧版gem 1.8的所有gem的更通用的答案。

gem清单 – 无版本| xargs sudo gem uninstall -aIx

我使用RVM来管理我的gemsets并且没有选择gemset。 我不是因为我选择了错误的gem,而是我根本没有选择gem。 在暑假过后,我第一个早上大部分时间都花在一个可爱的方式!