2014-05-13 17 views
11

Tôi đang cố gắng cài đặt plugin cửa sổ lang thang trên Mac OSX 10.9.2. Tuy nhiên tôi liên tục nhận được lỗi mà Bundler không thể cài đặt nokogiri 1.6.2.Plugin Vagrant và nokogiri cài đặt sự cố

Kiểm tra tệp gem_make.out cho thấy rằng nokogiri không thể tìm thấy libxml2, mà tôi đã cài đặt và liên kết qua homebrew.

Dưới đây là gem_make.out tôi

/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

Tôi đã gặp phải vấn đề tương tự và tôi đoán lỗi của nó là có vấn đề. Tôi vừa hạ cấp xuống 1.5.4. – levy

+1

Vagrant cũng tàu với ruby ​​của riêng mình tôi tin. Cài đặt bất cứ điều gì thông qua homebrew sẽ không làm bất cứ điều gì bởi vì lang thang thậm chí sẽ không cố gắng sử dụng nó. – levy

+0

Cùng một vấn đề ở đây. Điều này phải có một cái gì đó để làm với 1.6. –

Trả lời

8

tôi thấy mình cần phải nói rõ ràng Nokogiri để sử dụng thư viện nhất định. Điều này không rõ ràng với tôi lúc đầu là Vagrant sử dụng một phiên bản nhúng của Ruby và không phải bất cứ điều gì để làm với những gì được cài đặt thông qua brew, hoặc hệ điều hành chính nó.

NOKOGIRI_USE_SYSTEM_LIBRARIES=1 vagrant plugin install vagrant-windows

EDIT: Cũng chỉ thấy câu trả lời chính xác cùng này từ ngày hôm nay trước đó về nokogiri plugin dựa với Vagrant và không chỉ lang thang-cửa sổ: https://stackoverflow.com/a/23635023/2619

+0

Điều đó đã làm được điều đó! –

0

Tôi đã có cùng một vấn đề nhưng với sự plugin vagrant-aws trên Mavericks ...

NOKOGIRI_USE_SYSTEM_LIBRARIES = 1 plugin lang thang cài đặt vagrant-aws đã thực hiện thủ thuật.

2

Theo gợi ý của @ flurdy, nâng cấp lên Vagrant mới nhất, 1.6.5 trong trường hợp của tôi, đã khắc phục điều này sau nhiều ngày thử mọi thứ mà internet phải giải quyết.

+0

Điều này làm việc cho tôi. Trong trường hợp của tôi, tôi đã cài đặt 1.6.3 trên 10.9.5 – acorncom