Не удалось установить nokogiri libiconv на Yosemite Mac OS X 10.10
Попытка установить Nokogiri Im, получив следующую ошибку
Maxims-MacBook-Air:ScrapingTheApple maximveksler$ gem install nokogiri
Fetching: nokogiri-1.6.2.1.gem (100%)
Building native extensions. This could take a while...
Building nokogiri using packaged libraries.
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/Users/maximveksler/.rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb
Building nokogiri using packaged libraries.
-----
libiconv 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
--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=/Users/maximveksler/.rvm/rubies/ruby-2.1.2/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
extconf failed, exit code 1
Gem files will remain installed in /Users/maximveksler/.rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.2.1 for inspection.
Results logged to /Users/maximveksler/.rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.2.1/gem_make.out
Ответы
Ответ 1
учебник по установке nokogiri обеспечивает решение:
# bash
brew unlink gcc
gem uninstall nokogiri
xcode-select --install
gem install nokogiri
Если у вас нет Xcode 6.1, вы можете установить его с сайта загрузки (раздел дополнительных инструментов), так как описанный в этом сообщении в блоге.
Ответ 2
Я предлагаю обновление для ответа Oskar, замените MacOSX10.9.sdk на MacOSX10.10.sdk, протестированный на OS X 10.10
gem install nokogiri -- \
--with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib \
--with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include
Ответ 3
Я был успешным:
gem install nokogiri -- \
--with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib \
--with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include
Ответ 4
без brew и других вещей:
xcode-select --install
gem install nokogiri -- --use-system-libraries
Ответ 5
В моем случае я обновил Xcode и забыл установить инструменты командной строки, поэтому установка не смогла запустить компилятор.
Ниже перечислены инструменты командной строки:
xcode-select --install
Ответ 6
На всякий случай, если кто-то еще не сможет его решить, как я это делаю с вышеупомянутым решением, то это альтернативный
gem install nokogiri - --user-system-libraries
или используя пучок
bundle config build.nokogiri --use-system-libraries
установить пакет
Благодаря http://www.nokogiri.org/tutorials/installing_nokogiri.html
Ответ 7
Кажется, что вы получаете nokogiri для установки, еще не уверенное в рабочем состоянии.
brew install libiconv
gem install nokogiri -- --with-iconv-include=/usr/local/opt/libiconv/include/ --with-iconv-lib=/usr/local/opt/libiconv/lib/
Установить журнал:
Maxims-MacBook-Air:ScrapingTheApple maximveksler$ gem install nokogiri -- --with-iconv-include=/usr/local/opt/libiconv/include/ --with-iconv-lib=/usr/local/opt/libiconv/lib/
Building native extensions with: '--with-iconv-include=/usr/local/opt/libiconv/include/ --with-iconv-lib=/usr/local/opt/libiconv/lib/'
This could take a while...
Building nokogiri using packaged libraries.
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.
************************************************************************
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
************************************************************************
Successfully installed nokogiri-1.6.2.1
Parsing documentation for nokogiri-1.6.2.1
Installing ri documentation for nokogiri-1.6.2.1
Done installing documentation for nokogiri after 4 seconds
1 gem installed
Ответ 8
на 10.9 с XCode 6.1 мне пришлось бросать --use-system-libraries
, потому что настроенный libxslt умирал.
gem install nokogiri -- --with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib --with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include --use-system-libraries
Ответ 9
Я тоже столкнулся с этой проблемой, оказалось, что это было результатом установки macports под Mavericks и не перенастройки установки на Yosemite.
Следуя инструкциям здесь:
http://trac.macports.org/wiki/Migration
Позвольте мне установить более старую версию Nokogiri (1.5.x), которая была зависимостью rspec-puppet
Ответ 10
У меня была такая же проблема, после установки инструмента командной строки,
gem install nokogiri -- --with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib --with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include --use-system-libraries
Не обязательно работает, так как он продолжает говорить об обновлении программного обеспечения (это уже последняя версия). Вместо этого я использовал sudo gem install nokogiri --pre
, который работал в конце