当前位置 : 主页 > 编程语言 > ruby >

如何在使用rbenv不同的ruby版本时从OSX的系统ruby 1.8.x正确卸载gem?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我目前安装了rbenv和 ruby 2.1.0,我想继续使用我为这个版本的ruby安装的任何宝石. 但是我也有系统(OSX 10.9)默认ruby(1.8.x),我以前为该版本安装了一些宝石.我在这里可以看到它们: /Library/R
我目前安装了rbenv和 ruby 2.1.0,我想继续使用我为这个版本的ruby安装的任何宝石.

但是我也有系统(OSX 10.9)默认ruby(1.8.x),我以前为该版本安装了一些宝石.我在这里可以看到它们:

/Library/Ruby/Gems/1.8/gems

我不知道如何从上面的目录中正确卸载宝石所以我可以清理我的机器并为我的rbenv管理的新版本的ruby重新安装一些宝石的更新版本.

例如,我已经为1.8.x安装了Compass和Sass,我不再需要Compass,并且希望将它从我的机器中删除,并希望将Sass从3.2升级到3.3但是让它运行ruby 2.1.0.

目前,gem列表仅为我提供了rbenv设置的ruby活动版本的当前安装的宝石,这是完全有道理的.

那么如何运行gem uninstall< old ruby​​ 1.8.x gem>发现于/Library/Ruby/Gems/1.8/gems?

rbenv允许您通过运行以下命令切换到系统版本的Ruby:

rbenv global system

然后使用以下方法卸载gem:

sudo gem uninstall -aIx

如果’sudo gem uninstall -aIx’失败,可能是因为你的宝石版本太旧了.然后,您可以运行gem list打印出安装到系统Ruby的所有gem.

sudo gem uninstall [gem name]

在你想要删除的那些.你永远不必在gem安装/卸载上运行sudo,但由于你必须使用它来为系统版本的Ruby安装gems,这是你将它们从那里运出的唯一方法.

我的系统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
网友评论