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を使う場合はこういうのにも注意。
【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を使う場合はこういうのにも注意。