4

わかりました、私はこれを理解しようとして4時間を費やしましたが、成功しませんでした. 私はすべての通常の容疑者を試し、ruby 1.9.1、ロードパス、gems、mac os x、freebsd、prawn、その他のもののすべての組み合わせをグーグル検索しました。要点は次のとおりです。

Mac OS x 10.5 でソースから ruby​​1.9.1-p129 をコンパイルすると、デフォルトのロード パス ($:) は次のようになります。

ruby -e "puts $:"
/usr/local/lib/ruby/gems
/usr/local/lib/ruby/site_ruby/1.9.1
/usr/local/lib/ruby/site_ruby/1.9.1/i386-darwin9.7.0
/usr/local/lib/ruby/site_ruby
/usr/local/lib/ruby/vendor_ruby/1.9.1
/usr/local/lib/ruby/vendor_ruby/1.9.1/i386-darwin9.7.0
/usr/local/lib/ruby/vendor_ruby
/usr/local/lib/ruby/1.9.1
/usr/local/lib/ruby/1.9.1/i386-darwin9.7.0
.

たとえば、エビの宝石をインストールすると、次のようになります。

海老の逸品
(エビのgem prawn-0.5.0.1をチェック)
/prawn.rb

そして、それを要求しようとすると、次のようになります。

ruby -e "require 'エビ'"
-e:1:in `require': ロードするファイルがありません -- エビ (LoadError)
    -e:1:in `' から

これを解決できた唯一の方法は、次のような愚かなことをすることです。

$: << "/usr/local/lib/ruby/gems/1.9.1/gems/prawn-0.5.0.1/lib"

もちろん、これはまったくばかげています。問題は、Ruby 1.9.1 が正しい gems パスを認識してたどるにはどうすればよいかということです。私は 1.8.7 でこの問題を経験したことがないので、1.9.1 固有のものであると想定しています。ここで完全に明らかな何かが欠けていると感じています。どんな助けでも大歓迎です!

4

5 に答える 5

3

kubuntu karmicでも同じ問題。

インストール:

$ sudo apt-get install build-essential ruby1.9.1-full libsqlite3 libsqlite3-dev rubygems1.9
$ sudo gem install sqlite3-ruby rails thin --no-rdoc --no-ri

結果:

$ ruby -e "require 'rubygems'; require 'sqlite3'" 
-e:1:in `require': no such file to load -- sqlite3 (LoadError)
        from -e:1:in `<main>'   

解決:

$ export GEM_PATH=/usr/lib/ruby1.9.1/gems/1.9.1/
于 2009-11-01T20:52:05.707 に答える
2

gem env次にこのような問題が発生した場合は、コマンド ラインから実行することを忘れないでください。これは Windows で発生することですが、原則はほとんど同じです。

C:\Documents and Settings\a.grimm>gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.5
  - RUBY VERSION: 1.9.1 (2010-01-10 patchlevel 378) [i386-mingw32]
  - INSTALLATION DIRECTORY: C:/Ruby19/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: C:/Ruby19/bin/ruby.exe
  - EXECUTABLE DIRECTORY: C:/Ruby19/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-mingw32
  - GEM PATHS:
     - C:/Ruby19/lib/ruby/gems/1.9.1
     - C:/Documents and Settings/a.grimm/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org/
于 2011-03-20T22:50:50.593 に答える
0

同じ問題に対する別の答えを探しています。場合によっては (システムの起動タスクなど)、Ruby の実行前に環境変数を設定することができません。

ruby (v >= 1.9.1) コードを実行して gem を要求する方法はありますか? GEM_PATH を設定せずに?

于 2010-09-22T02:15:45.857 に答える