CentOS 5.2 に rails 環境を構築する

構築したい環境は以下です

Ruby 1.8.6
Rails 2.0.2
thin 1.0.0

使用する DB は MySQL ですが、こちらは既存のものを使用します



★ おもむろに ruby

# yum install ruby ruby-devel rdoc irb

とやってみたら、ruby 1.8.5 がくる。。
なんだかこの yum のパッケージではこれが最新みたいだったので
仕方なくソースで ruby をいれました

# cd /usr/local/src/
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz
# tar zxvf ruby-1.8.6.tar.gz
# cd ruby-1.8.6
# ./configure

そしたら途中で

configure: error: no acceptable C compiler found in $PATH

と怒られたので、gcc をインストール

# yum install gcc


さて、再開です
※ console 使いたいなら readline 入れるべし(日記の最後参照)

# ./configure
# make
# make install

インストールできた!
と思って ruby -v をやってみるものの、動かない。。


そういえばパスを通してあげねば

# cd ~/
# vi .bash_profile

ここの PATH に /usr/local/bin/ruby を追加して

# source .bash_profile
# ruby -v

これで表示されれば OK



★ gem

次いで rails たちをいれるために gem をいれたのですが、
これもソースから入れました
バージョンはとりあえず 0.9.4

# cd /usr/local/src/
# wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz
# tar zxvf rubygems-0.9.4.tgz
# cd rubygems-0.9.4
# ruby setup.rb

そしたら、

no such file to load -- zlib (LoadError)

と怒られたので
zlib やら zlib-devel かなと思っていれてみたけどやっぱりだめ


どうやら ruby 用のやつが必要だったみたいです

# cd /usr/local/src/ruby-1.8.6/ext/zlib/
# ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
# make
# make install


入れ終わったところでおもむろに再開

# cd /usr/local/src/rubygems-0.9.4
# ruby setup.rb

今度は入ったみたいです

# gem -v

で表示されれば OK です


rails

# gem install rails -v=2.0.2

一緒に入ってくる rake 0.8.3 は微妙そうな予感がするので
0.7.3 あたりにしておく

# gem install rake -v=0.7.3
# gem uninstall rake -v=0.8.3


★ thin

# gem install thin

g++ がないらしい怒られかたをしたので

# yum install gcc-c++

完了後に thin を入れ直して成功
ちなみに eventmachine は自分のローカルと同じ 0.12.2 を選択してみました


★ おまけ

subversion からプロジェクトをもってくるために

# yum install subversion

アプリ用ユーザに切り替えて、適当なディレクトリにプロジェクトをチェックアウト
DB 設定やらもろもろ設定したあとに rake db:migrate で

no such file to load -- openssl

と怒られました


これは opessl と同じバージョンの openssl-devel を入れてから
ruby-openssl を入れて解決できるようです
参考にさせていただいたサイトはコチラ


ちなみに、ruby-openssl が入ってない場合は、

# ruby -r openssl -e ""

と入力すると以下のように怒られます

ruby: no such file to load -- openssl (LoadError)


・まず、openssl のバージョンを確認

# rpm -qa | grep openssl

結果↓

openssl-0.9.8b-10.el5_2.1


・表示された openssl と同じバージョンの openssl-devel をインストール

# yum install openssl-devel-0.9.8b-10.el5_2.1


ruby の OpenSSL 拡張

# cd /usr/local/src/ruby-1.8.6/ext/openssl/
# ruby extconf.rb
# make
# make install

インストールが完了すれば

# ruby -r openssl -e ""

と入力してももう怒られません



とりあえずこんなかんじで構築完了?



後に console 使おうとしたら

no such file to load -- readline (LoadError)

と怒られてしまうはめに。。


ruby を install するときに、

./configure --with-install-readline

とやっておくべきらしい


それか、readline-devel の入れ忘れとかとあわせて
あとから入れ直すときは

# cd /usr/src/ruby-1.8.6/ext/readline
# ruby extconf.rb
# make
# make install

これで大丈夫らしい