RubyGemsインストール

今日、linux (Debian Sarge) on VMware on ノートPCにRubyGemsをインストールした。そのときにはまったことをここにまとめる。
まず、僕はRubyは自分でソースをコンパイルして使用している。バージョンは1.8.4。インストール先のディレクトリは/usr/local/stowで、ここは自分で(rootじゃなくても)アクセスできる。「stow」ってディレクトリ名でもわかるように、/usr/local以下のプログラムはstowで管理されている。
RubyGemsのサイトからRubyGemsをダウンロードして、展開して、インストール前に次のコマンドを実行した。

$ ruby setup.rb --help

これによると、RubyGemsは/usr/local/stow/ruby-1.8.4以下にインストールされるとのこと。/usr/local以下にはstowで/usr/local/stow/ruby-1.8.4へのリンクが張ってあるのだが、きちんとリンクだと判別してくれた様子。で、実際にインストール。

$ ruby setup.rb

だけど、zlibが無いって言ってインストールに失敗。確かにrubyのライブラリディレクトリにはzlibライブラリが無い。ってことでrubyを再インストール。このときaptでzlib1g-devパッケージをインストール。

$ sudo apt-get install zlib1g-dev

で、rubyをconfigure, make, make install。今度はちゃんとzlib.soがインストールされた。場所は/usr/local/stow/ruby-1.8.4/lib/ruby/1.8/i686-linux/zlib.so。再度上記コマンドでRubyGemsのインストールを試みる。今度は成功。Rubyディレクトリ以下にRubyGemsのファイルがいくつも追加されていたので、stowでリンクを張りなおし、完了。

$ cd /usr/local/stow
$ sudo stow -v -D -t /usr/local ruby-1.8.4
$ sudo stow -v -t /usr/local ruby-1.8.4

ついでだからRails入れてみた。

$ gem install rails --include-dependencies

今回、はまったのはzlibが無いってところ。Rubyをソースからコンパイルするときは、添付ライブラリのコンパイルエラーはRuby本体のコンパイルには影響しないせいか、今まで気がつかなかった。実際、RUBY_SRC/ext以下の添付ライブラリディレクトリを見ると、結構コンパイルされていないのが多い。あとで必要に応じて再コンパイルすることにしよう。