Ruby を使っていて「no such file to load --zlib | readline | openssl」エラーに遭遇したときの対処
いま CentOS 5.7 及びソースからコンパイルした Ruby 1.9.2-p290 を使っています。
例えば Rails 3.2 を使うためには、Ruby をインストールする前に、下記の yum パッケージをインストールしておかなくてはいけません。
-zlib(CentOS には最初から入っていました) -zlib-devel -readline(CentOS には最初から入っていました) -readline-devel -openssl(CentOS には最初から入っていました) -openssl-devel <<
では、上記パッケージをインストールする前に Ruby をインストールしてしまったらどうしたらよいか、という話です、今回。
**Ruby を使っていて「no such file to load --zlib | readline | openssl」エラーに遭遇したときの対処方法
+エラーの発生 +不足パッケージのインストール +Ruby から zlib(等)を使えるようにする +バージョン情報 <<
*1. エラーの発生
必要な yum パッケージをインストールせずに Rails を使っていると、例えば「rails console」を使うときや「bundle install」コマンドを使うときなどに、
no such file to load --zlib no such file to load --readline no such file to load --openssl <<
といったようなエラーが発生します。
以下「no such file to load --zlib」が発生したという想定で話を進めますが、readline のときも、openssl のときも同様の手順で解決できます。
*2. 不足パッケージのインストール
「no such file to load --zlib」というエラーが出たら、zlib, zlib-devel パッケージをインストールします。
||
yum install -y zlib zlib-devel
||<
*3. Ruby から zlib(等)を使えるようにする
さらに、zlib を Ruby から使えるようにするため、ひと手間加える必要があります。
||
cd /usr/local/src (Ruby のソースをダウンロードしたディレクトリへ移動)
cd ruby-1.9.2-p290/ext/zlib (readline なら、ext/readline ディレクトリへ移動)
ruby extconf.rb
||<
make, make install をまでしたら、追加したパッケージを使えるようになるはずです。
||
cd /usr/local/src/ruby-1.9.2-p290
make
make install
||<
*4. バージョン情報
参考までに、僕の環境のバージョン情報を書いておきます。
|CentOS|5.7| |Ruby|1.9.2-p290| |zlib.x86_64|1.2.3-4.el5| |zlib-devel.x86_64|1.2.3-4.el5| |readline.x86_64|5.1-3.el5| |readline-devel.x86_64|5.1-3.el5| |openssl.x86_64|0.9.8e-20.el5_7.1.0.1.centos| |openssl-devel.x86_64|0.9.8e-20.el5_7.1.0.1.centos|
以上です。よろしければ参考にしてください。
*参考サイト
-gemでno such file to load -- zlib エラー - Rubyの魔神 - はてな?Rubyグループ -railsのscript consoleでno such file to load -- readlineと怒られた - tetu1984の日記 -ruby-openssl のインスコ問題は1行でイナフだった - Home And Dry -RVMのRuby環境にreadline,openssl,zlibなどのライブラリを追加インストールする - TrinityT’s LABO