GiH*_*GiH 13 rubygems uninstall ruby-on-rails osx-snow-leopard rvm
我将从通常的noob线开始,"我是铁杆新手".哦,我正在运行Mac OSX 10.6.4
我一直在关注一些指南来设置,特别是这两个在这里和这里.指南很棒,我使用第二个的原因是因为RVM和我使用第一个的原因是MYSQL.
无论如何,当我开始时,我没有完全遵循指示,所以在我安装RVM之后,出于某种原因我安装了rails,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 '
有关如何移除导轨和所有这些宝石的任何想法?我只想从头开始使用RVM.
更新:
通过运行命令,gem list -d rails我在/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/18中找到了宝石.我应该手动删除它们吗?
GiH*_*GiH 34
解决方案!我仍然不明白为什么会发生这种情况,如果有人能够解释,我会很高兴.为什么路径不存在?是什么导致了这个错误
另外,我想提一下,我链接的解决方案有一条评论说这个问题是重复的.然而,原版有一个不同的解决方案,并没有帮助我(虽然它是找到这个答案的基础).只需在finder中手动删除gems就不会将它们从gem列表中删除.
没有进一步的麻烦 - 事实证明,当试图卸载gem时,它无法找到它的路径(我认为问题是因为使用sudo安装,但我可能是错的).你需要做的是(你必须逐个为每个宝石做这个,或者至少我必须这样做):
gem list -d 'name of gem' 并注意"安装在:"位置(在我的情况下,/ System/Library/Frameworks/Ruby.framework/Version/1.8/usr/lib/luby/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.8mkdir /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/bin现在所有卸载都应该有效!
cal*_*las 17
使用rvm时应注意的两件事:
你应该永远不会使用sudo安装宝石,只是做了gem install xxx
您无法从另一个gemset中卸载安装在全局 gemset 中的gem .你应该切换到全局gemset并从那里卸载:
rvm gemset use global
gem uninstall xxx
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)