卸载所有gemRuby 2.0.0

看来,ruby2.0.0已经添加了“默认”的gem混合,并使其不可卸除gem卸载。

如何删除所有非默认的gem?

我用这个一行脚本。

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

它忽略了默认的gem错误,只是收益。 简单而不言而喻。

首先,进入gem目录像../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 。 这使得以前stream行的方法删除所有gem不起作用。

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

我还没有find比排除“默认”gem更好的答案:

 /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