Ruby 2.0.0は「デフォルト」gemをミックスに追加し、gemのアンインストールによってそれらを取り外し不可にしているようです。
デフォルト以外のすべての宝石を削除するにはどうすればよいですか?
この1行のスクリプトを使用しました。
for i in `gem list --no-versions`; do gem uninstall -aIx $i; done
デフォルトのgemエラーを無視して続行します。シンプルで自明。
まず、../Ruby/2.0.0-p195/lib/Ruby/gems/2.0.0/specificationsのようなgemsディレクトリに移動します
あなたはdefaultという名前のディレクトリを見つけるでしょう。これにはRuby 2.0
*。gemspecdefault dirに保存されているすべてのspecifications dirに移動し、空のdefault dirを削除します。
その後、昔のように何でもできます。:-)
Rubyでデフォルト以外のすべてのgemを削除するスクリプトを作成しました。
https://Gist.github.com/nixpulvis/5042764
2.0.0以前とは異なり、一部のgemにはRubyのインストール時に「デフォルト」のラベルが付けられ、gem uninstall
でアンインストールできないため、これが必要になりました。これにより、すべてのgemを削除するための以前に一般的な方法が機能しなくなります。
ここでの参照用です。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