2014-05-13 8 views
11

Próbuję zainstalować wtyczkę vagrant-windows na Mac OSX 10.9.2. Jednak stale dostaję błąd, że program Bundler nie może zainstalować nokogiri 1.6.2.Dodatek Vagrant i instalacja nokogiri

Badanie pliku gem_make.out ujawnia, że ​​nokogiri nie może znaleźć biblioteki libxml2, którą zainstalowałem i połączono przez homebrew.

Poniżej jest moje gem_make.out

/Applications/Vagrant/embedded/bin/ruby extconf.rb 
Building nokogiri using packaged libraries. 
checking for iconv.h... yes 
checking for iconv_open() in iconv.h... no 
checking for iconv_open() in -liconv... yes 
Building libxml2-2.8.0 for nokogiri with the following patches applied: 
    - 0001-Fix-parser-local-buffers-size-problems.patch 
    - 0002-Fix-entities-local-buffers-size-problems.patch 
    - 0003-Fix-an-error-in-previous-commit.patch 
    - 0004-Fix-potential-out-of-bound-access.patch 
    - 0005-Detect-excessive-entities-expansion-upon-replacement.patch 
    - 0006-Do-not-fetch-external-parsed-entities.patch 
    - 0007-Enforce-XML_PARSER_EOF-state-handling-through-the-pa.patch 
    - 0008-Improve-handling-of-xmlStopParser.patch 
    - 0009-Fix-a-couple-of-return-without-value.patch 
    - 0010-Keep-non-significant-blanks-node-in-HTML-parser.patch 
    - 0011-Do-not-fetch-external-parameter-entities.patch 
************************************************************************ 
IMPORTANT! Nokogiri builds and uses a packaged version of libxml2. 

If this is a concern for you and you want to use the system library 
instead, abort this installation process and reinstall nokogiri as 
follows: 

    gem install nokogiri -- --use-system-libraries 

If you are using Bundler, tell it to use the option: 

    bundle config build.nokogiri --use-system-libraries 
    bundle install 

However, note that nokogiri does not necessarily support all versions 
of libxml2. 

For example, libxml2-2.9.0 and higher are currently known to be broken 
and thus unsupported by nokogiri, due to compatibility problems and 
XPath optimization bugs. 
************************************************************************ 
Extracting libxml2-2.8.0.tar.gz into tmp/x86_64-apple-darwin12.5.0/ports/libxml2/2.8.0... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxml2/0001-Fix-parser-local-buffers-size-problems.patch... 
Running 'patch' for libxml2 2.8.0... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxml2/0002-Fix-entities-local-buffers-size-problems.patch... 
Running 'patch' for libxml2 2.8.0... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxml2/0003-Fix-an-error-in-previous-commit.patch... 
Running 'patch' for libxml2 2.8.0... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxml2/0004-Fix-potential-out-of-bound-access.patch... 
Running 'patch' for libxml2 2.8.0... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxml2/0005-Detect-excessive-entities-expansion-upon-replacement.patch... 
Running 'patch' for libxml2 2.8.0... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxml2/0006-Do-not-fetch-external-parsed-entities.patch... 
Running 'patch' for libxml2 2.8.0... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxml2/0007-Enforce-XML_PARSER_EOF-state-handling-through-the-pa.patch... 
Running 'patch' for libxml2 2.8.0... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxml2/0008-Improve-handling-of-xmlStopParser.patch... 
Running 'patch' for libxml2 2.8.0... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxml2/0009-Fix-a-couple-of-return-without-value.patch... 
Running 'patch' for libxml2 2.8.0... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxml2/0010-Keep-non-significant-blanks-node-in-HTML-parser.patch... 
Running 'patch' for libxml2 2.8.0... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxml2/0011-Do-not-fetch-external-parameter-entities.patch... 
Running 'patch' for libxml2 2.8.0... OK 
Running 'configure' for libxml2 2.8.0... OK 
Running 'compile' for libxml2 2.8.0... OK 
Running 'install' for libxml2 2.8.0... OK 
Activating libxml2 2.8.0 (from /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/x86_64-apple-darwin12.5.0/libxml2/2.8.0)... 
Building libxslt-1.1.28 for nokogiri with the following patches applied: 
    - 0001-Adding-doc-update-related-to-1.1.28.patch 
    - 0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch 
    - 0003-Initialize-pseudo-random-number-generator-with-curre.patch 
    - 0004-EXSLT-function-str-replace-is-broken-as-is.patch 
    - 0006-Fix-str-padding-to-work-with-UTF-8-strings.patch 
    - 0007-Separate-function-for-predicate-matching-in-patterns.patch 
    - 0008-Fix-direct-pattern-matching.patch 
    - 0009-Fix-certain-patterns-with-predicates.patch 
    - 0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch 
    - 0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch 
    - 0014-Fix-for-bug-436589.patch 
    - 0015-Fix-mkdir-for-mingw.patch 
