一分一秒真剣勝負!

Ruby, Railsなど。Web系の技術ネタを充実させたい・・が、そうなるかは分からない。

CentOS5.2にRuby最新版とRailsをインストール

前提条件

 yumCheckinstallを使用して、railsの環境を作ります。最新版のRubyがパッケージで取得できない場合を想定しています。

事前準備

 まずはRubyのインストール・・・の前に、opensslとopenssl-develをインストールします。既にインストール済みの場合は不要。

# yum -y install openssl openssl-devel

 なぜ最初にこれを入れるかというと、Rubyのインストール前にこれらが入っていない場合、rails実行時に以下のようなエラーが発生するからです。

# ruby script/server
=> Booting WEBrick...
/usr/lib/ruby/gems/1.8/gems/rails-2.1.2/lib/initializer.rb:229:in `require_frameworks': no such file to load -- openssl (RuntimeError)

 もしこのエラーが発生した場合、openssl,openssl-develのインストール後にRubyを再インストールするか、以下の手順を実行すれば解決します。

# cd /usr/local/src/ruby-1.8.7-p72/ext/openssl
# ruby extconf.rb
# make
# make install

 更に、以下のライブラリがないとRailsのscript/consoleが動かないので、入っていない人はインストール。

# yum -y install readline readline-devel

Ruby最新版のインストール

 Rubyの旧バージョンがインストール済みの場合、アンインストール。

# yum remove ruby-libs

 2008-11-20現在、最新版はruby-1.8.7-p72なので、ダウンロード。

# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz
# tar zxvf ruby-1.8.7-p72.tar.gz
# cd ruby-1.8.7-p72

 パッケージの作成。

$ sudo ./configure --prefix=/usr #インストール先ディレクトリを/usrに指定
$ make
$ sudo /usr/sbin/checkinstall --fstrans=no
#インストールしながら処理を進めるRubyの場合、それを回避する為に--fstrans=noオプションが必要。詳細はCheckinstallのドキュメントを読んでね。

 パッケージをインストール。

$ sudo rpm -Uvh /usr/src/redhat/RPMS/i386/ruby-1.8.7-p72-1.i386.rpm

 以上で、Rubyの最新版インストールは終了。

RubyGemsのインストール

 RailsをインストールするにはRubyGemsを使うと簡単なので、まずはこれをインストールします。2008-11-20現在、最新版はrubygems-1.3.1なので、ダウンロード。

$ wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz

 後はRubyと同様にインストール。

$ tar zxvf  rubygems-1.3.1.tgz
$ cd  rubygems-1.3.1
$ sudo /usr/sbin/checkinstall -R "ruby setup.rb"
$ sudo rpm -Uvh /usr/src/redhat/RPMS/i386/rubygems-1.3.1-1.i386.rpm 

 終了。-Rオプションを付けるとRPMパッケージを作成できますが、オプションは無くても後からパッケージを選択することになります。

Railsのインストール

 ここまでくれば後は簡単。

$ sudo gem install rails --include-dependencies
$ rails -v
Rails 2.1.2

 デフォルトのDBをmysqlにするオプションを指定し、railsの動作確認。

$ rails -d mysql test
$ cd test
$ ruby script/server

 ローカルホストのポート3000番にブラウザからアクセスし、Railsの画面が出れば完了です。

ついでにMySQLのインストール

 CentOS5.2だと、このオプションを付けないとmysql_configの場所を見つけてくれない。

# yum install mysql -- --with-mysql-config=/usr/bin/mysql_config

 後は以下の3つをインストール。

# yum install mysql-devel mysql-server
# gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

 終了。