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/规范
您会发现一个名为default的目录,其中包括ruby 2.0 附带的所有默认gem
将存储在默认目录中的所有*.gemspec移到规范文件夹,并删除空的缺省路径。
然后你就可以像过去一样随心所欲了
我用ruby编写了一个脚本来删除所有非默认的gem。
https://gist.github.com/nixpulvis/5042764
现在需要这样做,因为与2.0.0之前不同,一些gem在安装ruby时被标记为"默认",并且不能使用gem uninstall
卸载。这使得以前流行的删除所有宝石的方法不起作用。
仅供参考。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