TrinityT’s LABO このページをアンテナに追加 RSSフィード Twitter

2011-01-22

RVMのRuby環境にreadline,openssl,zlibなどのライブラリを追加インストールする

現象

RVMで構築した環境でHerokuを起動させようとしたのだが、以下のようなエラーが発生。

$ heroku create redmine_hands_on

/home/hoge/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`gem_original_require': no such file to load -- readline (LoadError)

どうやらreadlineライブラリがRVM環境のパスに存在しないことが原因ぽい。

以前opensslライブラリでも同様の現象が発生したが、その時は以下のようにRVMの環境の構築し直しという面倒くさい対応を行った。

$ rvm remove 1.8.7
$ rvm install 1.8.7 --with-openssl-dir=$HOME/.rvm/usr.
→ gemなどで環境の再構築を実施

解決方法

もう一度環境構築し直すのは流石にウンザリするので回避できないか調べてみた。

結果、以下の手順で環境の再構築無しにRVM環境に追加ライブラリのパスを通すことができる。

1. 「rvm pkg install」コマンドで各ライブラリ追加 ※2011/8/9 最新のRVMで引数が「package → pkg」 に変更されているので注意。

# readline追加
$ rvm pkg install readline
# openssl追加
$ rvm pkg install openssl
# zlib追加
$ rvm pkg install zlib

# 旧RVMでは以下で実行
$ rvm package install readline

2. -Cオプション&各ライブラリのパスを指定して再コンパイルする。

# 入れたライブラリを指定して再度コンパイル
$ rvm install 1.8.7 -C --with-openssl-dir=$HOME/.rvm/usr --with-readline-dir=$HOME/.rvm/usr --with-zlib-dir=$HOME/.rvm/usr
# 2012/2/29 追記 最新のrvmでは以下コマンドで再コンパイルする必要があった。
$ rvm reinstall 1.8.7 --with-openssl-dir=$HOME/.rvm/usr --with-readline-dir=$HOME/.rvm/usr --with-zlib-dir=$HOME/.rvm/usr

上記でも直らない場合 2012/2/29 追記

公式サイトで以下の手順が載っていて試したらreadlineエラーが解消された。

参考までに。

http://beginrescueend.com/packages/readline/

$ rm -rf $rvm_path/usr
$ rvm requirements
$ rvm reinstall 1.8.7

参考

http://doruby.kbmj.com/8y/20100809/rvm_

http://d.hatena.ne.jp/modka/20110115/1295070296

modkamodka 2011/01/22 18:09 トラックバックどもです。RVMがあると環境の管理が楽でいいですね。

TrinityTTrinityT 2011/01/22 21:49 >modka
いえいえ、こちらこそありがとうございます。大変参考になりました。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

Connection: close