バージョンダウン
目的のバージョンのrubygems-updateをインストールする。
$ sudo gem install rubygems-update -v 1.6.2
もし、目的のバージョンより新しいバージョンのrubygems-updateがインストールされている場合は、アンインストールする。
$ sudo gem uninstall rubygems-update -v 1.8.15
update_rubygemsコマンドを実行する。
$ sudo update_rubygems [sudo] password for admin: RubyGems 1.6.2 installed === 1.6.2 / 2011-03-08 Bug Fixes: * require of an activated gem could cause activation conflicts. Fixes Bug #29056 by Dave Verwer. * `gem outdated` now works with up-to-date prerelease gems. ------------------------------------------------------------------------------ RubyGems installed the following executables: /opt/ruby-enterprise-1.8.7-2012.02/bin/gem
どんなバージョンがあるのかは以下で表示できる。
$ gem search -ar rubygems-update *** REMOTE GEMS *** rubygems-update (1.8.24, 1.8.23, 1.8.22, 1.8.21, 1.8.20, 1.8.19, 1.8.18, 1.8.17, 1.8.16, 1.8.15, 1.8.14, 1.8.13, 1.8.12, 1.8.11, 1.8.10, 1.8.9, 1.8.8, 1.8.7, 1.8.6, 1.8.5, 1.8.4, 1.8.3, 1.8.2, 1.8.1, 1.8.0, 1.7.2, 1.7.1, 1.7.0, 1.6.2, 1.6.1, 1.6.0, 1.5.3, 1.5.2, 1.5.0, 1.4.2, 1.4.1, 1.4.0, 1.3.7, 1.3.6, 1.3.5, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.0, 1.1.1, 1.1.0, 1.0.1, 1.0.0, 0.9.5, 0.9.4, 0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.11, 0.8.10, 0.8.8, 0.8.6, 0.8.5, 0.8.4, 0.8.3)
バージョンアップ
特定バージョンへのバージョンアップもバージョンダウンと同様。
最新版へアップデートする場合は、バージョン指定せずにrubygems-updateをインストールして、update_rubygemsを実行する。
注意
gemのバージョンダウンをしたら、passengerで以下のような例外が発生した。
*** Exception NoMethodError in PhusionPassenger::ClassicRails::ApplicationSpawner (undefined method `full_name' for nil:NilClass) (process 2338, thread #<Thread:0x270f268>): ... 以下略
passenger-install-apache2-moduleでpassengerを再インストールして、httpdをreloadしたらなおったけど、httpdのreloadだけでよかったかも。