正在卸载所有gems Ruby 2.0.0



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