2010年3月23日火曜日

CentOSにrailsインストール

===============
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が見つからない。
よく分からないけど素直に通ったので良しとすることに。

0 件のコメント:

コメントを投稿