こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

gem install railsで「NameError」

gemでrailsを指定ディレクトリにインストールをしようとしているのですが、railsのインストールでエラーが出てしまいます。

rubyはもともと入っており、管理者権限などが無いため、
rubygemsを指定ディレクトリ以下にいれgemコマンドで

←gem install rails --include-dependencies

を投入したところ、
→ERROR: While executing gem ... (NameError)
uninitialized constant Digest::MD5

のエラーが表示されてしまいます。
gem -vなど、正常に実行されるコマンドもあります。
原因などわかる方がいらっしゃれば、教えていただきたいです。

・バージョン、場所
rubygems:1.3.1
 指定ディレクトリ/rubygems
ruby:1.8.7
/usr/local/lib/ruby

投稿日時 - 2009-04-26 22:21:56

QNo.4911638

困ってます

質問者が選んだベストアンサー

「管理者権限がない」ということは、Linux系システムだと思うので、Linux系+Rubyはよく知りませんが、自分なら次の点を確認します。

・rubyライブラリへのアクセス権があるか
・rubyライブラリがロードパスに含まれているか(普通含まれているはずですが・・)
 ○puts $LOAD_PATHを実行して、ロードパスを確認
 ○-Idirectoryオプションを指定して実行してみる
・Digest::MD5が定義されているファイルが本当に存在するか(ぜんぜん調べてないのであてにならないのですが、digest.soの中で定義?)
・rubyを自分用にインストールしなおして再トライしてみる
 これをやればアクセス権の問題やファイルが足りない問題だった場合解決するはず

gem install railsでエラーとなる箇所がrequire時ではなくいきなり「uninitialized constant Digest::MD5」となっている点が気になりますが・・

推測とかしかできませんね・・。
書きたいほうだいでスミマセン。

投稿日時 - 2009-04-28 20:41:19

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

> ERROR: While executing gem ... (NameError)
> uninitialized constant Digest::MD5

DigestモジュールのMD5定数を使用する何かのライブラリが足りないようにとれますね。

require 'digest/md5'
puts Digest::MD5

これが質問者さんの環境でエラーとならなずに実行できますでしょうか・・。
Ruby詳しくないのでこれ以上は分かりませんけども。

投稿日時 - 2009-04-27 20:59:36

補足

回答ありがとうございました。

require 'digest/md5'を実行したところで、
uninitialized constant Gem::Digest (NameError)
のエラーとなりました。
ライブラリが足らないようです・・。

ただ、各所のマニュアルを見てもこのライブラリはデフォルトで入っているようで、これがなぜ無いのかがわからず困っています。
このライブラリは、rubyやgem?のバージョンによって入っていなかったりするのでしょうか?

投稿日時 - 2009-04-28 02:29:31

あなたにオススメの質問