以前のすべてのgemインストールを元に戻してアンインストールしたい場合があります。
たとえば、RVMを使用するために友人がRails開発マシンを移行するのを支援する必要がありました。以前はシステム全体gem
で使用していたため、複数のプロジェクトで作業するときに多くの頭痛の種を抱えていました。 本質的に、彼はRVM変換の代名詞でした。
OSXシステム上のすべてのgemをエレガントにアンインストールするにはどうすればよいですか?
yes Y | gem uninstall -a -I
以前のすべてのgemインストールを元に戻してアンインストールしたい場合があります。
たとえば、RVMを使用するために友人がRails開発マシンを移行するのを支援する必要がありました。以前はシステム全体gem
で使用していたため、複数のプロジェクトで作業するときに多くの頭痛の種を抱えていました。 本質的に、彼はRVM変換の代名詞でした。
OSXシステム上のすべてのgemをエレガントにアンインストールするにはどうすればよいですか?
yes Y | gem uninstall -a -I
回答:
Rubygems> = 2.1.0
gem uninstall -aIx
a
すべてのバージョンを削除し、実行可能ファイルを含む
I
依存関係を無視し
x
ます
ラブジェム<2.1.0
for i in `gem list --no-versions`; do gem uninstall -aIx $i; done
ERROR: While executing gem ... (Gem::InstallError) gem "test-unit" cannot be uninstalled because it is a default gem
(gem 2.0.3)
for i in `gem list --no-versions`; do gem uninstall -aIx $i 2>/dev/null; done
新しいGemfileを作成して実行することもできますbundle clean --force
。これにより、新しいGemfileに含まれていない他のすべてのgemが削除されます。
'--no-version'オプションを利用して、カット手順をスキップして、最も小さい異なるバージョン:
gem list --no-version |xargs gem uninstall -ax
あなたはすべてを削除しているので、「I」オプションの必要性はわかりません。宝石が取り除かれるときはいつでも、それは結構です。
sudo
gemが通常のユーザーによってインストールされた場合は必要ありません。
どちらかを使用
$ gem list --no-version | xargs gem uninstall -ax
または
$ sudo gem list --no-version | xargs sudo gem uninstall -ax
「gemリスト」と「sudo gemリスト」は独立したリストを提供するため、必要に応じて、両方を実行する必要があります。
通常の「gemリスト」とsudo-edの「gem uninstall」やその逆を混在させないでください。そうしないと、sudoでインストールされたgem(以前)をアンインストールしたり、多くのエラー(後半)が発生する可能性があります。
ルビを使ってそれをしたい場合:
ruby -e "`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(' ')[0]}` unless line.strip.empty? }"
乾杯
Rubygems> = 2.1.0
gem uninstall -aIx
ターミナルがエラー以下を返す場合
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
次に、上記のコマンドを以下のように記述します
sudo gem uninstall -aIx
Mac OSアカウントのパスワードを入力してください。
そして、あなたは、特定の接頭辞で、すべての宝石を削除するためにここにいるあなたの人々のために(エヘン、私はあなたを見てい-SDKをAWS!)あなたはこのような何かを実行することができます:
gem list --no-version | grep "aws-sdk-" | xargs gem uninstall -aIx
明らかにクエリの代わりに入れてくださいaws-sdk-
。-I
依存関係を無視するには、そこにが必要です。
安藤の以前の答えから採用
rootとしてインストールされたgemを削除しようとすると、デフォルトのgemをアンインストールしようとしてエラーが発生すると、xargsが停止したように見えます。
sudo gem list | cut -d" " -f1 | xargs gem uninstall -aIx
# ERROR: While executing gem ... (Gem::InstallError)
# gem "test-unit" cannot be uninstalled because it is a default gem
これは誰にとってもうまくいくわけではありませんが、代わりに私が使ったものがこれです:
sudo for gem (`gem list | cut -d" " -f1`); do gem uninstall $gem -aIx; done