gemをアップデートするとうまく動作しない問題のまとめ
gemを最新版にアップデートすると仕様変更からさまざまなエラーが発生するため、 そのままではうまく動作しません。この問題にはまり、2時間も消費した。。。 エラーと共に、状況をまとめてみます。 環境:vmware, debian etch, gemなどはパッケージにてインストール 1.まず、gemをアップデートする
gem update --system gem pristine --all
ただし、アップデート後にgemコマンド (gem pristine --all)を実行した段階で以下のエラーが発生します。
uninitialized constant Gem::GemRunner (NameError)
または
ERROR: While executing gem ... (Gem::Exception) Failed to find gem rails >= 0
このエラーの対処のため、/usr/bin/gemの8行目辺り、require 'rubygems'の下に以下を追加します。
require 'rubygems/gem_runner'
再度gem pristine --allを試してみる。
testsrv01:~# gem pristine --all Restoring gem(s) to pristine condition... Restored rails-2.1.0 Restored activeresource-2.1.0 Restored actionpack-2.1.0 Restored actionmailer-2.1.0 Restored activerecord-2.1.0 Restored rake-0.8.1
これで一応動作するようになります。 ---参考サイト undefined method `require_gem' for main:Object - 夜の Discovery “Warning: require_gem is obsolete.”を解決 - Rails2.0.1バージョンアップ格闘記 Kazu-の気ままにOSS: ApacheとRuby on Railsの連携 railsにやられ気味 - ニッキ