************************************************************************ 
IMPORTANT! Nokogiri builds and uses a packaged version of libxslt. 

If this is a concern for you and you want to use the system library 
instead, abort this installation process and reinstall nokogiri as 
follows: 

    gem install nokogiri -- --use-system-libraries 

If you are using Bundler, tell it to use the option: 

    bundle config build.nokogiri --use-system-libraries 
    bundle install 
************************************************************************ 
Extracting libxslt-1.1.28.tar.gz into tmp/x86_64-apple-darwin12.5.0/ports/libxslt/1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0001-Adding-doc-update-related-to-1.1.28.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0003-Initialize-pseudo-random-number-generator-with-curre.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0004-EXSLT-function-str-replace-is-broken-as-is.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0006-Fix-str-padding-to-work-with-UTF-8-strings.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0007-Separate-function-for-predicate-matching-in-patterns.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0008-Fix-direct-pattern-matching.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0009-Fix-certain-patterns-with-predicates.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0014-Fix-for-bug-436589.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running git apply with /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/patches/libxslt/0015-Fix-mkdir-for-mingw.patch... 
Running 'patch' for libxslt 1.1.28... OK 
Running 'configure' for libxslt 1.1.28... OK 
Running 'compile' for libxslt 1.1.28... OK 
Running 'install' for libxslt 1.1.28... OK 
Activating libxslt 1.1.28 (from /Users/jason/.vagrant.d/gems/gems/nokogiri-1.6.2/ports/x86_64-apple-darwin12.5.0/libxslt/1.1.28)... 
checking for main() in -llzma... yes 
checking for linker flags for static linking... NONE 
checking for xmlParseDoc() in libxml/parser.h... no 
checking for xmlParseDoc() in -lxml2... no 
checking for xmlParseDoc() in -llibxml2... no 
----- 
libxml2 is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. 
----- 
*** 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 
    --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=/Applications/Vagrant/embedded/bin/ruby 
    --help 
    --clean 
    --use-system-libraries 
    --enable-static 
    --disable-static 
    --with-zlib-dir 
    --without-zlib-dir 
    --with-zlib-include 
    --without-zlib-include=${zlib-dir}/include 
    --with-zlib-lib 
    --without-zlib-lib=${zlib-dir}/lib 
    --enable-cross-build 
    --disable-cross-build 
    --with-xml2lib 
    --without-xml2lib 
    --with-libxml2lib 
    --without-libxml2lib 
+0

Wpadłem na ten sam problem i zgaduję, że to błąd z włóczęgą. Właśnie obniżyłem ocenę z powrotem do wersji 1.5.4. – levy

+1

Vagrant również ma swój własny rubin. Instalowanie czegokolwiek przez homebrew nic nie da, ponieważ włóczęga nawet nie próbowałby go użyć. – levy

+0

Ten sam problem tutaj. To musi mieć coś wspólnego z 1.6. –

Odpowiedz

8

znalazłem, że muszę wyraźnie powiedzieć Nokogiri do wykorzystywania pewnych bibliotek. Z początku nie było to dla mnie oczywiste, ponieważ Vagrant używa osadzonej wersji Ruby i nie ma nic wspólnego z instalacją za pośrednictwem brew lub samego systemu operacyjnego.

NOKOGIRI_USE_SYSTEM_LIBRARIES=1 vagrant plugin install vagrant-windows

EDIT: Również po prostu zobaczyłem to dokładnie tę samą odpowiedź od dzisiaj wcześniej w kategoriach Nokogiri wtyczek opartych o Vagrant a nie tylko wędrujących oknami: https://stackoverflow.com/a/23635023/2619

+0

To wystarczy! –

0

miałem ten sam problem, ale z vagrant-aws plugin na Mavericks ...

NOKOGIRI_USE_SYSTEM_LIBRARIES = 1 vagrant wtyczka install vagrant-aws załatwił sprawę.

2

Następująca sugestia @ flurdy, uaktualnienie do najnowszego Vagrant, 1.6.5 w moim przypadku, naprawił to po dniach próbowania wszystkiego, co Internet musi rzucić na ten problem.

+0

To zadziałało dla mnie. W moim przypadku miałem już 1.6.3 zainstalowany na 10.9.5 – acorncom