卸载所有宝石Ruby 2.0.0

Nat*_*hal 45 ruby gem ruby-2.0

似乎ruby 2.0.0在混合中添加了"默认"宝石,并且通过gem卸载使它们无法移除.

如何删除所有非默认宝石?

ihj*_*hji 86

我使用了这一行脚本.

for i in `gem list --no-versions`; do gem uninstall -aIx $i; done
Run Code Online (Sandbox Code Playgroud)

它会忽略默认的gem错误并继续进行.简单明了.

  • 不行.仍然得到'无法卸载,因为它是一个默认的宝石'错误. (17认同)

小智 11

首先,转到gems目录,如../ruby/2.0.0-p195/lib/ruby/gems/2.0.0/specifications
您将找到一个名为default的目录,其中包含ruby 2.0附带的所有默认gem

将存储在默认目录中的所有*.gemspec移动到规范 dir并删除空的默认目录.

那么你可以做任何你想做的事情,比如过去.:-)


Nat*_*hal 6

我在ruby中编写了一个脚本来删除所有非默认宝石.

https://gist.github.com/nixpulvis/5042764

现在需要这样做,因为与2.0.0之前不同,一些宝石在安装ruby时被标记为"默认",并且无法卸载gem uninstall.这使得以前流行的删除所有宝石的方法不起作用.

这里是参考.
gem list | cut -d" " -f1 | xargs gem uninstall