Ошибка установки Nokogiri на OSX 10.9 Maverick?
Я обновил свой OSX (Lion) до Mavericks, и я не могу установить Nokogiri для своих проектов.
Я уже установил XCode 5.0.1, средства командной строки (используя xcode-select --install
) и уже установил libxml2 из Homebrew, и у меня все еще возникают проблемы.
Ошибка:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb
checking for libxml/parser.h... *** 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=/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
--with-zlib-dir
--without-zlib-dir
--with-zlib-include
--without-zlib-include=${zlib-dir}/include
--with-zlib-lib
--without-zlib-lib=${zlib-dir}/lib
--with-iconv-dir
--without-iconv-dir
--with-iconv-include
--without-iconv-include=${iconv-dir}/include
--with-iconv-lib
--without-iconv-lib=${iconv-dir}/lib
--with-xml2-dir
--without-xml2-dir
--with-xml2-include
--without-xml2-include=${xml2-dir}/include
--with-xml2-lib
--without-xml2-lib=${xml2-dir}/lib
--with-xslt-dir
--without-xslt-dir
--with-xslt-include
--without-xslt-include=${xslt-dir}/include
--with-xslt-lib
--without-xslt-lib=${xslt-dir}/lib
--with-libxslt-config
--without-libxslt-config
--with-pkg-config
--without-pkg-config
--with-libxml-2.0-config
--without-libxml-2.0-config
--with-libiconv-config
--without-libiconv-config
/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
from extconf.rb:116:in `<main>'
Gem files will remain installed in /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9 for inspection.
Results logged to /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9/ext/nokogiri/gem_make.out
An error occured while installing nokogiri (1.5.9), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.5.9'` succeeds before bundling.
Я установил libxml2, libxslt и libiconv из Homebrew и установил параметры для установки Nokogiri, но не работает тоже.
Я не могу найти, что неправильно в моем окружении, вы можете мне помочь?
Ответы
Ответ 1
Я нашел этот журнал и увидел, что gcc-4.2 не найден:
package configuration for libxslt
cflags: -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2
package configuration for libxml-2.0
cflags: -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxml2
package configuration for libiconv is not found
"/usr/bin/gcc-4.2 -o conftest -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/ruby/backward -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1 -I. -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 -I/usr/local/Cellar/libiconv/1.14/include -I/Users/ericcamalionte/.rvm/gems/[email protected]/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/include -I/Users/ericcamalionte/.rvm/gems/[email protected]/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/include -I/Users/ericcamalionte/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES -DNOKOGIRI_LIBXML2_PATH='"/Users/ericcamalionte/.rvm/gems/[email protected]/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0"' -DNOKOGIRI_LIBXSLT_PATH='"/Users/ericcamalionte/.rvm/gems/[email protected]/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26"' -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 conftest.c -L. -L/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libiconv/1.14/lib -L/Users/ericcamalionte/.rvm/gems/[email protected]/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -L/Users/ericcamalionte/.rvm/gems/[email protected]/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/Users/ericcamalionte/.rvm/usr/lib -L. -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/[email protected]/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/[email protected]/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2 -lxml2 -lruby.1.9.1-static -lpthread -ldl -lobjc "
sh: /usr/bin/gcc-4.2: No such file or directory
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */
Чтобы решить эту проблему, я включил apple-gcc42 с помощью homebrew brew install apple-gcc42
и создал символическую ссылку на мой /usr/bin:
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc-4.2
Ответ 2
Вы также можете установить Nokogiri на Mac OS X 10.9 Mavericks с полной установкой XCode, используя:
gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2
Update
Для тех, кто использует Yosemite, будет работать следующая команда:
gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 --use-system-libraries
или, может быть, он действительно находится в вашей папке MacOSX10.11.sdk
(мой был с 18 сентября 2015 года), так что, даже если вы еще не полностью до El Capitan, я недавно обновил XCode, и вам может понадобиться для использования пути SDK El Capitan, следующего за ним:
Update
Для тех, кто использует El Capitan, будет работать следующая команда:
gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries
Update
Для тех, кто использует Сьерра, будет работать следующая команда:
gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries
Ответ 3
После навигации по анимированным GIF файлам здесь все, что мне нужно было сделать, это просто xcode-select --install
, а gem install nokogiri
работал нормально.
Ответ 4
Если вы используете Xcode 5.1, инструменты командной строки не работают для nokogiri 1.6.1. Вам нужно будет загрузить инструменты позднего октября 2013 года из Apple. После этого выполните
sudo xcode-select -s /Library/Developer/CommandLineTools/
чтобы настроить ваш компьютер для использования инструментов командной строки Xcode 5.0.X, затем запустите
gem install nokogiri
Если вы хотите reset использовать инструменты командной строки для версии Xcode.app после выполнения
sudo xcode-select -r
Или, еще одна вещь, которую вы можете сделать, это добавить флаг, чтобы игнорировать неизвестные аргументы командной строки. Затем установка выглядит следующим образом:
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri
Ответ 5
Это то, что сработало для меня в OSX Mavericks:
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri -v '1.6.1' --verbose --no-ri --no-rdoc
Ответ 6
Я на OSX Mavericks, и моя проблема оказалась плохой установкой Ruby.
Итак, я переустановил ruby с rvm:
rvm remove ruby 2.0.0p451
rvm remove ruby-2.0.0-p451 && rvm install ruby-2.0.0-p451
Тогда я смог
gem install nokogiri --no-ri --no-rdoc
Проблема решена.
Ответ 7
Мне нравится придерживаться системного материала. Это сработало для меня:
gem install nokogiri -- --with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ --with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/
Ответ 8
Я столкнулся с этой проблемой сразу после установки обновления Mavericks 10.9.5 и обновления инструментов разработчика 10.9 от Apple. Я запустил xcode-select --install
, но это не устранило проблему. Затем я открыл XCode, принял eula и вышел из XCode. Это устранило проблему.
Ответ 9
У меня была эта проблема сегодня, на Maverick, вот как я решил решить проблему:
brew update
brew install libiconv
brew link libiconv
Убедитесь, что вы знаете, что версия libiconv в шахте Cellar ниже 1.14, а затем установите, как показано ниже:
gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14
Если вам нужна определенная версия nokogiri e.g -v '1.6.2.1', установите ее как:
gem install nokogiri -v '1.6.2.1' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14
Nokogiri был успешно установлен!
Ответ 10
Это то же самое, что и пост @thomas_witt, но работает в Mac OS X Sierra:
gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries
Ответ 11
Чтобы заставить программу работать, мне пришлось изменить пути к файлу в команде gem install
, чтобы они соответствовали тем, что были в моей системе. У меня разные версии libxml2 и libiconv и несколько другая файловая структура. Команда с моими изменениями:
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2
--with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib
--with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28
--with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include
--with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
Ответ 12
Используйте brew install libxml2 libxslt
, если вы используете Homebrew.
Ответ 13
Для людей, использующих MacPorts, убедитесь, что вы установили libxml2
через MacPorts
. Затем введите:
bundle config build.nokogiri --use-system-libraries
bundle install
Это должно сделать трюк, работал у меня, не используя полные пути.
Ответ 14
Вот еще одна ссылка:
system: OS X Yosemite 10.10
rvm: 1.26.10
brew: 0.9.5
ruby: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]
У меня возникла ошибка при установке nokogiri
Ошибка:
.rvm/rubies/ruby-2.2.0-p0/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
Сначала вы должны установить средства разработки.
то, вероятно, необходимо:
$ xcode-select --install
или если вы получили ошибку, например
checking for libxml/parser.h... no
Я просто исправлю путь lib:
gem uninstall nokogiri libxml-ruby
brew update
brew uninstall libxml2
brew install libxml2 libxslt
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/
для пакета нужно что-то вроде:
bundle config build.nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/
bundle install
Ответ 15
Это работает для меня
system: OS X Yosemite 10.10
rvm: 1.26.10
ruby: ruby 2.2.1
Просто запустите две команды
$ xcode-select --install
Он попросит вас скачать "да", а затем попросит установить компонент xcode, щелкнув установку.
Теперь попробуйте установить gem с помощью команды
gem install nokogiri --no-ri --no-rdoc
Это работает для меня с окружающей средой.
Ответ 16
У меня была такая же ошибка при новой установке Mavericks. После отклонения суждения я переименовал свой пакет приложений Xcode в Xcode 5.0.1.app
.
По-видимому, установка Nokogiri script не цитирует его пути, поэтому пространство в имени файла вызвало всевозможные проблемы или проблемы. Только когда я попытался brew install libxml2
, ошибка стала очевидной.
Извлеченный урок: пробелы в именах файлов злы.
Ответ 17
Я столкнулся с той же проблемой для Mavrick, и решение было:
xcode-select --install
Однако это не работает как Страница загрузки Apple для инструмента командной строки не имеет доступного этого установщика.
Итак, если вы хотите иметь инструменты командной строки для Mavricks, вам нужно иметь оплаченную учетную запись. Тогда вы сможете его установить.
После его установки вы не столкнетесь с этой проблемой с Nokogiri.
Ответ 18
В моем случае, я должен был запустить /usr/bin/gcc -4.2 после symlinking его. Вы должны принять лицензионное соглашение, иначе оно зависает.
Ответ 19
Я добавил свои результаты здесь после того, как я наткнулся на эту же проблему вскоре после обновления: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/
Надеюсь, что это поможет.
Ответ 20
Сообщение об ошибке дает следующую информацию: The compiler failed to generate an executable file. (RuntimeError)
xcode-select --install # not sure if this is required
brew install apple-gcc42
gem install nokogiri
Вам также может понадобиться brew установить и связать эти:
libxml2 libxslt
Ответ 21
brew install libxml2 libxslt
gem install nokogiri -- \
--with-xml2-include=/usr/local/Cellar/libxml2/*/include/libxml2 \
--with-xml2-lib=/usr/local/Cellar/libxml2/*/lib \
--with-xslt-dir=/usr/local/Cellar/libxslt/*
Ответ 22
После перехода на Maverick у меня была аналогичная проблема. Я использую RVM с Ruby 1.9.2-p320, и я попробовал несколько решений, приведенных здесь, но ничто не решило проблему.
Затем я перешел на Ruby 2.1.2 и bundle install
установил Nokogiri немедленно.
Ответ 23
Для меня ошибка заключалась в том, что gcc (4.2.1, установленный из Homebrew) жаловался, что:
-E, -S, -save-temps and -M options are not allowed with multiple -arch flags
Я решил проблему, выставив только x86_64:
ARCHFLAGS="-arch x86_64" gem install nokogiri
Ответ 24
Если у кого-то есть эта проблема на el capitan, при использовании связующего.
Убедитесь, что инструменты командной строки xcode установлены и запущены:
bundle config build.nokogiri --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries
Ответ 25
Я столкнулся с тем же вопросом за последние две недели, пытаясь запустить приложение версии rails 3.
Проблема заключается в том, что ваш rvm/rbenv не использует компилятор C.
Используйте эту команду для rvm для получения совместимого компилятора C
CC=gcc rvm install-version
Итак, если вы используете Ruby 1.9.3, используйте его таким образом
CC=gcc rvm install-1.9.3
Используйте эту команду каждый раз, когда вы не можете установить установку или что-то еще.
Эта вещь работает на El Capitan, рельсы 3.2.16, ruby 1.9.3, mysql 5.7
Надеюсь, он решит проблему.
Я столкнулся с тем же вопросом за последние две недели, пытаясь запустить приложение версии rails 3.
Проблема заключается в том, что ваш rvm/rbenv не использует компилятор C.
Используйте эту команду для rvm для получения совместимого компилятора C
CC=gcc rvm install-version
Итак, если вы используете Ruby 1.9.3, используйте его таким образом
CC=gcc rvm install-1.9.3
Используйте эту команду каждый раз, когда вы не можете установить установку или что-то еще.
Эта вещь работает на El Capitan, рельсы 3.2.16, ruby 1.9.3, mysql 5.7
Надеюсь, он решит проблему.
А также, если у вас уже есть Xcode, а затем вы не получаете одинаковые ошибки при установке любого драгоценного камня, попробуйте это решение.
Ответ 26
У меня тоже была эта проблема. Запуск brew doctor
показал, что у меня была неожиданная версия libiconv в /user/local/lib.
Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected dylibs:
/usr/local/lib/libcharset.1.dylib
/usr/local/lib/libiconv.2.dylib
Итак, я удалил их и перепробовал libxml:
rm /usr/local/lib/libiconv*
andromeda:nokogiri-1.6.0 Jeff$ brew install libxml2 libxslt
...
==> Summary
🍺 /usr/local/Cellar/libxslt/1.1.28: 145 files, 3.3M, built in 36 seconds
Наконец, я установил nokogiri:
Jeff$ gem install nokogiri
Building native extensions. This could take a while...
Successfully installed nokogiri-1.6.0
1 gem installed
Ответ 27
Ни один из этих ответов не работал для моего конкретного случая, и поскольку я новичок, я решил, что мое решение может помочь кому-то другому.
Я использую Yosemite и использовал Ruby 1.9.3p547. Была обнаружена уязвимость для p547, поэтому я пытался обновить Ruby 1.9.3p550 или выше. Я использовал RVM, затем попытался перенести мои драгоценные камни, и многие из них не пошли. Затем я попытался связать установку, но это было неудачно, и я подумал, что это был конфликт между различными путями и зависимостями, поэтому я удалил старую версию Ruby. Это сломало все.
Я продолжал получать сообщение о том, что компилятор C отсутствовал, хотя я загрузил XCode и недавно обновил инструменты CLI. Я нашел другой веб-сайт, который сказал мне загрузить сторонний GCC, что я и сделал. что сделало все хуже.
Теперь я получаю сообщение о том, что мне нужно исправить мои профили и PATH, или просто проще переустановить OSX.
Так я и сделал.
В любом случае, длинный рассказ просто длинный: решение, которое в конечном итоге помогло мне, было избавиться от RVM и просто использовать brew для загрузки версии Ruby, которую я хотел, прежде чем запускать bundle install
. Установите правильную версию Nokogiri FIRST.
brew install ruby193
sudo gem install nokogiri -v '1.6.0'
bundle install
Ответ 28
для Windows вы также можете попробовать локальную установку:
-
загрузите соответствующий камень на основе вашей среды.
-
перейдите в каталог, в котором вы сохранили файл gem.
-
gem install --local nokogiri-1.6.3.1-x86-mingw32.gem
Если вы не работаете, вы можете проверить, установлены ли у вас zlib и mingw или соответствующий c-компилятор c.
Ответ 29
Каждая проклятая вещь здесь не делала этого для меня (я не попадал в brew reinstalls, oy), но это, наконец, (найдено через отчет об ошибке в каком-то несвязаном проекте):
gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2
Удачи. Yay для #yakshaving!
Ответ 30
Проверьте версию инструментов командной строки. Настройте свой компьютер для использования инструментов командной строки Xcode 5.0.X, затем запустите:
gem install nokogiri