fc2ブログ

ruby1.8.6から1.8.7にバージョンアップ

ruby1.8.6-p111から1.8.7-p302にバージョンアップした(rubygemsも1.3.1から1.3.7へ)。都合により、1.8.6-p111環境は一度全部削除した。OSはRHEL ES4 Update4 x86_64。

【ruby1.8.6-p111とrubygems1.3.1を削除】

ruby1.8.6-p111はcheckinstallでRPM化してインストールしていた…はずだったが、インストールのとき色々試しながら作業していてmake installとcheckinstallを繰り返していたせいか、RPMに必要なファイル一式がそろっていなかった。

ということで、まず手動でrubyほか関連ファイルを手動削除してからRPMを削除。

# rm /usr/bin/erb
# rm /usr/bin/irb
# rm /usr/bin/rdoc
# rm /usr/bin/ri
# rm /usr/bin/ruby
# rm /usr/bin/testrb
# rm /usr/bin/sqlsh.rb
# rm /usr/lib/libruby-static.a
# rm -rf /usr/lib/ruby/
# rm -rf /usr/doc/ruby-1.8.6
# rm -rf /usr/doc/rubygems

# rpm -qa | grep ruby
ruby-1.8.6-p111-1
rubygems-1.3.1-1
# rpm -e ruby-1.8.6-p111-1
# rpm -e rubygems-1.3.1-1

【ruby 1.8.7-p302とrubygems 1.3.7をビルド&RPM化してインストール】

ソースを/usr/local/srcにダウンロードしておく。

# cd /usr/local/src
# tar zxf ruby-1.8.7-p302.tar.gz
# cd ruby-1.8.7-p302
# ./configure --prefix=/usr
# make
# checkinstall --inspect --fstrans=no

# cd /usr/local/src
# tar zxf rubygems-1.3.7.tar.gz
# cd rubygems-1.3.7
# checkinstall --inspect -R "ruby setup.rb"

vi編集画面で/usr/bin/rubyを削除

# cd /usr/src/redhat/RPMS/x86_64
# rpm -ivh ruby-1.8.7-1.x86_64.rpm
# rpm -ivh rubygems-1.3.7-1.x86_64.rpm

【gemでライブラリーをインストール】

インストールするのは、rails、fastercsv、ruby-oci8、dbi、activerecord-oracle_enhanced-adapter。

基本的に

# gem install ライブラリ名

でいいけど、ruby-oci8はインストール前に

# export ORACLE_BASE=/opt/app/oracle
# export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/client
# export LD_LIBRARY_PATH=$ORACLE_HOME/lib
# export NLS_LANG=JAPANESE_JAPAN.JA16EUC
# export PATH=$PATH:$ORACLE_HOME/bin
# export TNS_ADMIN=$ORACLE_HOME/network/admin

みたいにOracleの環境変数設定が必要。

【補足1】

1.8.6のときはOracleの環境変数TNS_ADMINが無くても動いたんだけど、今回アップデートしたら無いとダメになった。理由は分からない。絡みそうな今回の変更点は、

・ruby本体、各ライブラリのバージョンアップ
・ruby-oci8とdbiはソースをmake installからgemによるインストールに変えた

【補足2】

ruby-oci8とdbiをソースからmake installした場合は、

【ruby-oci8インストール先】
/usr/lib/ruby/site_ruby/1.8/x86_64-linux/oci8lib.so
/usr/lib/ruby/site_ruby/1.8/oci8.rb
/usr/lib/ruby/site_ruby/1.8/DBD/OCI8
/usr/lib/ruby/site_ruby/1.8/DBD/OCI8/OCI8.rb

【dbiインストール先】
/usr/lib/ruby/site_ruby/1.8/dbi
/usr/lib/ruby/site_ruby/1.8/dbi.rb
/usr/bin/sqlsh.rb

とかにインストールされているはずだから、ruby-oci8、dbiだけをgemに変える場合はまずこれらを削除すれば良い。

【その他】

thinを使う場合はこういうのにも注意。

Template Designed by DW99