本日Macintosh VMWare Fusion上のCentOS 5.5最小パッケージにRubyまではインストール出来たのですが、

ruby -v
→ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-linux]
RubyGemsをいインストールすると下記のエラーが出てしまいます。ググッたのですが解決できませんでした。解決法を教えて頂けませんでしょうか。
# wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
# tar xzf rubygems-1.3.7.tgz
# cd rubygems-1.3.7
# ruby setup.rb

"./lib/rubygems.rb:12:in 'require': no such file to load --etc (LoadError)
from ./lib/rubygems.rb:12
from setup.rb:24:in 'require'
from setup.rb:24.

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2010/12/28 17:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:iwadon No.1

回答回数60ベストアンサー獲得回数13

ポイント35pt

CentOSについて詳しくないため間違ってたらごめんなさい。

質問のエラーの意味は「etcライブラリをロード出来なかった」です。もしRubyをrpmのパッケージを使ってインストールしたならば、ruby-libsというパッケージもインストールしましたでしょうか? ググッてみると rpm では etc.so というetcライブラリに必要なファイルはruby本体とは別に配布されているようです。以下は参考にしたページです。

http://rpm.pbone.net/index.php3/stat/4/idpl/13488848/dir/centos_...

ですので、もしまだruby-libsをインストールしていなければインストールすることで解決するかもしれません。

もしRubyを自前でビルドした場合は、(ビルドしたディレクトリ)/ext/etc/mkmf.logにビルド出来なかった原因が出力されているかもしれません。

etcライブラリがインストールされたかどうかは、コマンドラインで以下を実行して、エラーメッセージがでなければ大丈夫です。

% ruby -retc -e 0
id:tosh139

御返答ありがとうございます。仰るとおり拡張ライブラリがロード出来ていない状態でした。

CentOS 5.5を最小インストールした後、rootのまま

yum -y update

reboot

yum install gcc zlib-devel wget

wget ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p302.tar.gz

tar xzvf ruby-1.8.7-p302.tar.gz

cd ruby-1.8.7-p302

./configure --prefix=/usr

make

make test

→test succeeded

make install

ruby -v

→ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-linux]

という形でインストールしました。

/root/ruby-1.8.7-p302/ext/etcには.cvsignore, depend, etc.c, etc.txt, ext.txt.ja, extconf.rbのみで、mkmf.logというファイルは存在しませんでした。

もう少し勉強してみます。

2010/12/22 08:00:55
id:nuna No.2

回答回数32ベストアンサー獲得回数11

ポイント35pt

おそらくRubyを正しくインストールできていません。

$ ruby -retc -e ''

$ ruby -rsocket -e ''

$ ruby -rstringio -e ''

などを実行してLoadErrorが発生するようであれば標準添付の拡張ライブラリがロードできていない状態です。

$ ruby -e 'p $LOAD_PATH'

でライブラリのロードパスが表示されますので、そのディレクトリ内に etc.so や socket.so などがあるかを確認してください。

i686-linux ですと /usr/lib/ruby/site_ruby/1.8/i686-linux や /usr/local/lib/ruby/site_ruby/1.8/i686-linux あたりのはずです。

もし etc.so などがインストールできていない場合、Rubyをどのようにインストールしたかを教えていただければ、アドバイスできるかもしれません。

http://www.google.co.jp/ ダミーです。

id:tosh139

御返答ありがとうございます。上記3つともLoadErrorが発生しました。LOAD_PATHは/usr/lib/ruby以下のフォルダが8個ほど表示されました。/usr/lib/ruby/site_ruby/1.8/i686-linuxと/usr/local/lib/は両方とも空フォルダでetc.soやsocket.soなどは見当たりませんでした。find /usr/lib/ruby -name *.soでも何も表示されませんでした。アドバイスを頂けると大変助かります。

2010/12/22 08:14:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません