Создать гем с собственным расширением (Gem :: Installer :: ExtensionBuildError) - PullRequest
5 голосов
/ 20 мая 2010

У меня есть следующая конфигурация:

  • uname -a: Linux 2.6.24.2 i686 GNU / Linux (Ubuntu)
  • ruby ​​-v: ruby ​​1.9.0 (2007-12-25, редакция 14709) [i486-linux]
  • rails -v: Rails 3.0.0.beta3
  • gem -v : 1.3.5
  • рейк - версия: рейк, версия 0.8.7
  • make -v: GNU Make 3.81
  • драгоценный камень env:
    • RUBYGEMS VERSION: 1.3.5
    • RUBY VERSION: 1.9.0 (2007-12-25 уровень исправления 0) [i486-linux]
    • КАТАЛОГ УСТАНОВКИ: /usr/lib/ruby1.9/gems/1.9.0
    • RUBY EXECUTABLE: /usr/bin/ruby1.9
    • ИСПОЛНЯЕМЫЙ КАТАЛОГ: / usr / bin
    • ПЛАТФОРМЫ RUBYGEMS:
    • ruby ​​
    • x86-linux
    • ПУТИ ДЖЕМ:
      • / usr / lib / ruby1.9 / gems / 1.9.0
      • / root / .gem / ruby ​​/ 1.9.0
    • КОНФИГУРАЦИЯ GEM:
      • : update_sources => true
      • : verbose => true
      • : benchmark => false
      • : обратная трассировка => false
      • : массовый порог => 1000
    • УДАЛЕННЫЕ ИСТОЧНИКИ:

И когда я попробую эту простую команду:

gem install nokogiri

Вот что я получаю:

# gem install nokogiri
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
        ERROR: Failed to build gem native extension.

/usr/bin/ruby1.9 extconf.rb
checking for iconv.h in /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/include,/usr/include/libxml2,/usr/include,/usr/include/libxml2... yes
checking for libxml/parser.h in /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/include,/usr/include/libxml2,/usr/include,/usr/include/libxml2... yes
checking for libxslt/xslt.h in /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/include,/usr/include/libxml2,/usr/include,/usr/include/libxml2... yes
checking for libexslt/exslt.h in /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/include,/usr/include/libxml2,/usr/include,/usr/include/libxml2... yes
checking for xmlParseDoc() in -lxml2... yes
checking for xsltParseStylesheetDoc() in -lxslt... yes
checking for exsltFuncRegister() in -lexslt... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetValidStructuredErrors()... yes
checking for xmlSchemaSetValidStructuredErrors()... yes
checking for xmlSchemaSetParserStructuredErrors()... yes
creating Makefile

make
cc -I. -I/usr/include/libxml2 -I/usr/include -I/usr/include/ruby-1.9.0/i486-linux -I/usr/include/ruby-1.9.0 -I. -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETPARSERSTRUCTUREDERRORS -I/opt/local/include/ -I/opt/local/include/libxml2 -I/opt/local/include  -D_FILE_OFFSET_BITS=64  -fPIC -fno-strict-aliasing -g  -fPIC   -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline  -o xml_document_fragment.o -c xml_document_fragment.c
In the included file starting at ./nokogiri.h:75,
          From ./xml_document_fragment.h:4,
          From xml_document_fragment.c:1:
./xml_document.h:5:16: error: st.h : No file or folder with this type
make: *** [xml_document_fragment.o] Error 1


Gem files will remain installed in /usr/lib/ruby1.9/gems/1.9.0/gems/nokogiri-1.4.1 for inspection.
Results logged to /usr/lib/ruby1.9/gems/1.9.0/gems/nokogiri-1.4.1/ext/nokogiri/gem_make.out

Файл "gem_make.out" содержит точно такую ​​же информацию, как описано выше.

Если я попробую с другим гемом:

gem install gherkin

Вот что я получу:

u# gem install gherkin
Building native extensions.  This could take a while...
ERROR:  Error installing gherkin:
        ERROR: Failed to build gem native extension.

/usr/bin/ruby1.9 extconf.rb
checking for main() in -lc... yes
creating Makefile

make
cc -I. -I/usr/include/ruby-1.9.0/i486-linux -I/usr/include/ruby-1.9.0 -I. -D_FILE_OFFSET_BITS=64  -fPIC -fno-strict-aliasing -g  -fPIC   -o gherkin_lexer_ar.o -c gherkin_lexer_ar.c
/Users/aslakhellesoy/scm/gherkin/tasks/../ragel/i18n/ar.c.rl:11:16: erreur: re.h : Aucun fichier ou dossier de ce type
make: *** [gherkin_lexer_ar.o] Erreur 1


Gem files will remain installed in /usr/lib/ruby1.9/gems/1.9.0/gems/gherkin-1.0.30 for inspection.
Results logged to /usr/lib/ruby1.9/gems/1.9.0/gems/gherkin-1.0.30/ext/gherkin_lexer_ar/gem_make.out

Фактически всякий раз, когда я пытаюсь установить гем с собственным расширением , я получаю тот же тип ошибки.

Будет ли это звонком кому-нибудь?

Ответы [ 2 ]

1 голос
/ 28 мая 2010

Кажется, что выпуск № 116 Нокогири говорит само за себя:

Ruby 1.9.0 не поддерживается . Вы должны обновить до 1.9.1-p129 или даже 1.9.2. 1.9.0 слишком сломан для поддержки. : - (

Теперь я могу захотеть обновить эту маленькую рубиновую штуку ...

0 голосов
/ 20 мая 2010

Для нокогири вы можете попробовать здесь

Для других драгоценных камней вы можете проверить здесь для проблем совместимости ruby ​​1.9

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...