我目前安装了rbenv
和ruby 2.1.0
,我想继续使用我为此版本的ruby安装的任何宝石。
但是我也有系统(OSX 10.9)默认ruby(1.8.x),我以前为该版本安装了一些宝石。我可以在这里看到它们:
/Library/Ruby/Gems/1.8/gems
我不知道如何让gem
从上面的目录中正确卸载,这样我就可以清理我的机器并为我的rbenv
托管的新版本的ruby重新安装一些宝石的更新版本
例如,我已经为1.8.x安装了Compass和Sass,我不再需要Compass,并希望将它从我的机器中删除,并希望将Sass从3.2升级到3.3但是让它运行ruby 2.1.0。
目前,gem list
仅为我rbenv
设置的活动版ruby提供了当前安装的宝石,这是完全合理的。
那么如何在gem uninstall <old ruby 1.8.x gem>
处找到/Library/Ruby/Gems/1.8/gems
?
答案 0 :(得分:7)
rbenv允许您通过运行以下命令切换到您的系统版Ruby:
rbenv global system
然后使用以下方法卸载gems:
sudo gem uninstall -aIx
如果'sudo gem uninstall -aIx'失败,可能是因为你的宝石版本太旧了。然后,您可以运行gem list
打印出安装到系统Ruby的所有gem。
sudo gem uninstall [gem name]
关于您要删除的内容。您永远不必在gem安装/卸载上运行sudo,但由于您必须使用它来将gem安装到Ruby的系统版本,因此这是您将它们移出的唯一方法。
我的系统Ruby是2.0,因此您的默认gem可能不同,但默认情况下我预安装了以下内容。如果你不小心试图删除错误的那个,这不是什么大问题,因为它只是警告你它无法卸载默认宝石。
bigdecimal (1.2.0)
io-console (0.4.2)
json (1.7.7)
minitest (4.3.2)
psych (2.0.0)
rake (0.9.6)
rdoc (4.0.0)
rubygems-update (2.5.1)
test-unit (2.0.0.0)
之后,请记得切换回您的rbenv版Ruby。
rbenv list
rbenv global 2.1.0 # or whichever version you have installed
从那里你可以检查你的Ruby版本并安装这样的宝石:
ruby -v
#=> ruby 2.1.0-p648 (2015-12-16 revision 920553) [x86_64-darwin15]
gem install [gem name] # installs to currently set version of Ruby from running ruby -v