1.はじめに
ソースからコンパイルしてruby 2.0.0-p247をインストールしようとしたら、いくつかつまづきポイントがありました。yumとかrvmとかrbenvとか使えるのであれば、手順が書いてあるBlogもありますし簡単ですが、今回は外部ネットワークに接続されていない環境でした。
調べても全然情報がなかったので手順をまとめておきます。
なお、インストール作業は@pochi_blackさんに協力いただきました。
ありがとうございます。
2.ダウンロードしておくもの
以下のものを事前に準備しておきます
使いそうなgemも準備しておくと、zlibの動作確認ができます。
今回はsystemuを利用して確認しています。
3.インストール手順
1) openssl
ポイントは./configでsharedオプションを指定することです。
あとは普通のインストールと変わりません。
$ tar xzf openssl-1.0.1e.tar.gz
$ cd openssl-1.0.1e
$ ./config --prefix=/usr/local/openssl shared
$ make
$ make install
2) zlib
普通にインストールするだけです。
$ tar xzf zlib-1.2.8.tar.gz
$ cd zlib-1.2.8
$ ./configure
$ make
$ make install
3) Ruby
こちらもconfigureで--with-opt-dirと--enable-sharedの二つのオプションを指定してあげる必要があります。--with-openssl-dirではないので注意です。これでopensslが使える状態でインストールできます。
$ tar xzf ruby-2.0.0-p247.tar.gz
$ cd ruby-2.0.0-p247
$ ./configure --with-opt-dir=/usr/local/openssl --enable-shared
$ make
$ make install
複数バージョンのrubyを利用したい場合や特定のディレクトリにインストールしたい場合は、configureでprefixをつけてあげれば良いです。
# 必要な人だけ・・・
$ ./configure --prefix=/usr/local/ruby2.0.0 --with-opt-dir=/usr/local/openssl --enable-shared
prefixをつけてインストールするとbinのパスが通っていないので、make install後に./bashrcの中でPATHを追加するか、シンボリックリンクを作ると良いと思います。
# 必要な人だけ・・・
PATH=$PATH:/usr/local/ruby2.0.0/bin
# 必要な人だけ・・・
$ ls /usr/local/bin | grep ruby
#=> 既にrubyのリンクが作られていないことを確認する
$ ln -s /usr/local/ruby2.0.0/bin/* /usr/local/bin/
4.動作確認
インストールがうまくいっていることを確認します。
openssl
$ irb
2.0.0-p247 :001 > require 'openssl'
=> true
ここでエラーが発生したらextconf.rbを叩いてあげます。
extディレクトリはrubyのソースを解凍したフォルダ直下にあります。
$ cd ext/openssl
$ ruby extconf.rb --with-openssl-dir=/usr/local/openssl --enable-shared
これでもう一度irbでopensslがrequireしてみてうまくいけばOKです。
zlib
続いてgemがインストールできることを確認します。
まずはインストールしたいgemのディレクトリに移動しておきます。
$ ls systemu-2.5.2.gem
$ gem install systemu-2.5.2.gem --no-ri --no-rdoc
Successfully installed systemu-2.5.2
1 gem installed
zlibをインストールしていないとここでエラーになりますが、今回は先にインストールしているのでうまく行くはずです。