[英]Using Ruby Gems
我是紅寶石的新手。 我寫了一個小腳本,在頂部,我有以下內容:
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
我在ubuntu上遇到了相同的錯誤
寶石安裝路緣
也沒有用。 這雖然有效:
須藤apt-get install libcurl3-dev
您是否通過外殼中的“ gem install curb”安裝了gem? 前兩個Net :: HTTP和JSON是Ruby 1.9標准庫的一部分,因此它們實際上根本沒有使用RubyGems。
Ruby中的某些庫不是純ruby實現,而是依賴於系統可執行文件和二進制文件。 遏制就是這樣的一種。
在系統上安裝curl
例如在紅帽
百勝安裝curl-devel
你能試一下嗎
gem list
您會獲得已安裝的寶石的列表。 如果缺少路緣石,則未安裝。
然后,您可以使用(如果您在線):
gem install curb
安裝它。 該gem將通過Internet加載和安裝(如果存在依賴項,系統會詢問您是否應安裝它們)。
答案在於這兩行:
checking for curl-config... no
checking for main() in -lcurl... no
這意味着系統搜索了curl庫,但沒有找到它。
您需要curl庫及其dev文件(源代碼)才能編譯gem。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.