RVM:卸载 gemset 的所有 gem

Posted

技术标签:

【中文标题】RVM:卸载 gemset 的所有 gem【英文标题】:RVM: Uninstalling all gems of a gemset 【发布时间】:2011-06-09 06:29:37 【问题描述】:

我有全球宝石和各种宝石。我想删除宝石组的所有宝石。除了卸载 gemset 之外,还有其他方法吗?

【问题讨论】:

【参考方案1】:

这是卸载 gemset 中所有 gem 最安全的方法

第 1 步

如果你的 gem 版本低于 2.1。

gem update --system

gem --version

第 2 步

gem uninstall --all

references

【讨论】:

【参考方案2】:

你也可以使用rvm --force gemset empty

【讨论】:

【参考方案3】:

rvm gemset empty <gemset> 有效,但前提是您指定了 gemset 名称。

如果要清空 default gemset,则需要为 gemset 名称传递一个空字符串。

rvm gemset empty mygems ""

【讨论】:

【参考方案4】:

rvm gemset empty <gemset name>

这将从您提到的宝石集中移除所有宝石。

【讨论】:

【参考方案5】:

使用gemset empty 命令:

rvm gemset empty mygems

【讨论】:

您需要指定要清空的 gemset。仅仅“rvm 使用 [gemset_name]”是不够的。您需要“rvm gemset empty [gemset_name]”。 我想如果您有很多 gem,可能需要一段时间才能将它们全部卸载。 顺便说一句,现在我可以运行 rvm gemset empty 并清除当前的 gemset。【参考方案6】:

此命令会在 1 步中删除本地安装的所有 ruby​​ gem 在 Ubuntu 10.10 中运行良好

gem list | cut -d" " -f1 | xargs gem uninstall -aIx

PS - 移除所有本地宝石。相应地使用 sudo。

【讨论】:

gem 还有一个 --no-versions 标志,这很好:gem list --no-versions | xargs gem uninstall -aIx【参考方案7】:

从 gemset 中删除所有 gem 与删除 gemset 然后将其添加回本质上不是相同的操作吗?为什么不这样做:

$ rvm gemset mygemset
$ rvm gemset delete mygemset
$ rvm gemset create mygemset

【讨论】:

是的,本质上是一样的。但我想知道是否有办法在不删除 gemset 的情况下做到这一点。当您删除 gemset 时,这些 gem 是否也被删除了,还是保存到了缓存中? 我很确定它们已被完全删除。例如,我有一个名为 jruby-1.5.6@radiant 的 gemset。所有的宝石都在这里:/Users/dparoulek/.rvm/gems/jruby-1.5.6@radiant。当我执行rvm gemset radiant 时,它会警告您确认,然后删除整个/Users/dparoulek/.rvm/gems/jruby-1.5.6@radiant 目录。 我猜这差不多。我一直在寻找替代方案,因为我想从全局 gemset 中删除所有 gem,这样我就可以阻止新 gemset 从全局 gemset 中“继承” gem。

以上是关于RVM:卸载 gemset 的所有 gem的主要内容,如果未能解决你的问题,请参考以下文章

使用 Bundler 时,为啥要关心 RVM 的 Gemset 功能?

在 OSX 中卸载所有已安装的 gem?

如何使用不同版本的 ruby​​ 但使用相同的 gemset?

使用 rvmrc 或 ruby​​-version 文件使用 RVM 设置项目 gemset?

为啥 RVM 卡在“#importing default gemsets,这可能需要时间”?

如何重命名 gemset?