2012-02-16 3 views
0

Я совершенно новый для рубинов. Я написал небольшой скрипт, и на вершине я следующее:Использование 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' устранит эту проблему, но, по-видимому, не в моем случае. Будет ли следующая догадка, что я неправильно установил Gems?

Edit: я должен отметить, что я нахожусь на 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 1.9, поэтому вам не нужна строка 'require 'rubygems' '; б) Хотя вы можете пожелать, чтобы рубигемы автоматически загружали и устанавливали драгоценные камни, которые требуется вашему скрипту, это не так. Перед запуском скрипта вам нужно сначала «gem install curb» из командной строки. – Phrogz

+0

Спасибо за ответы. Я попытался запустить gem install curb, но получил ошибку в моем редактировании выше. – hodgesmr

+1

Возможно, это ваш новый вопрос: [как установить curb в Windows] (http://stackoverflow.com/questions/1511865/install-ruby-curb-gem-in-windows-xp). – Phrogz

ответ

1

Вы установили камень с помощью «камень установить бордюр «в оболочке? Первые два, Net :: HTTP и JSON, являются частью стандартной библиотеки Ruby 1.9, поэтому они вообще не используют RubyGems.

0

Вы можете попробовать

gem list 

Вы получаете список установленных камней. Если ограничение ограничено, оно не установлено.

Затем вы можете использовать (если вы находитесь в Интернете):

gem install curb 

, чтобы установить его. Драгоценный камень будет загружен и установлен из Интернета (при наличии зависимостей вас спросят, должны ли они быть установлены.).

0

Ответ лежит в этих двух строках:

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

Это означает, что система искала завиток библиотеки, но не нашла его.

Вам нужна библиотека curl и ее файлы dev (исходный код) для сборки gem.

9

я получаю ту же ошибку на убунт и

камня установить Снаряженную

также не работает. Это работало, хотя:

Sudo APT-получить установку libcurl3-DEV

+0

Для тех, кто хочет знать, почему, потому что curb требует файлы и библиотеки заголовков libcurl для компиляции драгоценного камня. – JCM

0

Некоторых библиотеки Ruby, не является чисто реализацией рубина и зависит от системных исполняемых файлов и бинарных файлов. Борд является одним из таких.

Установить завиток в вашей системе

например. in redhat

yum install curl-devel