CentOC上にRuby 1.8.6 + Rubygems 1.1.1をインストールする
yumでインストールできるのがRuby 1.8.5でしかもRubygemsがレポジトリ内にないので、すべてソースからインストールした。結構ハマったので覚え書き。
Ruby
PATHなど
- ソース: /usr/src
- バイナリ: /usr/bin
- ライブラリ: /usr/lib
作業工程
~ > cd /usr/src /usr/src > wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p114.tar.bz2 /usr/src > tar jxf ruby-1.8.6-p114.tar.bz2 /usr/src > cd ruby-1.8.6-p114 /usr/src/ruby-1.8.6-p114 > sudo ./configure --prefix=/usr /usr/src/ruby-1.8.6-p114 > sudo make && sudo make install
確認
~ > ruby -v ruby 1.8.6 (2008-03-03 patchlevel 114) [i686-linux] ~ > which ruby /usr/bin/ruby
Rubygems
PATHなど
- ソース: /usr/src
- RUBYLIB: /usr/lib
- GEM_HOME: /usr/lib/ruby/gems/1.8
作業工程
/usr/src > wget http://rubyforge.org/frs/download.php/35283/rubygems-1.1.1.tgz /usr/src > tar xvf rubygems-1.1.1.tgz /usr/src > cd rubygems-1.1.1 /usr/src/ruby-1.8.6-p114 > sudo ruby setup.rb --prefix=/usr
確認
~ > gem -v /usr/bin/gem:8:in `require': no such file to load -- rubygems (LoadError) from /usr/bin/gem:8
環境変数を追加
おいらはzsh使っているので~/.zshrcに以下を追加。変数の設定とexportが分けてあるのはおいらの好み。
RUBYLIB=/usr/lib
GEM_HOME=/usr/lib/ruby/gems/1.8
export RUBYLIB
export GEM_HOME
再度確認
~ > gem -v 1.1.1 ~ > gem environment RubyGems Environment: - RUBYGEMS VERSION: 1.1.1 - RUBY VERSION: 1.8.6 (2008-03-03 patchlevel 114) [i686-linux] - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8 - RUBYGEMS PREFIX: /usr - RUBY EXECUTABLE: /usr/bin/ruby - RUBYGEMS PLATFORMS: - ruby - x86-linux - GEM PATHS: - /usr/lib/ruby/gems/1.8 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://gems.rubyforge.org
とりあえずは大丈夫っぽい?
gemのupdate
~ > sudo gem update /usr/bin/gem:8:in `require': no such file to load -- rubygems (LoadError) from /usr/bin/gem:8
sudoでの環境変数
http://blog.studiohff.net/200711/debiansargesudo_gem.htmlによると、sudoのセキュリティ強化で起こっているらしいです。/etc/sudoersをvisudoで編集します。
~ > sudo /usr/sbin/visudo
Defaults env_keep+="PATH GEM_HOME RUBYLIB"
今回はPATHは特にいじってないけど、一応持っていく。
~ > sudo gem update /usr/lib/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- zlib (LoadError) from /usr/lib/rubygems/custom_require.rb:27:in `require' from /usr/lib/rubygems/package.rb:10 from /usr/lib/rubygems/custom_require.rb:27:in `gem_original_require' from /usr/lib/rubygems/custom_require.rb:27:in `require' from /usr/lib/rubygems/format.rb:9 from /usr/lib/rubygems/custom_require.rb:27:in `gem_original_require' from /usr/lib/rubygems/custom_require.rb:27:in `require' from /usr/lib/rubygems/installer.rb:11 ... 11 levels... from /usr/lib/rubygems/command_manager.rb:103:in `process_args' from /usr/lib/rubygems/command_manager.rb:74:in `run' from /usr/lib/rubygems/gem_runner.rb:39:in `run' from /usr/bin/gem:22
zlibがloadできないと言っているので、zlibをサポートするようにしてみよう。
zlibサポートの追加
~ > sudo yum install zlib-devel ~ > cd /usr/src/ruby-1.8.6-p114/ext/zlib /usr/src/ruby-1.8.6-p114/ext/zlib > sudo ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib /usr/src/ruby-1.8.6-p114/ext/zlib > sudo make all && sudo make install
~ > sudo gem update
Updating installed gems
Nothing to update
できた。
gem install
~ > sudo gem install rails Updating metadata for 1 gems from http://gems.rubyforge.org/ . complete Bulk updating Gem source index for: http://gems.rubyforge.org/ Successfully installed rake-0.8.1 Successfully installed activesupport-2.0.2 Successfully installed activerecord-2.0.2 Successfully installed actionpack-2.0.2 Successfully installed actionmailer-2.0.2 Successfully installed activeresource-2.0.2 Successfully installed rails-2.0.2 7 gems installed Installing ri documentation for rake-0.8.1... Installing ri documentation for activesupport-2.0.2... Installing ri documentation for activerecord-2.0.2... Installing ri documentation for actionpack-2.0.2... Installing ri documentation for actionmailer-2.0.2... Installing ri documentation for activeresource-2.0.2... Installing RDoc documentation for rake-0.8.1... Installing RDoc documentation for activesupport-2.0.2... Installing RDoc documentation for activerecord-2.0.2... Installing RDoc documentation for actionpack-2.0.2... Installing RDoc documentation for actionmailer-2.0.2... Installing RDoc documentation for activeresource-2.0.2...
Rubyオンリーのは大丈夫。CやC++で書かれたものも試してみる。
~ > sudo gem install thin Building native extensions. This could take a while... Building native extensions. This could take a while... Successfully installed rack-0.3.0 Successfully installed daemons-1.0.10 Successfully installed eventmachine-0.10.0 Successfully installed thin-0.8.0 4 gems installed Installing ri documentation for rack-0.3.0... Installing ri documentation for daemons-1.0.10... Installing ri documentation for eventmachine-0.10.0... Installing ri documentation for thin-0.8.0... Installing RDoc documentation for rack-0.3.0... Installing RDoc documentation for daemons-1.0.10... Installing RDoc documentation for eventmachine-0.10.0... Installing RDoc documentation for thin-0.8.0...
うまくいった模様。これで大丈夫かな。
一応Railsが動くか試してみる
railsプロジェクトの生成とWEBRickの起動
~ > rails rails create (中略) ~ > cd rails ~/rails > ruby script/server => Booting WEBrick... /usr/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/initializer.rb:159:in `require_frameworks': no such file to load -- openssl.so (RuntimeError) from /usr/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/initializer.rb:88:in `process' from /usr/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/initializer.rb:49:in `send' from /usr/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/initializer.rb:49:in `run' from /home/koutarou/src/rails/config/environment.rb:13 from /usr/lib/rubygems/custom_require.rb:27:in `gem_original_require' from /usr/lib/rubygems/custom_require.rb:27:in `require' from /usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require' from /usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in' ... 7 levels... from /usr/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:39 from /usr/lib/rubygems/custom_require.rb:27:in `gem_original_require' from /usr/lib/rubygems/custom_require.rb:27:in `require' from script/server:3
今度はopensslか。zlibサポート入ってなかったからもしかしたらとは思ったけどさ。
opensslサポートの追加
~ > sudo yum install openssl-devel ~ > cd /usr/src/ruby-1.8.6-p114/ext/openssl /usr/src/ruby-1.8.6-p114/ext/openssl > sudo ruby extconf.rb /usr/src/ruby-1.8.6-p114/ext/openssl > sudo make all && sudo make install
なんか警告でた気もするけどmakeは通ってインストールも終了。
もう一度WEBRickを起動してみる
~/rails > ruby script/server => Booting WEBrick... => Rails application started on http://0.0.0.0:3000 => Ctrl-C to shutdown server; call with --help for options [2008-04-18 16:43:08] INFO WEBrick 1.3.1 [2008-04-18 16:43:08] INFO ruby 1.8.6 (2008-03-03) [i686-linux] [2008-04-18 16:43:08] INFO WEBrick::HTTPServer#start: pid=22770 port=3000