Rails と gem をアンインストールすると、「アンインストールできません。'gem list -d …' を確認してください」というエラーが発生します。

StackOverflow https://stackoverflow.com/questions/4007074

質問

いつもの初心者のセリフ「私は Rails は初めてです」から始めます。ああ、Mac OSX 10.6.4 を実行しています。

私はセットアップのためにたくさんのガイドに従ってきました、特にこれらの 2 つ ここ そして ここ. 。ガイドは素晴らしいです。私が 2 番目のガイドを使用しているのは RVM のためであり、最初のガイドを使用しているのは MYSQL のためです。

とにかく、私が始めたとき、私は完全に指示に従っていなかったので、RVMをインストールした後、何らかの理由でレールをインストールしました sudo gem install rails -v 2.3.8 それが私が必要とするバージョンだからです。それで...Ruby システムを使用していて、RVM を活用していないことに気づきました。私が今したことは、Rails 3 をインストールしてテストできるように Ruby 1.9.2 をインストールしたことです。また、必要な用途に使用できるように 1.8.7 と Rails 2.3.8 もインストールしました。

さて、Ruby システムから gem をアンインストールしようとしていますが、アンインストールしようとすると必ず次のエラーが発生します。

エラー:gemの実行中...(Gem::インストールエラー)
アンインストールできません。「gem list -d」を確認してください アンインストールしようとする宝石は何でも'

レールやこれらすべての宝石を削除する方法について何かアイデアはありますか?RVM を最初から始めたいのです。


アップデート:

コマンドを実行することで gem list -d rails gem は /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/18 にあります。手動で削除する必要がありますか?

役に立ちましたか?

解決

解決!!なぜこのようなことが起こったのか私はまだ理解していません、誰かが説明してくれれば幸いです。なぜパスが存在しなかったのでしょうか?このエラーの原因は何ですか?

また、私がリンクしたソリューションには、質問が重複しているというコメントがあることにも言及したいと思います。ただし、オリジナルには別の解決策があり、役に立ちませんでした(ただし、これがこの答えを見つけるための基礎です)。Finder で gem を手動で削除するだけでは、gem リストから削除されません。

難しい話は抜きにして - gem をアンインストールしようとすると、そのパスが見つからないことがわかりました (問題は sudo でインストールしたためだと思いますが、間違っている可能性があります)。あなたがしなければならないことは次のとおりです(これをgemごとに1つずつ実行する必要があります、または少なくとも私はそうする必要がありました)。

  1. gem list -d 'name of gem' 「インストール場所:」の場所 (私の場合、/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8) をメモします。
  2. sudo gem uninstall 'name of gem' -i 'the path noted above' (元。私の場合、 sudo gem uninstall rails -i /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
  3. 一部の gem は依然としてアンインストールできず、アクセス許可エラーが返される場合があります。この場合は、上記のパスにフォルダー /bin を作成する必要があります。(私の場合、 mkdir /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/bin
  4. 元のパス (/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8) を使用したまま、手順 2 と同様にアンインストールを続けます。

これで、すべてのアンインストールが機能するはずです。

他のヒント

RVM を使用する際に注意すべき 2 つの点:

  1. あなたがすべき 一度もない 使用 sudo gemをインストールするには、次のようにするだけです gem install xxx

  2. にインストールされている gem をアンインストールすることはできません。 グローバル 別の gemset 内からの gemset。グローバル gemset に切り替えて、そこからアンインストールする必要があります。


 rvm gemset use global
 gem uninstall xxx

IRBまたは適切なスクリプトのいずれかでこれを実行します:

`gem list --no-versions`.split("\n").each do |gem|
  `gem list -d #{gem}`.gsub(/Installed at(.*):.*/).each do |dir|
    dir = dir.gsub(/Installed at(.*): /,'').gsub("\n", '')
    system "gem uninstall #{gem} -aIx -i #{dir}"
  end  
end

この方法を試してみてください

sudo apt purge rails

[OK]を私は見....

全体シェバング

を再インストールするには、

この時点で、あなたは、端末にいる場合、それは取るべきではありませんが、数分

私はあなたがなぜ私はRubyGemsのを再インストールし、あなたのGlobal RVM gemset名に最初からあなたのしているコアの宝石を構築することをお勧めしたいthatsのように、インストールしようとしている宝石を持って正しいRVM名でないかもしれないと思います。

宝石1.8の古いバージョンのためのすべての宝石を削除するには、より一般的な答え。

宝石の一覧--no-バージョン| xargsのsudoの宝石アン-aIx

私は自分のgemsetsを管理するためにRVMを使用していたとgemsetを選択していませんでした。私はそれは私がすべてでgemsetを選択していなかったということでした、私は間違っgemsetを選択したことはなかったです。私の夏休みの後に私の最初の朝の背中の時間の大半を過ごすのに素敵な方法!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top