Rubyを1.8.5から1.8.7へ。
いろいろ調べてみたところCentOS 5.xには、最初1.8.5が入っているらしいので、バージョンアップしないといけない。
参考:http://gry.sakura.ne.jp/2009/07/25/
参考:http://blog.livedoor.jp/tez5ro/archives/1019474.html
これはインストールにいろいろ失敗した経緯などを記した作業ログです。実際にインストールを行なっていく場合ここではなくて上記サイトを参考にした方がよいと思います…。(5)の準備インストールを先にやるべきだったと思う
- 1. 旧バージョンのRubyを削除
$ sudo yum remove ruby [実行結果] Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : ruby [1/1] Removed: ruby.i386 0:1.8.5-5.el5_3.7 Complete!
- 2. ruby1.8.7のダウンロード(patchlevel 160)
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p160.tar.gz
- 3. 解凍
$ tar xzvf ruby-1.8.7-p160.tar.gz
- 4. Make
$ cd ruby-1.8.7-p160 $ ./configure --prefix=/usr [実行結果] checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for gcc... gcc ・ ・ ・ creating config.h configure: creating ./config.status config.status: creating Makefile $ make
- 5. 準備が足りなかった…
まずrpmforgeを使えるように。
http://dag.wieers.com/packages/rpmforge-release/このURLだと、接続を拒否されましたと言われたので下記URLでwgetした。$ wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt $ wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm $ sudo rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm $ sudo rpm --import RPM-GPG-KEY.dag.txt ※実行結果に 警告で「rpmforge.repo」が存在しているため 「rpmforge.repo.rpmnew」というファイルを作成した、と出たが 実際参照しているのは「rpmforge.repo」のようなので そっちを手動で書き換えた。
そして,checkinstallをインストールした。
$ sudo yum -y install checkinstall ※初め、gitからダウンロードしてインストールしようとしたが うまくいかなかったのは、そこが原因か??
その他、開発ツール類のインストール
$ sudo yum install -y gcc* compat-gcc* compat-lib* $ sudo yum groupinstall -y 'Development Libraries' $ sudo yum install rpm-build
- 6. checkinstallでRPMを作る
$ sudo /usr/sbin/checkinstall -R --fstrans=no [実行結果] ※途中で You probably don't want them to be included in the package. など出て、パッケージを除外するかどうか聞かれたが とりあえずすべて未回答。。それで良かったのかどうか…わからないんですケド ・ ・ ・ ********************************************************************** Done. The new package has been saved to /usr/src/redhat/RPMS/i386/ruby-1.8.7-p160-1.i386.rpm You can install it in your system anytime using: rpm -i ruby-1.8.7-p160-1.i386.rpm **********************************************************************
- 7. できあがったRPMでrubyをインストールする
$ sudo rpm -Uvh /usr/src/redhat/RPMS/i386/ruby-1.8.7-p160-1.i386.rpm ※はじめ エラー: 依存性の欠如: /usr/bin/ruby は ruby-1.8.7-p160-1.i386 に必要とされています が出た。 実はいろいろごちゃごちゃやったせいで、すでに/usr/bin/rubyが存在していた 場合に起こるようで… $ yum list installed でrubyがインストールされていないことを確認して /usr/bin/rubyを思いきって削除してしまうことに。 ※次 準備中... ########################################### [100%] ファイル /usr/lib/ruby/1.8/thread.rb (パッケージ ruby-1.8.7-p160-1.i386 から) は、 パッケージ ruby-libs-1.8.5-5.el5_3.7.i386 からのファイルと競合しています。 上記同様、今度はruby-libsがインストールされている場合に起こるっぽい。 $ sudo yum remove ruby-libs で思いきって削除…
とりあえず削除できたのかな。
$ sudo rpm -Uvh /usr/src/redhat/RPMS/i386/ruby-1.8.7-p160-1.i386.rpm [実行結果] 準備中... ########################################### [100%] 1:ruby-1.8.7 ########################################### [100%]
うう。。これでOKだったんだろうか…