===============
2010-04-18追記
まとめました。
ゼロから構築する rails環境
===============
いつもの通りにCentOSにrailsを入れようかな~、フンフン♪~、と思って構築しだしたのですが、何か大変だったのでメモ。(全部rootで作業してます。)
ほとんどまっさらのCentOSにyumでrubyインストールしてgems入れようとしたら面倒でした。
# yum install ruby ruby-devel rdoc
# wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.6.tgz
# tar xzf rubygems-1.3.6.tgz
# cd rubygems-1.3.6
# ruby ./setup.rb
ERROR: Expected Ruby version >= 1.8.6, is 1.8.5
rubyが1.8.6以上でないとダメらしい。
gems1.3.4までは通ってたと思うので、1.3.5か1.3.6からruby1.8.6以上が必要になったっぽい。
困ったことにyumでは1.8.6取れないので、ソースから1.8.7インストール。
# ruby -v
ruby 1.8.5
# yum remove ruby
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz
# tar xzf ruby-1.8.7-p249.tar.gz
# cd ruby-1.8.7-p249
# ./configure --prefix=/usr
...
configure: error: no acceptable C compiler found in $PATH
...
コンパイラも無いって言うから、gccいれてインストール続行。
# yum install gcc
# ./configure --prefix=/usr
# make
# checkinstall --fstrans=no
-bash: checkinstall: command not found
今度はcheckinstallが無いのか。
# yum install checkinstall
No package checkinstall available.
コンパイルしろってか。
# wget http://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz
# tar xzf checkinstall-1.6.2.tar.gz
# cd checkinstall-1.6.2
# make
# make install
OK。
ちゃんとRPMパッケージ作っとかないとね。
後々大変だから!
# cd /tmp/ruby-1.8.7-p249
# ./configure --prefix=/usr
# make
# checkinstall --fstrans=no
あれ?RPMパッケージできてこない・・・。
よく見たら、rpmbuildがないとエラーが。。
*** The "rpmbuild" program is not in your PATH!
*** RPM package creation aborted
で、よく考えたらcheckinstall自体のパッケージ作るのも忘れてた・・・。
make installは通ってるみたいだし、もういいや。
(yum install rpm-buildすればOKみたい。)
# ruby -v
ruby 1.8.7
# cd /tmp/rubygems-1.3.6
# ruby ./setup.rb
RubyGems 1.3.6 installed
# gem install rails
`gem_original_require': no such file to load -- zlib (LoadError)
またエラーが。今度はzlibがロードできないと。。
zlibへのパス通してまたmakeやり直し・・・。
# cd /tmp/ruby-1.8.7-p249/ext/zlib
# ruby extconf.rb --with-zlib-include=/usr/include -with-zlib-lib=/usr/lib
checking for deflateReset() in -lz... no
checking for deflateReset() in -llibz... no
checking for deflateReset() in -lzlib1... no
checking for deflateReset() in -lzlib... no
checking for deflateReset() in -lzdll... no
何これ?zlibないの?
# yum install zlib
Package zlib-1.2.3-3.i386 already installed and latest version
Nothing to do
あるって言ってるよ?
# yum list | grep zlib
...
何か色々出てきた。それっぽいzlib-develをインストールしたらOKだった。
# yum install zlib-devel
# ruby extconf.rb --with-zlib-include=/usr/include -with-zlib-lib=/usr/lib
# make
# make install
# gem install rails
ここまでの流れ、ここにも書いてた。
http://d.hatena.ne.jp/akm/20090410/1239353348
次回の時のためのメモ
・rpm-buildをインストールして、checkinstall用意。
・yumのrubyはもう使えない。
・rubyコンパイル時にzlibロードすること。
=== 追記 ===
rails環境構築の道は険しい。
・サーバ起動でエラー
no such file to load -- openssl.so
OpenSSLライブラリがロードできてない。
# yum install openssl-devel
# cd /tmp/ruby-1.8.7-p249/ext/openssl
# ruby extconf.rb --with-openssl-dir=/usr/local/ssl
# make
# make install
・mysql接続でエラー
no such file to load -- mysql
MySQLライブラリがロードできてない。
mysqlドライバも入れてなかった。
# yum install mysql-devel
# gem install mysql
あれ?素直に一発OK。
以前は通らなくて大変だった記憶が・・・。
gemもmysqlドライバもバージョンアップされてるみたいですし、通るようになったのかな?
一応その時の手順。
gemのMySQLドライバのインストール先調べて再コンパイル
# gem env
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
# cd /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/
# which mysql_config
/usr/bin/mysql_config
# ruby extconf.rb --with-mysql-config=/usr/bin/mysql_config
# make
# make install
mysql-2.8.1パッケージにはextconf.rbが見つからない。
よく分からないけど素直に通ったので良しとすることに。