47

ruby 2.0.0は「デフォルト」のgemをミックスに追加し、gemのアンインストールによってそれらを削除できないようにしているようです。

デフォルト以外のすべての宝石を削除するにはどうすればよいですか?

4

4 に答える 4

86

この1行のスクリプトを使用しました。

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

デフォルトのgemエラーを無視し、続行します。シンプルで自明です。

于 2013-02-28T11:10:50.237 に答える
13

まず、.. / ruby​​ / 2.0.0- p195 / lib / ruby​​ / gems / 2.0.0/specificationsのようなgemsディレクトリに移動し
ます。

デフォルトディレクトリに保存されているすべての*.gemspec仕様ディレクトリに移動し、空のデフォルトディレクトリを削除します。

そうすれば、昔のように好きなことをすることができます。:-)

于 2013-06-30T10:12:16.970 に答える
6

デフォルト以外のすべてのgemを削除するスクリプトをrubyで作成しました。

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

2.0.0より前とは異なり、一部のgemはrubyのインストールで「デフォルト」とラベル付けされ、。でアンインストールできないため、これが必要になりますgem uninstall。これにより、以前は一般的だったすべてのgemを削除する方法が機能しなくなります。

参考までにこちらです。
gem list | cut -d" " -f1 | xargs gem uninstall

于 2013-02-26T22:19:46.783 に答える
0

「デフォルト」の宝石を除外するよりも良い答えはまだ見つかりません。

/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
于 2014-02-11T18:13:26.053 に答える