Dabits

サーバサイドから運営まで何でもやるエンジニア系DJ

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にやられ気味 - ニッキ