簡體   English   中英

使用紅寶石

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM