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. checkinstallRPMを作る

    $ 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. できあがったRPMrubyをインストールする

    $ 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だったんだろうか…