2012-02-16 232 views
0

我是全新的紅寶石。我寫了一個小腳本,並在頂部我有以下幾點:使用紅寶石

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'將解決這個問題,但顯然不在我的情況。下一個猜測是我的寶石安裝不正確?

編輯:我要指出的是,我在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 gems內置於Ruby 1中。9,所以你不需要'require'rubygems''行; b)雖然你可能希望rubygems自動下載並安裝腳本所需的寶石,但它不會。在運行腳本之前,您需要先從命令行運行'gem install curb'。 – Phrogz 2012-02-16 23:06:25

+0

感謝迄今的答覆。我試着運行gem install curb,但是在我上面的編輯中出現了錯誤。 – hodgesmr 2012-02-16 23:14:42

+1

也許這是你的新問題,然後:[如何在Windows上安裝限制](http://stackoverflow.com/questions/1511865/install-ruby-curb-gem-in-windows-xp)。 – Phrogz 2012-02-16 23:30:01

回答

1

你有沒有通過「創業板安裝路邊安裝了寶石「在殼?前兩個Net :: HTTP和JSON是Ruby 1.9標準庫的一部分,因此它們根本不使用RubyGems。

0

你可以嘗試

gem list 

你得到安裝gem的列表。如果路邊缺失,則不安裝。

然後你可以使用(如果你是在線):

gem install curb 

安裝它。該寶石將從網上加載和安裝(如果存在依賴關係,則會詢問您是否應安裝它們)。

0

答案就在這兩條線:

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

這意味着系統搜索的curl庫,但沒有發現它。

您需要curl庫及其開發文件(源代碼)才能編譯gem。

9

我得到在Ubuntu相同的錯誤和

創業板安裝路邊

也沒有工作。這雖然工作:

命令和apt-get安裝libcurl3-dev的

+0

對於任何願意知道爲什麼,這是因爲限制需要libcurl頭文件和庫編譯寶石。 – JCM 2015-01-22 14:45:20

0

在Ruby中的一些庫不是純Ruby實現,並且依賴於系統的可執行文件和二進制文件。路邊就是這樣。

在您的系統上安裝捲曲

例如, in redhat

yum install curl-devel