似乎ruby 2.0.0已经为混音添加了“默认”宝石,并且通过宝石卸载使它们无法移除。
如何删除所有非默认宝石?
答案 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