CentOS 5.7にrails3を導入したメモ

はじめに

新しくサーバにRails3を入れることになったので、作業を記録しておきます。
Rubyの導入からRailsの導入まで行いました。

作業

作業するマシンのディストリビューションのバージョン確認

バージョンやディストリビューションごとに作業が異なる場合があるので確認する。

# cat /etc/redhat-release 
CentOS release 5.7 (Final)
Ruby 1.9.3p194 の導入

Rubyの最新安定板をダウンロードする

最新版の確認はここからhttp://www.ruby-lang.org/ja/downloads/

ダウンロードしてコンパイル

# cd /usr/local/src
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz
# tar zxvf ruby-1.9.3-p194.tar.gz
# cd ruby-1.9.3-p194
# ./configure
# make
# make install

Rubyが導入したバージョンになっているのか確認

# ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
Gem 1.8.24の導入

Gemの最新版をダウンロードする

Gemの最新版はここからgem ダウンロード http://rubyforge.org/frs/?group_id=126&release_id=46730

ダウンロードしてコンパイル

# wget http://rubyforge.org/frs/download.php/76073/rubygems-1.8.24.tgz
# tar zxvf rubygems-1.8.24.tgz
# cd rubygems-1.8.24
# ruby setup.rb

Gemが導入したバージョンになっているのか確認

# gem --version
/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
1.8.24

するとバージョン情報の前にyamlの導入を促されているのでyamlの導入する。

yaml 0.1.4を導入する


ソースから導入する場合

最新版の確認はここからhttp://pyyaml.org/wiki/LibYAML

# wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
# tar zxvf yaml-0.1.4.tar.gz
# cd yaml-0.1.4
# make install
# cd ..
# cd ruby
# ls
# cd ruby-1.9.3-p194
# ./configure
# make
# make install

パッケージから導入する場合

# yum install libyaml-devel

一度rubyを削除してから再インストールする

rubyをパッケージから導入している場合

# yum remove ruby

再導入

# yum install ruby

ソースコンパイルから導入している場合
削除

# cd /usr/local/src/ruby-X.X.X-pXXX
# make clean

再導入

# cd /usr/local/src/ruby-X.X.X-pXXX
# ./configure
# make
# make install

確認して、yamlのことで警告が出なければ完了

# gem -v                 
1.8.24
rails 3.0.0

バージョン指定をして導入する

# gem install rails --version=3.0

バージョン確認する

# gem list | grep rails
rails (3.0.0)

おわりに

Ruby1.9.2では、make cleanできなかったので、できるようになっていると思わず、
下のコマンドで力技でRubyコンパイル時に生成されたファイルを削除していました。
別のサーバでは、うまくいったので、そのまま使ってました。

# cat .installed.list | xargs rm

やっぱり回数重ねて慣れていかないといけないと実感しました。
今後もできるだけ記録していきたいと思います。