卸载所有宝石Ruby 2.0.0

时间:2013-02-26 22:19:47

标签: ruby gem ruby-2.0

似乎ruby 2.0.0已经为混音添加了“默认”宝石,并且通过宝石卸载使它们无法移除。

如何删除所有非默认宝石?

4 个答案:

答案 0 :(得分:86)

我使用了这一行脚本。

for i in `gem list --no-versions`; do gem uninstall -aIx $i; done

它会忽略默认的gem错误并继续进行。简单而不言而喻。

答案 1 :(得分:10)

首先,转到gems目录 比如../ruby/2.0.0-p195/lib/ruby/gems/2.0.0/specifications
你会找到一个名为默认的目录,其中包含ruby 2.0附带的所有默认宝石

默认目录中存储的所有 *。gemspec 移至规范目录,然后删除空默认目录

然后你就可以做任何你想做的事情。: - )

答案 2 :(得分:6)

我在ruby中编写了一个脚本来删除所有非默认宝石。

https://gist.github.com/nixpulvis/5042764

现在需要这样做,因为与2.0.0之前不同,某些宝石在安装ruby时被标记为“默认”,并且无法使用gem uninstall卸载。这使得以前流行的删除所有宝石的方法无效。

这里是参考。
gem list | cut -d" " -f1 | xargs gem uninstall

答案 3 :(得分:0)

我还没有找到比排除“默认”宝石更好的答案:

/usr/local/bin/gem list --no-versions | \
grep -v -E "(bigdecimal|io-console|json|minitest|psych|rake|rdoc|test-unit)" | \
xargs --no-run-if-empty /usr/local/bin/gem uninstall --executables --user-install --all --force