似乎 ruby 2.0.0 已将“默认” gem 添加到组合中,并使它们无法通过 gem 卸载来移除。
如何删除所有非默认宝石?
我使用了这一行脚本。
for i in `gem list --no-versions`; do gem uninstall -aIx $i; done
它会忽略默认的 gem 错误并继续进行。简单明了。
首先,进入 gems 目录 像 ../ruby/2.0.0-p195/lib/ruby/gems/2.0.0/specifications
你会找到一个名为default的目录,其中包括所有 ruby 2.0 附带的默认 gem
将存储在默认目录中的所有*.gemspec移动到规范目录并删除空的默认目录。
然后你可以像过去一样做任何你想做的事情。:-)
我用 ruby 编写了一个脚本来删除所有非默认的 gem。
https://gist.github.com/nixpulvis/5042764
现在需要这样做,因为与 2.0.0 之前不同,一些 gem 在安装 ruby 时被标记为“默认”,并且不能使用gem uninstall
. 这使得以前流行的删除所有 gem 的方法不起作用。
在这里供参考。
gem list | cut -d" " -f1 | xargs gem uninstall
我还没有找到比排除“默认”宝石更好的答案:
/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