インストールされているすべてのGemsを削除して最初からやり直す


92

私は最近、RubyとRuby on Railsの学習を開始し、入門資料をたくさん見てきました。最近、gemがインストールされない、またはインストールされるが、何らかの理由で使用できないというエラーが発生し続けることがわかりました。Rubyをインストールするだけで、すべてをもう一度削除することにしました。インストールをやり直します。あるトレーニングビデオでは、ほとんどのgemをRVMにインストールしていたので、それによって何かが変わるかどうかはわかりません。

つまり、私の質問は、「RVM、Rubygems、およびインストールされているすべてのGemsを削除して、Rubyだけでやり直すにはどうすればよいですか?」です。

編集:私はMac OS10.6を使用しています


1
/ opt / ruby​​にインストールしましたか?それが私がすることなので、ルビーを素早く取り除くことができます。
代替

stackoverflow.com/questions/15100496/を参照してください これは1.9.3でも機能するはずです:)
Nathan Lilienthal 2013

あなたの質問のタイトルと終わりに「短い質問」概要は...二つの異なるものです
mpowered

回答:


118

RVMのサポートサイト:

RVMはすべてを〜/ .rvmにインストールします。システムからRVMを削除するには、「rm -rf〜 / .rvm」を実行します。〜/ .rvmrcに1つの追加の構成ファイルがあり、もちろんbash / zshスタートアップファイルにRVMフックがある場合があります。

したがって、コマンドラインに移動して次のように入力するだけです rm -rf ~/.rvm

インストールされているすべてのgemは〜/ .rvmフォルダーにあるため、上記を実行すると、gemとインストールされているrubiesが一度に削除されます。

デフォルトのrubyインストールでRVMより前に追加したgemは、コマンドプロンプトで次のように入力することで削除できます。

for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done

1
私はそれを実行しましたが、gemはまだインストールされています。ただし、リロードしたように見えます。Mac XCodeからデフォルトでリロードされたかどうかわからない...–
Dave Long

RVM以前に追加した宝石を取り除くために別の行を追加しました
michaelmichael 2011

1
'-all -x -I'オプションをgemアンインストールに追加して、アンインストール中に(バイナリ、バージョン、または依存関係について)プロンプトが表示されないようにします。
timmfin 2012

4
参考までに、完全なコマンドは次のとおりです。forx in `gem list --no-versions`; gemアンインストール$ x -a -x -I; 完了
Daniel Rehner 2012

7
詳細については、別のオプション:gem list --no-versions | xargs gem uninstall -aIx
trisweb 2012年

68
gem uninstall -aIx

プロンプトなしですべてのgemをアンインストールします。

オプション

-a, --[no-]all                   Uninstall all matching versions
-I, --[no-]ignore-dependencies   Ignore dependency requirements while
                                 uninstalling
-x, --[no-]executables           Uninstall applicable executables without
                                 confirmation

それは私に与える:ERROR: While executing gem ... (Gem::InstallError) gist is not installed in GEM_HOME, try: gem uninstall -i /usr/share/rubygems-integration/all gist
user2023370

34

WindowsおよびUnixの場合、コマンドプロンプトでコピー/貼り付けします(Ruby 1.9.x)。

ruby -e "`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(' ')[0]}` unless line.strip.empty? }"

2
ERROR: While executing gem ... (Gem::CommandLineError) Please specify at least one gem name (e.g. gem build GEMNAME) -e:1: no .<digit> floating literal anymore; put 0 before dot bundle (0.0.1) ^ -e:1: syntax error, unexpected tINTEGER bundle (0.0.1) ^
同型写像

@isomorphismesは修正したかどうかわかりませんが、今すぐコマンドを試すことができます。
Haris Krajina 2013年

22

RVMを使用すると、次のように入力できます...

rvm gemset empty GEMSET

ここで、GEMSETは、空にしたいgemsetです。その後...

バンドルをインストールする

yum install bundler そして最後に

bundle install

14

rvm implodecli docsを参照)は機能しているようです-そしてそれは残り物を探す場所さえ教えてくれます


2
これは技術的に最も正しい答えであり、まさにそれが設計された目的です。
2017年

「爆縮
Nein

5
  1. これはUbuntu16.04での作業です。私の場合、コマンドrails -vを実行すると、NameErrorが原因でエラーがスローされます。3つのバージョンのレール(4.2.0、4.2.6、5.0.0.1)をインストールしました。コマンドgemuninstall rails -v version numberを使用して不要なgemをアンインストールしようとしましたが、できませんが、この問題を解決する方法を見つけました。すべてのgemをアンインストールするには、bashスクリプトを使用してgemリストのすべてのエントリをループする必要があります。この方法は非常に不便です。Rubygems 2.1.0のおかげで、1つのコマンドでそれを実行できるようになりました。

    ステップ1

    まず、Rubygemsを2.1.0以降にアップグレードしてください。このコマンドを実行します(古いバージョンで作業している場合。このコマンドを使用して、gem-vまたはgem-- versionのいずれかを使用してgemバージョンを確認できます )

    gem update --system

    gem --version

    ステップ2

    ターミナルでこのコマンドを実行します

    gemアンインストール--all

    ステップ-3

    gemバンドルをインストールします(念のために必要ではないと思います) gemインストールバンドル

    ステップ-4
    このコマンドgeminstall rails -vspecific version you want to install を使用して、システムにRailsをインストールします。 公式サイトのRailsのバージョンを確認できます。すべてのバージョンの 例:-Rails 4.2.6バージョンをインストールしました。必要に応じて、インストールします。 gem install rails -v 4.2.6

    ステップ-5

    最後に、基本的なコマンドrails -vを使用して、インストールされているRailsフレームワークアプリケーションのバージョンを確認します。Railsフレームワークの現在のバージョンを反映します。楽しい :)

    参考文献

http://ruby-journal.com/how-to-uninstall-all-ruby-gems/ http://guides.rubyonrails.org/v4.1/getting_started.html


2

ステップ1:

私は最初に次のようなエラーに遭遇し続けました:

/ usr / binディレクトリへの書き込み権限がありません

許可を得るために、私はrootユーザーになりました(これは私の現在の理解を超えた理由で潜在的に危険です)

sudo -s

クレジット

ステップ2:

それから、私は次のようなエラーに遭遇し続けました:

[gem]はデフォルトのgemであるため、アンインストールできません

これにより、すべてをアンインストールできました。

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

クレジット

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.