【问题标题】:How can I correctly uninstall gems from OSX's system ruby 1.8.x while using rbenv + different ruby version?如何在使用 rbenv + 不同的 ruby​​ 版本时从 OSX 的系统 ruby​​ 1.8.x 正确卸载 gem?
【发布时间】:2014-04-21 08:37:34
【问题描述】:

我目前安装了rbenv 和ruby 2.1.0,我想继续使用为此版本的 ruby​​ 安装的任何 gem。

但是我也有系统 (OSX 10.9) 默认 ruby​​ (1.8.x) 并且我之前已经为该版本安装了一些 gem。我可以在这里看到它们:

/Library/Ruby/Gems/1.8/gems

我不知道如何让 gem 从上述目录中正确卸载,这样我就可以清理我的机器并为我的 rbenv 管理的新版 ruby​​ 重新安装其中一些 gem 的新版本。

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

目前,gem list 只为我提供由rbenv 设置的活动版 ruby​​ 的当前安装的 gem,这很有意义。

那么我如何运行在/Library/Ruby/Gems/1.8/gems 找到的gem uninstall <old ruby 1.8.x gem>?

【问题讨论】:

  • 您是否尝试过通过显式路径调用系统 gem 命令来运行它:/usr/bin/gem uninstall ...?
  • 感谢@pjs 的建议,遗憾的是系统 gem 列表不包含任何与 ruby​​ 1.8 相关的 gem。
  • @pjs 你的建议触发了一些事情,我在/System/Library/Frameworks/Ruby.framework/Versions 目录中四处寻找,并注意到在1.8 和2.0 目录旁边有一个符号链接:Current -> 2.0。杀死那个符号链接并创建另一个到 1.8 允许我运行 /usr/bin/gem list 并查看我想要卸载的 gem。极好的!感谢您帮助我。
  • 你完成了这项工作。很高兴听到它对你有用。
  • @St.你能写下并回答你是如何从你的系统红宝石中删除所有宝石的吗?我做了和你完全一样的事情,只是想从 /Library 等中删除所有的宝石。

标签: ruby rubygems gem uninstallation rbenv


【解决方案1】:

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

rbenv global system

然后使用以下命令卸载 gem:

sudo gem uninstall -aIx

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

sudo gem uninstall [gem name]

关于您要删除的内容。您永远不必在 gem 安装/卸载时运行 sudo,但由于您必须使用它来将 gem 安装到 Ruby 的系统版本,所以这是您将它们从那里取出的唯一方法。

我的系统 Ruby 是 2.0,所以你的默认 gem 可能不同,但默认情况下我预装了以下。如果您不小心尝试删除错误的 gem,这没什么大不了的,因为它只会警告您无法卸载默认 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 版本并安装 gem,如下所示:

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

【讨论】:

    猜你喜欢
    • 2012-02-27
    • 2011-08-19
    • 2012-06-10
    • 2015-06-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多