我将从通常的noob线开始,“我是铁杆新手”。哦,我正在运行Mac OSX 10.6.4
我一直在关注一系列指南,特别是这两个here和here。指南很棒,我使用第二个的原因是因为RVM,我使用第一个的原因是MYSQL。
无论如何,当我开始时,我没有完全遵循指示,所以在我安装RVM之后,出于某种原因我安装了sudo gem install rails -v 2.3.8
的rails,因为那是我需要的版本。所以...我意识到我正在使用系统ruby,并没有利用RVM。我现在做的是安装Ruby 1.9.2所以我可以安装rails 3并测试它,我还安装了1.8.7和rails 2.3.8所以我可以将它用于我需要它。
现在,我正在尝试从系统Ruby中卸载gem,但每当我尝试收到此错误时:
错误:执行gem时...... (宝石:: InstallError)
无法卸载,请检查'gem list -d 我尝试卸载的任何宝石 '
有关如何移除导轨和所有这些宝石的任何想法?我只想从头开始使用RVM。
更新
通过运行命令gem list -d rails
,我在/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/18中找到了宝石。我应该手动删除它们吗?
答案 0 :(得分:34)
<强> SOLUTION 强> !!我仍然不明白为什么会发生这种情况,如果有人能够解释,我会很高兴。为什么路径不存在?是什么导致了这个错误?
另外,我想提一下,我链接的解决方案有一条评论说这个问题是重复的。然而,原版有一个不同的解决方案,并没有帮助我(虽然它是找到这个答案的基础)。只需在finder中手动删除gems,就不会将它们从gem列表中删除。
没有进一步的ado - 事实证明,当尝试卸载gem时,它无法找到它的路径(我认为问题是因为使用sudo安装,但我可能错了) 。你需要做的是(你必须逐个为每个宝石做这个,或者至少我必须这样做):
gem list -d 'name of gem'
并注意“已安装在:”位置(在我的情况下为/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
mkdir /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/bin
现在所有卸载都应该有效!
答案 1 :(得分:17)
使用rvm时应注意两件事:
您应该从不使用sudo
安装宝石,只需执行gem install xxx
您无法从其他gemset中卸载安装在全局 gemset中的gem。您应该切换到全局gemset并从那里卸载:
rvm gemset use global
gem uninstall xxx
答案 2 :(得分:5)
在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
答案 3 :(得分:3)
尝试这种方式:
sudo apt purge rails
答案 4 :(得分:0)
好的,我明白了......
此时,如果你在终端,不应该花几分钟重新安装整个shebang
我怀疑你可能没有正确的rvm名称,那里有你想要安装的宝石,这就是为什么我建议重新安装rubygems并从Global
开始构建你的核心宝石rvm gemset name。
答案 5 :(得分:0)
删除旧版gem 1.8的所有宝石的更通用的答案。
gem list --no-versions | xargs sudo gem uninstall -aIx
答案 6 :(得分:0)
我使用RVM来管理我的gemsets并且没有选择gemset。我不是选择了错误的宝石,而是我根本没有选择宝石。一个可爱的方式,在我暑假后的第一个早晨花一个小时的时间!