読者です 読者をやめる 読者になる 読者になる

CentOSのRails3環境で、「opensslが読み込めん!」と怒られたら?

Rails3 CentOS

どんな例外を吐く?

[twitter@centos twitter_trend]$ ./script/rails server
/home/twitter/.rvm/gems/ruby-1.9.2-p290/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_ #### これは別件なんだけど、気になる。。。
=> Booting WEBrick
=> Rails 3.1.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/home/twitter/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require': no such file to load -- openssl (LoadError)
	from /home/twitter/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `block in require'
	from /home/twitter/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223:in `block in load_dependency'
	from /home/twitter/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:640:in `new_constants_in'
	from /home/twitter/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223:in `load_dependency'
	from /home/twitter/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require'
 (snip)

参考ページに寄れば

rvm pkg install openssl
rvm remove 1.9.2
rvm install 1.9.2 --with-openssl-dir=$HOME/.rvm/usr


なぬ? opensslはオレオレビルドにして、

それをリンクするようにrubyをビルドしなおせだと?

やってみた

[twitter@centos twitter_trend]$ rvm pkg install openssl
Fetching openssl-0.9.8n.tar.gz to /home/twitter/.rvm/archives
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 3681k  100 3681k    0     0   524k      0  0:00:07  0:00:07 --:--:--  719k
Extracting openssl-0.9.8n.tar.gz to /home/twitter/.rvm/src
Configuring openssl in /home/twitter/.rvm/src/openssl-0.9.8n.
Compiling openssl in /home/twitter/.rvm/src/openssl-0.9.8n.
Installing openssl to /home/twitter/.rvm/usr
[twitter@nanakanet twitter_trend]$ rvm remove 1.9.2
Removing /home/twitter/.rvm/src/ruby-1.9.2-p290...
Removing default ruby interpreter
Removing /home/twitter/.rvm/rubies/ruby-1.9.2-p290...
Removing ruby-1.9.2-p290 aliases...
Removing ruby-1.9.2-p290 wrappers...
Removing ruby-1.9.2-p290 environments...
Removing ruby-1.9.2-p290 binaries...
[twitter@centos twitter_trend]$ rvm install 1.9.2 --with-openssl-dir=$HOME/.rvm/usr
Installing Ruby from source to: /home/twitter/.rvm/rubies/ruby-1.9.2-p290, this may take a while depending on your cpu(s)...

ruby-1.9.2-p290 - #fetching 
ruby-1.9.2-p290 - #extracting ruby-1.9.2-p290 to /home/twitter/.rvm/src/ruby-1.9.2-p290
ruby-1.9.2-p290 - #extracted to /home/twitter/.rvm/src/ruby-1.9.2-p290
Fetching yaml-0.1.4.tar.gz to /home/twitter/.rvm/archives
Extracting yaml-0.1.4.tar.gz to /home/twitter/.rvm/src
Configuring yaml in /home/twitter/.rvm/src/yaml-0.1.4.
Compiling yaml in /home/twitter/.rvm/src/yaml-0.1.4.
Installing yaml to /home/twitter/.rvm/usr
ruby-1.9.2-p290 - #configuring 
ruby-1.9.2-p290 - #compiling 
ruby-1.9.2-p290 - #installing 
Removing old Rubygems files...
Installing rubygems-1.8.10 for ruby-1.9.2-p290 ...
Installation of rubygems completed successfully.
ruby-1.9.2-p290 - adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.2-p290 - #importing default gemsets (/home/twitter/.rvm/gemsets/)
Install of ruby-1.9.2-p290 - #complete 
[twitter@centos twitter_trend]$ 


うまく動くか、wktkするー

動かしてみた

[twitter@centos twitter_trend]$ ./script/rails server
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- bundler/setup (LoadError)
	from <internal:lib/rubygems/custom_require>:29:in `require'
	from /home/twitter/twitter_trend/config/boot.rb:6:in `<top (required)>'
	from <internal:lib/rubygems/custom_require>:29:in `require'
	from <internal:lib/rubygems/custom_require>:29:in `require'
	from ./script/rails:5:in `<main>'
[twitter@centos twitter_trend]$


Oops!

気を取り直して

[twitter@centos twitter_trend]$ rvm use 1.9.2 --default
Using /home/twitter/.rvm/gems/ruby-1.9.2-p290
[twitter@centos twitter_trend]$ gem list

*** LOCAL GEMS ***

actionmailer (3.1.0)
actionpack (3.1.0)
activemodel (3.1.0)
activerecord (3.1.0)
activeresource (3.1.0)
activesupport (3.1.0)
addressable (2.2.6)
ansi (1.3.0)
arel (2.2.1)
bcrypt-ruby (3.0.1)
builder (3.0.0)
bundler (1.0.21)
coffee-rails (3.1.1)
coffee-script (2.2.0)
coffee-script-source (1.1.2)
erubis (2.7.0)
execjs (1.2.9)
faraday (0.7.4)
faraday_middleware (0.7.0)
hashie (1.1.0)
hike (1.2.1)
i18n (0.6.0)
jquery-rails (1.0.14)
mail (2.3.0)
mime-types (1.16)
multi_json (1.0.3)
multi_xml (0.4.1)
multipart-post (1.1.3)
mysql (2.8.1)
mysql2 (0.3.7)
polyglot (0.3.2)
rack (1.3.4)
rack-cache (1.0.3)
rack-mount (0.8.3)
rack-ssl (1.3.2)
rack-test (0.6.1)
rails (3.1.0)
railties (3.1.0)
rake (0.9.2)
rdoc (3.9.4)
sass (3.1.8)
sass-rails (3.1.4)
simple_oauth (0.1.5)
sprockets (2.0.1)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.10)
turn (0.8.2)
twitter (1.7.2)
tzinfo (0.3.30)
uglifier (1.0.3)
[twitter@centos twitter_trend]$ ./script/rails server
/home/twitter/.rvm/gems/ruby-1.9.2-p290/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_ #### 別件だけど、めちゃ気になる
=> Booting WEBrick
=> Rails 3.1.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-10-02 22:17:22] INFO  WEBrick 1.3.1
[2011-10-02 22:17:22] INFO  ruby 1.9.2 (2011-07-09) [i686-linux]
[2011-10-02 22:17:22] INFO  WEBrick::HTTPServer#start: pid=27798 port=3000


動いたー!

でも、ここに辿りつく前までに、rubygemsを入れるためだけにrubyをオレオレビルドしたり、
rvmを入れるためだけにgitをオレオレビルドしたり、CentOS 5.xは古すぎて身体に良くないですw