ksaitoの日記

日々試したことの覚え書き

ruby環境のバージョンアップ

Redmineをバージョンアップしたかったのですが利用するディストリビューションによっては、Rubyのバージョンが古くてバージョンアップできません。
ソースからRubyだけ最新バージョンをインストールしても関連するrailsやrakeなどにもバージョンがあり、とても管理しきれません。
rvmを使うとRubyのバージョンを簡単に導入したり切り替えたりできます。

rvmのインストール

aptにruby-rvmパッケージがあるので、これを使ったほうが良いでしょう。
気が付かづにrvmインストールでインストールしました。
以下の手順でrvmを導入してRuby 1.9.3をインストールし、もともとインストールされていたRubyと簡単に切り替えられました。

$ curl -L get.rvm.io | bash -s stable
$ source .rvm/scripts/rvm
$ rvm install 1.9.3
$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
$ rvm use system
Now using system ruby.
$ ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
$ 

zlibのインストール

gemを使うには、zlibが必要だったようです。

$ rvm use 1.9.3
Using ~/.rvm/gems/ruby-1.9.3-p194
$ gem install passenger
ERROR:  Loading command: install (LoadError)
    cannot load such file -- zlib
ERROR:  While executing gem ... (NameError)
    uninitialized constant Gem::Commands::InstallCommand
$ 

ruby-rvmパッケージでインストールすれば、依存パッケージがインストールされて問題なかったはずです。

$ sudo apt-get install zlib1g-dev

これで、改めて1.9.3を再インストールするとgemが使えるようになります。

$ rvm remove 1.9.3
$ rvm install 1.9.3
$ rvm use 1.9.3
$ gem install passenger
Fetching: fastthread-1.0.7.gem (100%)
Building native extensions.  This could take a while...
Fetching: daemon_controller-1.0.0.gem (100%)
Fetching: rack-1.4.1.gem (100%)
Fetching: passenger-3.0.12.gem (100%)
Successfully installed fastthread-1.0.7
Successfully installed daemon_controller-1.0.0
Successfully installed rack-1.4.1
Successfully installed passenger-3.0.12
4 gems installed
Installing ri documentation for fastthread-1.0.7...
Installing ri documentation for daemon_controller-1.0.0...
Installing ri documentation for rack-1.4.1...
Installing ri documentation for passenger-3.0.12...
Installing RDoc documentation for fastthread-1.0.7...
Installing RDoc documentation for daemon_controller-1.0.0...
Installing RDoc documentation for rack-1.4.1...
Installing RDoc documentation for passenger-3.0.12...
$ 

やっぱり、aptパッケージを使うべきでした。