2012-02-16 14 views
0

私はRubyの新作です。私は小さなスクリプトを書いた、と先頭に、私は次のようにありますRuby Gemを使用

require 'rubygems' 
require 'net/http' 
require 'json' 
require 'curb' 

しかし、私は、スクリプトを実行しようとすると、私は次を得る:私が見つけた

C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot loa 
d such file -- curb (LoadError) 
     from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require 
' 
     from rImDrop.rb:4:in `<main>' 

すべてこれまでのところ、require 'rubygems'はこの問題を修正すると表示されていましたが、明らかに私の場合はそうではありませんでした。私はGemsが正しくインストールされていないと思われますか?

編集:私はWindows 7の上だと指摘しなければならない...

私はgem install curbを実行すると、私が手:

Temporarily enhancing PATH to include DevKit... 
Building native extensions. This could take a while... 
ERROR: Error installing curb: 
     ERROR: Failed to build gem native extension. 

     C:/Ruby193/bin/ruby.exe extconf.rb 
checking for curl-config... no 
checking for main() in -lcurl... no 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Provided configuration options: 
     --with-opt-dir 
     --without-opt-dir 
     --with-opt-include 
     --without-opt-include=${opt-dir}/include 
     --with-opt-lib 
     --without-opt-lib=${opt-dir}/lib 
     --with-make-prog 
     --without-make-prog 
     --srcdir=. 
     --curdir 
     --ruby=C:/Ruby193/bin/ruby 
     --with-curl-dir 
     --without-curl-dir 
     --with-curl-include 
     --without-curl-include=${curl-dir}/include 
     --with-curl-lib 
     --without-curl-lib=${curl-dir}/lib 
     --with-curllib 
     --without-curllib 
extconf.rb:23:in `<main>': Can't find libcurl or curl/curl.h (RuntimeError) 

    Try passing --with-curl-dir or --with-curl-lib and --with-curl-include 
    options to extconf. 


Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/curb-0.8. 
0 for inspection. 
Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/gems/curb-0.8.0/ext/gem_make.ou 
t 
+1

a)Rubyの宝石はRuby 1に組み込まれています。9、 'require" ruby​​gems "'行は必要ありません。 b)rubygemsがあなたのスクリプトが必要とする宝石を自動的にダウンロードしてインストールすることを望むかもしれませんが、そうではありません。スクリプトを実行する前に、コマンドラインから 'gem install curb'を実行する必要があります。 – Phrogz

+0

これまでの返信をありがとう。私は実行中のgem install curbを試しましたが、上記の編集でエラーが発生しました。 – hodgesmr

+1

それはおそらくあなたの新しい質問です:[Windows上でcurbをインストールする方法](http://stackoverflow.com/questions/1511865/install-ruby-curb-gem-in-windows-xp)。 – Phrogz

答えて

1

あなたが縁石をインストール宝石」を介して宝石をインストールしました"シェルで? Net :: HTTPとJSONの最初の2つは、Ruby 1.9標準ライブラリの一部であるため、実際にはRubyGemをまったく使用していません。

0

あなたはあなたがインストールされた宝石のリストを取得

gem list 

を試すことができます。 curbが見つからない場合、curbはインストールされません。 (あなたがオンラインである場合)

次に、あなたが使用することができます。

gem install curb 

それをインストールします。宝石は、インターネットからロードされ、インストールされます(依存関係がある場合は、インストールする必要があるかどうか尋ねられます)。

0

答えは、これらの2行にある:

checking for curl-config... no 
checking for main() in -lcurl... no 

それは、システムがカールライブラリを探し、それを発見していなかったことを意味します。

gemをコンパイルするには、curlライブラリとそのdevファイル(ソースコード)が必要です。

9

私はUbuntuで同じエラーを取得し、縁石

もうまくいきませんでした

宝石をインストールしました。これは、しかし働いていた:

須藤はapt-getはlibcurl3-devの

+0

なぜcurbがlibcurlヘッダーファイルとライブラリを必要とするのか宝石をコンパイルする。 – JCM

0

Rubyでいくつかのライブラリは純粋なRuby実装ではなく、システムの実行可能ファイルとバイナリファイルに依存してインストールします。縁石はそのようなものです。

お使いのシステムにインストールしたカール

例えばRedhatで

yum install curl-devel