読者です 読者をやめる 読者になる 読者になる

xreaのサーバーにruby1.9.3をインストールしたメモ

xrea ruby

 xreaさんのrubyのバージョンは1.8.5ですね。使いたいライブラリ関係もあってちょっと窮屈に思っていました。もしかしてコンパイルできる? と思ってやってみたらできちゃったコンみたいなのでメモしておきます。CORESERVERでもないし、たぶん推奨されていないことだと思うので自己責任でお願いします。*1
 インストール場所は~/local/bin/ruby19みたいな感じになるようにします。

yamlをインストール

 まず、 LibYAMLをインストールします。

mkdir ~/src
cd ~/src #ソースをダウンロードしたりコンパイルしたりする場所
wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
tar zxf yaml-0.1.4.tar.gz
cd yaml-0.1.4
./configure --prefix=$HOME/local/yaml/ #./configureやmakeの途中でKilledされることがあります。挫けずにぶつかっていきまっしょい。
make
make install

 yamlが未インストールのままrubyコンパイルをしてしまうと、のちのち

It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.

と怒られてしまうので、先にインストールしました。

rubyのインストール
cd ~/src
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p429.tar.gz
tar zxf ruby-1.9.3-p429.tar.gz
cd ruby-1.9.3-p429
./configure -prefix=$HOME/local --program-suffix=19 --disable-install-rdoc --with-opt-dir=$HOME/local/yaml/
make
make install

 --disable-install-rdocとしないと、

Directory .ext/rdoc already exists, but it looks like it isn't an RDoc directory.

Because RDoc doesn't want to risk destroying any of your existing files,
you'll need to specify a different output directory name (using the --op

option)

と怒られてしまいましたので、断念しました。
 --program-suffix=19 としているので、今回インストールしたrubyは「ruby19」「gem19」などとなります。

パスを通す

 ~/.bashrcを編集してパスを通しておきます。実際にはviでやってますが下記のように追記してもかまいません。

echo "PATH=$HOME/local/bin:$HOME/local/lib/ruby/1.9.1" >> ~/.bashrc
source ~/.bashrc #更新

 下記のようにバージョンが返ればインストール完了です。

xxxxx~> ruby19 -v
ruby 1.9.3p429 (2013-05-15 revision 40747) [i686-linux]
xxxxx~> gem19 -v
2.0.3

*1:ちょっと前だと60秒以上のプロセスはkillされてたような気が...