CentOS 5.5にrubyとrubygemsを入れて、Ruby on Railsの環境を構築してみた

立て続けに日記。

前回リポジトリを追加して、新しめのパッケージをインストールすることができるよになったが、
rubyに関しては1.8.5で古いまま。


1.8.5でインストールすると、rails入れる段階で1.8.7にしろよ、と怒られる。
なので、1.8.7を入れるようにする。


やりたいことは

    • rubyrubygemsのパッケージを作って
    • インストールする
    • そしてrailsを入れる

ということ。
これが結構大変でした。

パッケージを作る準備

調べて回ると、checkinstallからパッケージを作ってる方が多かった。
なので自分もそれに倣ってやってみることに。

以下のサイトを参考に進めました。
http://teps4545.blogspot.com/2010/10/centos-55-ruby-187-passenger-300.html

checkinstallパッケージをインストールする。がしかし・・・

checkinstallパッケージをインストールする。
これまたrpmforgeリポジトリにあるらしい。
なので、前回同様リポジトリを追加してみる。

$ wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
$ sudo rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
$ sudo vim /etc/yum.repos.d/rpmforge.repo

enabled=1をenabled=0にする

んでインストール

$ sudo yum --enablerepo=rpmforge install checkinstall    
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: ftp.nara.wide.ad.jp
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * rpmforge: ftp-stud.fht-esslingen.de
 * updates: ftp.nara.wide.ad.jp
Setting up Install Process
No package checkinstall available.
Nothing to do

ん?

$ sudo yum --enablerepo=rpmforge search checkinstall
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: ftp.nara.wide.ad.jp
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * rpmforge: ftp-stud.fht-esslingen.de
 * updates: ftp.nara.wide.ad.jp
Warning: No matches found for: checkinstall
No Matches found

無いようです・・・。


どっかにパッケージ無いか探したけど、これと言ってよさげなものがない。
なのでソースから入れました。
まあパッケージ作るだけだからいいか、と。

$ sudo http://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz
$ tar zxvf checkinstall-1.6.2.tar.gz 
$ cd checkinstall-1.6.2
$ make
$ sudo make install

/usr/local/sbin/checkinstallがインストールされます。
これでパッケージ作る準備は完了。

rubyのパッケージを作る&インストール

以下の手順で。

$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p334.tar.gz
$ tar zxvf ruby-1.8.7-p334.tar.gz 
$ cd ruby-1.8.7-p334
$ ./configure --prefix=/usr
$ make
$ sudo /usr/local/sbin/checkinstall --fstrans=no
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
           This software is released under the GNU GPL.

(省略)

**********************************************************************

 Done. The new package has been saved to

 /usr/src/redhat/RPMS/x86_64/ruby-1.8.7-p334-1.x86_64.rpm
 You can install it in your system anytime using: 

      rpm -i ruby-1.8.7-p334-1.x86_64.rpm

**********************************************************************

色々聞かれますが、そのままデフォルトでやっちゃいました。
そしてインストール

$ sudo rpm -ihv /usr/src/redhat/RPMS/x86_64/ruby-1.8.7-p334-1.x86_64.rpm

ok

rubygemsのパッケージを作る&インストール

続いてrubygems
これも同様にパッケージを作成していきます。

$ wget http://rubyforge.org/frs/download.php/74234/rubygems-1.5.2.tgz
$ tar zxvf rubygems-1.5.2.tgz
$ cd rubygems-1.5.2
$ sudo /usr/local/sbin/checkinstall -R "ruby setup.rb"

ここでエラー発生。
「/usr/local/lib64/installwatch.soがねーよ」と怒られる。
調べて以下のサイト発見。
http://d.hatena.ne.jp/yk77/20101123/1290460702


そんな感じでシンボリックリンクを付ける。

$ sudo ln -s /usr/local/lib/installwatch.so /usr/local/lib64/installwatch.so

これで回避。
んで再度実行するとまたもやエラー

$ sudo /usr/local/sbin/checkinstall -R "ruby setup.rb"
(省略)
Installing with ruby setup.rb...

========================= Installation results ===========================
/var/tmp/tmp.IgXYC16603/installscript.sh: line 4: ruby setup.rb: command not found

****  Installation failed. Aborting package creation.

Cleaning up...OK

Bye.

今度は「ruby setup.rbていうコマンドないよ」と怒られる。
これがよくわからなかった。
どこのサイトでも「/usr/local/sbin/checkinstall -R "ruby setup.rb"」と書いてある。
何でだろうな?
rootでやってみるも☓
/usr/bin/rubyとかfullpathでやってみるも☓
うむむ・・・・


ちなみにパッケージを作成せずに直接インストールは普通にできた。

$ sudo /usr/bin/ruby setup.rb


もうそれでもいいかな・・・。
けど何かわかりそうなんだよな・・・。


そして考えること1時間。


できた。

$ /usr/local/sbin/checkinstall -R ruby setup.rb

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
           This software is released under the GNU GPL.

(省略)

**********************************************************************

 Done. The new package has been saved to

 /usr/src/redhat/RPMS/x86_64/rubygems-1.5.2-1.x86_64.rpm
 You can install it in your system anytime using: 

      rpm -i rubygems-1.5.2-1.x86_64.rpm

**********************************************************************

「sudo /usr/local/sbin/checkinstall -R "ruby setup.rb"」ではなく
「sudo /usr/local/sbin/checkinstall -R ruby setup.rb


ダブルクォーテーションがいらない。
以上。
時間がかかった。

あとはインストール

$ sudo rpm -ihv /usr/src/redhat/RPMS/x86_64/rubygems-1.5.2-1.x86_64.rpm 

これで環境は整いました。
いやー時間かかった。

試しにrailsでも入れてみる。

gemからrailsを入れてみる。
がしかし・・・。

$ sudo gem install rails
ERROR:  Loading command: install (LoadError)
    no such file to load -- zlib
ERROR:  While executing gem ... (NameError)
    uninitialized constant Gem::Commands::InstallCommand 

もうヤダ・・・。


zlibやzlib-develが無いのかなぁと思ってインストールするも☓
で、またもや色々探し回ってサイト発見。
http://leaveanotemessagebehind.blogspot.com/2007/08/centosrubygems.html


解決策は以下のとおり。

$ cd ruby-1.8.7-p334
$ cd ext/zlib/
$ ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
$ make
$ make install

これでrailsがインストールできる。
できるが、「rdocが云々・・・」と怒られる。
なのでgemからrdocをインストールする。

$ sudo gem install rdoc

これで再度railsをインストールすれば怒られな・・・

$ sudo gem install rails
(省略)
Installing ri documentation for rails-3.0.4...
File not found: lib

またか。
調べる。サイト発見。
http://www.ruby-forum.com/topic/216257
解決。

$ sudo mkdir /usr/lib/ruby/gems/1.8/gems/rails-3.0.4/lib
$ sudo gem install rails
Successfully installed rails-3.0.4
1 gem installed
Installing ri documentation for rails-3.0.4...
Installing RDoc documentation for rails-3.0.4...

長い道のりだったよ。

  • ソースダウンロード

http://www.asic-linux.com.mx/~izto/checkinstall/download.php

http://www.ruby-lang.org/ja/downloads/

http://rubygems.org/pages/download/