Не могу собрать gem - сборка собственного расширения не удалась - понимаете почему? - PullRequest
1 голос
/ 04 августа 2009

Я не могу понять, что здесь не так - есть идеи ??

Я работаю на Ubuntu 8.04 LTS и установил libxml2 и libxslt из следующих инструкций:

http://www.techsww.com/tutorials/libraries/libxml/installation/installing_libxml_on_ubuntu_linux.php

http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.php

Однако я установил последние версии:

LibXSLT-1.1.24
libxml2-2.7.3

Установка прошла без происшествий

-------------------- Я установил LD_LIBRARY_PATH ---------------------- ------------

эхо $LD_LIBRARY_PATH
/ USR / местные / LibXSLT / Библиотека:

------------- похоже, что функция присутствует - по крайней мере, на основе вывода строк ------------
/ usr / local / libxslt / lib $ strings * | grep ParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc

----------------------- Но компиляция все равно не получается ------------------- ---------------------

sudo gem install webrat
Сборка собственных расширений. Это может занять некоторое время ...
ОШИБКА: Ошибка при установке webrat:
ОШИБКА: не удалось создать собственное расширение для гема.

/ usr / local / bin / ruby ​​extconf.rb установить webrat
проверка для iconv.h в / opt / local / include /, / opt / local / include / libxml2, / opt / local / include, / opt / local / include, / opt / local / include / libxml2, / usr / local / include, / usr / local / include / libxml2, / usr / local / include, / usr / local / include / libxml2, / usr / include, / usr / include / libxml2 ... yes
проверка libxml / parser.h в / opt / local / include /, / opt / local / include / libxml2, / opt / local / include, / opt / local / include, / opt / local / include / libxml2, / usr / local / include, / usr / local / include / libxml2, / usr / local / include, / usr / local / include / libxml2, / usr / include, / usr / include / libxml2 ... yes
проверка наличия libxslt / xslt.h в / opt / local / include /, / opt / local / include / libxml2, / opt / local / include, / opt / local / include, / opt / local / include / libxml2, / usr / local / include, / usr / local / include / libxml2, / usr / local / include, / usr / local / include / libxml2, / usr / include, / usr / include / libxml2 ... yes
проверка для libexslt / exslt.h в / opt / local / include /, / opt / local / include / libxml2, / opt / local / include, / opt / local / include, / opt / local / include / libxml2, / usr / local / include, / usr / local / include / libxml2, / usr / local / include, / usr / local / include / libxml2, / usr / include, / usr / include / libxml2 ... yes
проверка на xmlParseDoc () в -lxml2 ... да
проверка для xsltParseStylesheetDoc () в -lxslt ... нет
libxslt отсутствует. попробуйте 'port install libxslt' или 'yum install libxslt-devel'
*** extconf.rb failed ***
Не удалось создать Makefile по какой-то причине, возможно, из-за отсутствия
необходимые библиотеки и / или заголовки. Проверьте файл mkmf.log, чтобы узнать больше
подробности. Вам могут понадобиться параметры конфигурации.

Provided configuration options:<br> --with-opt-dir<br> --without-opt-dir<br> --with-opt-include<br> --without-opt-include=${opt-dir}/include<br> --with-opt-lib<br> --without-opt-lib=${opt-dir}/lib<br> --with-make-prog<br> --without-make-prog<br> --srcdir=.<br> --curdir<br> --ruby=/usr/local/bin/ruby<br> --with-iconv-dir<br> --without-iconv-dir<br> --with-iconv-include<br> --without-iconv-include=${iconv-dir}/include<br> --with-iconv-lib<br> --without-iconv-lib=${iconv-dir}/lib<br> --with-xml2-dir<br> --without-xml2-dir<br> --with-xml2-include<br> --without-xml2-include=${xml2-dir}/include<br> --with-xml2-lib<br> --without-xml2-lib=${xml2-dir}/lib<br> --with-xslt-dir<br> --without-xslt-dir<br> --with-xslt-include<br> --without-xslt-include=${xslt-dir}/include<br> --with-xslt-lib<br> --without-xslt-lib=${xslt-dir}/lib<br> --with-xml2lib<br> --without-xml2lib<br> --with-xsltlib<br> --without-xsltlib

Файлы Gem останутся установленными в /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.3.3 для проверки.
Результаты заносятся в /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.3.3/ext/nokogiri/gem_make.out

Ответы [ 6 ]

5 голосов
/ 09 ноября 2009

В Ubuntu вам нужно выполнить следующие шаги: sudo apt-get установить libxml2-dev sudo apt-get установить libxslt-dev

1 голос
/ 14 апреля 2010

Джаред Эванс в этом посте в своем блоге описал решение, которое работало для меня на Ubuntu 8.04 LTS. Его хитрость заключается не в том, чтобы использовать apt-get для установки rubygems, а в том, чтобы создать его из исходного кода. Это отлично сработало для меня. Его пост направлен на установку rails, поэтому я использовал (слегка измененные) шаги из него, чтобы просто установить nokogiri:

ПЕРВЫЙ УСТАНОВИТЬ РУБИН С APT-GET:

 sudo apt-get update
 sudo apt-get install ruby irb ri rdoc ruby1.8-dev libzlib-ruby
  libyaml-ruby libreadline-ruby libncurses-ruby libcurses-ruby libruby
  libruby-extras libfcgi-ruby1.8 build-essential libopenssl-ruby
  libdbm-ruby libdbi-ruby libdbd-sqlite3-ruby sqlite3 libsqlite3-dev
  libsqlite3-ruby libxml-ruby libxml2-dev

В дополнение к инструкциям JARED, которые я также установил (я не уверен, что libxslt1.1 необходим):

 sudo apt-get install libxslt1.1
 sudo apt-get install libxslt1-dev

СКАЧАТЬ ИСТОЧНИК RUBYGEMS:

Загрузите последний RubyGems (в настоящее время 1.3.6) из rubyforge (я использовал пакет zip).

СТРОИТЕЛЬНЫЕ РУБИЖЕМЫ:

 cd /TO/DIRECTORY/WHERE/YOU/UNZIPPED/rubygems-1.3.6/
 sudo ruby setup.rb
 sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

УСТАНОВИТЬ НОКОГИРИ:

 sudo gem update –system
 sudo gem install nokogiri

Ответ будет:

1 gem installed
Installing ri documentation for nokogiri-1.4.1...

No definition for parse_memory

No definition for parse_file

No definition for parse_with

No definition for get_options

No definition for set_options
Installing RDoc documentation for nokogiri-1.4.1...

No definition for parse_memory

No definition for parse_file

No definition for parse_with

No definition for get_options

No definition for set_options

Я еще не заметил никаких проблем, вызванных сообщениями "Нет определения" ...

0 голосов
/ 27 мая 2011

Вот что у меня сработало в Ubuntu 11.04 (natty):

sudo apt-get install libxslt-dev libxml2-dev

sudo gem install nokogiri

0 голосов
/ 21 ноября 2009

Я получаю ту же ошибку при попытке установки в нестандартном месте (так как у меня нет доступа к каталогам за пределами моего домашнего каталога). Кажется, что этот ответ просто установлен в папку по умолчанию в / usr для успеха. Или я неправильно понял?

Больше контекста о том, что я пытаюсь сделать, на http://groups.google.com/group/nokogiri-talk/browse_thread/thread/c1e909be09e90f5a,, если это полезно.

0 голосов
/ 10 августа 2009

Вам необходимо установить комплекты разработки этих библиотек.

0 голосов
/ 04 августа 2009

Попробуйте удалить libxslt * и установить их снова. Это решило проблему для меня.

...