おいちゃんと呼ばれています

ウェブ技術や日々考えたことなどを綴っていきます

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