73

私はbundle showgemディレクトリへの完全なパスを取得しました。

残念ながら、を使用してディレクトリを削除しましたrm -r gem_path。その後、レールアプリが機能しなくなりました。サーバーまたはレールコンソールを起動しようとすると、次のエラーが出力されます。

<class:Application>: 初期化されていない定数MyAPP::Application::Gem(NameError)

元に戻すにはどうすればよいですか?

バンドルにgemを検索して再インストールするように強制しようとbundle installbundle updateましたが、うまくいきませんでした。

また、を削除しGemfile.lockて実行しようとしましたbundle install。何も変わらず、同じエラーです。

問題の gem はAct as taggable onです。

4

8 に答える 8

45

いつでも使用できます:

gem pristine acts-as-taggable-on

pristine - gem キャッシュにあるファイルから、インストールされた gem を元の状態に復元します。

現在のプロジェクトの gem を復元したいだけの場合は、次を実行する必要があります。

bundle exec gem pristine acts-as-taggable-on

于 2014-02-19T14:09:02.653 に答える
14

最初にgem q --L、のショートカットを作成しましgem query --localた。インストールされているすべてのローカル gem が出力されます。

actionmailer (3.2.8, 3.2.6, 3.2.1, 3.1.0)
actionpack (3.2.8, 3.2.6, 3.2.1, 3.1.0)
activemodel (3.2.8, 3.2.6, 3.2.1, 3.1.0)
activerecord (3.2.8, 3.2.6, 3.2.1, 3.1.0)
activeresource (3.2.8, 3.2.6, 3.2.1, 3.1.0)
activesupport (3.2.8, 3.2.6, 3.2.1, 3.1.0)
acts-as-taggable-on (2.3.3)
...

そして、DVG のアドバイスに従って、正しい名前を使用して gem をアンインストールしgem uninstall acts-as-taggable-onbundle install. その後、問題なく再起動rails cできました。rails s

于 2012-08-31T01:50:23.313 に答える
9

で gemを使用してRVMを使用している場合、gem を再インストールしない~/.rvm/場合、これは機能します。bundle

まず、gem ソースを削除します。

bundle show $GEM
rm -rf $PATH_TO_GEM

コンパイルされた gem キャッシュをクリアします。

rm -rf ~/.rvm/gems/ruby-$RUBYVERSION[@$GEMSET]/cache/$GEM.gem

また、バンドラーのスペック キャッシュをクリアします。

rm -rf ~/.rvm/gems/ruby-$RUBYVERSION[@$GEMSET]/specifications/$GEM*gemspec

その後、再インストールできます:

bundle install
于 2014-06-18T03:22:22.597 に答える
7

などにインストールした場合は./bundle/vendor、最初に gem を削除する必要がありますが、明示的に GEM_HOME を指定する必要があります。

GEM_HOME=./vendor/bundle/ruby/2.3.0/ gem uninstall rmagick

これは、bundler を使用してインストールされた gem をベンダー ディレクトリにアンインストールする最も簡単な方法です。理想的には、コマンドbundle uninstallbundle reinstallなどがあります。

単純に再インストールすることが目的の場合は、次のコマンドが役に立ちます。

GEM_HOME=./vendor/bundle/ruby/2.3.0/ gem uninstall rmagick && sudo -u http bundle install

あなたが私のようで、ディレクトリの下にいくつかのWebアプリケーションがある場合(例/srv/http)、次はすべてのディレクトリでそれを行います:

cd /srv/http
for d in ./*/ ; do (cd "$d" && sudo -u http GEM_HOME=./vendor/bundle/ruby/2.4.0/ gem uninstall --force rmagick && sudo -u http bundle install); done
于 2016-06-26T12:24:46.347 に答える
3

rake を再インストールしようとしている場合は、アンインストールできないため、gem pristine rake失敗し、バンドルもインストールされません。Skipped rake-10.X.X, it is a default gem

rvm を使用している場合、最も簡単なのは単純にrvm reinstall 2.x.x. 少なくとも私にとってrvm repair allも、助けにはなりませんでした。

同じことがおそらく他のすべてのデフォルト gem にも当てはまります。絶望的なグーグル社員が助けを見つけることができるように、ここにそれらをリストします。

  • ビッグデシマル
  • 滴下
  • io-コンソール
  • json
  • ミニテスト
  • 精神
  • レーキ
  • rbtree
  • rdoc
  • テストユニット
于 2015-12-01T16:30:35.017 に答える