Я пытался установить Nokogiri на Mac OS 10.9.3, и что бы я ни пытался, установка завершается неудачно со следующим сообщением об ошибке:
$ sudo 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.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building native extensions with: '--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.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib'
This could take a while...
Building nokogiri using packaged libraries.
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --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.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
-----
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=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/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
Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1/ext/nokogiri/gem_make.out
После получения огромной помощи, найденной по всему Интернету, включая сборку и установку libxml2 и libxslt с использованием brew и сборку libiconv из исходных кодов (как описано в разделе « Установка Nokogiri »), ошибка остается той же.
При попытке запустить установку для Nokogiri, libxml2 и libxslt кажутся нормальными, но не libiconv.
Кто-нибудь с лучшим знанием этих вещей знает, как установить Nokogiri?
gem install nokogiri
, но затем я использую RVM для управления установками Mac OS Ruby. libxml и libxslt не имеют отношения к iconv, поэтому я бы порекомендовал задать ваш вопрос на Nokogiri-talk, который является их форумом поддержки. Я не помню, чтобы у меня возникали какие-либо проблемы с иконками при установке Nokogiri, и у меня это есть на куче машин.sudo gem install nokogiri
" Не используйтеsudo
для установки гемов или изменения Ruby по умолчанию. Вместо этого используйте rbenv или RVM для управления отдельным Ruby. Это покрыто несколько раз на переполнение стека.Ответы:
Я была такая же проблема. К сожалению, « Установка Nokogiri » не охватывает вопросы Iconv. Вот как я решил проблему.
Сначала установите homebrew , это облегчит вашу жизнь. Если он уже установлен, обязательно загрузите последние формулы, обновив их следующим образом:
Примечание . В OSX 10.9+ может потребоваться установка командных инструментов xCode, чтобы можно было установить libiconv.
затем установите более новую версию libiconv
затем установите свой драгоценный камень
источник
brew install libiconv
это выплюнуть: Ошибка: Нет доступной формулы для libiconv Apple распространяет libiconv с OS X, вы можете найти ее в / usr / lib. Некоторые сценарии сборки не могут правильно определить его, пожалуйста, проверьте существующие формулы для решений.xcode-select --install
. Это решило проблему для меня.brew install libiconv
получить правильную формулу, используйте это:brew tap homebrew/dupes
Yosemite
(10.10) Мне не нужно было делатьbrew
вещи; Простоxcode-select --install
исправил эту проблему для меня.Попробуйте использовать системные библиотеки. OSX поставляется с libiconv в более новых версиях, но, похоже, проблема с установочным скриптом по умолчанию
Изменить: Если вы используете упаковщик, как упомянуто Джеффом, вы можете сделать:
источник
libxml2 version 2.6.21 or later is required!
.Решение @ Cory содержит правильный ответ, но решение на Mavericks на самом деле намного проще, чем топовое решение, поэтому я делаю репост только с необходимыми шагами.
На Маверикс (OSX 10.9+):
Установите инструменты командной строки Xcode:
затем установите свой драгоценный камень:
источник
Я наконец смог решить эту проблему. Ни одно из вышеперечисленных решений полностью не исправило это для меня.
Я получаю эту ошибку при попытке
gem install nokogiri
на OSX Lion 10.7.2. Прежде всего, эта ошибка маскирует реальную проблему, говоря, что libiconv отсутствует, потому что вы получите ту же ошибку, даже если nokogiri не может найти libxslt или libxml2, что в моем случае не удалось.Поэтому я следовал инструкциям на http://nokogiri.org/tutorials/install_nokogiri.html в разделе Homebrew (слегка изменен, чтобы учесть более свежую версию libxml2):
На этом этапе я следовал указаниям на сайте nokogiri и попытался
Тем не менее, это все равно не удалось, потому что при сборке libxslt из исходных текстов
/include
папка устанавливается в интересном месте. Таким образом , вы должны указатьlib
иinclude
папку отдельно , так как:Это все еще не работало (та же ошибка libiconv), поэтому я попытался указать все три обязательные библиотеки (libxslt, libxml2 и libiconv):
Теперь я получил другую ошибку! Это все еще было ошибкой, но, по крайней мере, все было иначе. Процесс make не удался с:
Эээ, что? После долгих поисков я наткнулся на этот чудо-пост: http://www.refresherate.com/2010/01/08/fixing-ld-warning-in-usrlocalliblibz-dylib-file-is-not-of-required -архитектура/
Очевидно, OSX Lion поставляется с некоторыми плохими версиями библиотеки libz (
libz.dylib, libz.1.dylib, libz.1.2.4.dylib
), и их необходимо заменить последними версиями из Xcode SDK. Статья объясняет это лучше, чем я, поэтому прочитайте приведенную выше ссылку для получения конкретных инструкций.Как только они были заменены, я побежал
снова и все было хорошо. Я надеюсь, что это помогает кому-то еще.
источник
Просто добавляю свой голос в толпу, но mkmf.log что-то говорит о невозможности найти символы для архитектуры x86_64. Я наткнулся на это решение:
Может ничего не решить для оригинального аскера, но это может кому-то помочь.
Примечание: nokogiri был моим самым высоким барьером на пути использования приложений ruby. Каждый раз, когда кто-то зависит от другой версии, я должен выяснить, как ее создать. И моя проблема разная каждый раз.
источник
ARCHFLAGS="-arch x86_64" sudo gem install nokogiri -- --use-system-libraries
работал ...gem install nokogiri -v '1.6.6.2' -- --use-system-libraries --with-xml2-include=$(brew --prefix libxml2)/include/libxml2
это сработало для меня на macos. Работает также с версией
1.6.6.4
источник
--with-xml2-include
возможности для меня на Каталине ...gem install nokogiri --version=1.6.6.2 -- --use-system-libraries
Я пользуюсь .. OS X 10.9.4 Homebrew 0.9.4
Вот мое резюме из этой темы, чтобы успешно установить nokogiri, исправляя отсутствующий libiconv.
Установите Homebrew http://brew.sh/ Или обновите до последней версии, используя команду ниже
Установите libxml2 libxslt
Ссылка на оба libxml2 libxslt
Если вы получили предупреждение использовать --force, просто используйте команду ниже
Установите инструменты команд xCode, чтобы вы могли установить libiconv
Установить libiconv
Последний шаг, установите nokogiri!
источник
Я решил эту проблему на
Yosemite
работыRuby 2.1.4
поxcode-select --install
, затемxcode-select --install
не делает - вздох)bundle install
работал как обычно.Я тоже сделал,
brew install libiconv
но я не уверен, что этот шаг был необходим.источник
brew install libiconv
это необходимо - я никогда не удосужился найти подходящую упаковку, и это сработало для меня. Конечно, это могло быть на моей машине с того момента, когда я установил nokogiri с ruby 2.1.1 раньше.xcode-select --install
и смог установить Nokogiri.Я перепробовал много вещей, но у меня ничего не получалось. Тогда я наконец нашел документацию iconv, и это спасло мой день!
источник
Глядя в файл mkmf, выяснилось, что nokogiri (или gem, я не знаю) пытается найти зависимости в / op / local /. Для меня это не правильный путь для их поиска.
Заставив нокогири найти нужных мне людей (я использую доморощенный), мне удалось:
Может быть, есть что исправить в nokogiri ...
НТН,
источник
libiconv был удален из Homebrew 0.9 Теперь рекомендуется скомпилировать libiconv из исходного кода, а затем ссылаться на установку при установке гема nokogiri. См. Инструкции по установке Nokogiri в разделе Homebrew 0.9 на странице установки Nokogiri.
источник
Посмотрите файл mkmf.log в каталоге сборки гема (например, /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.4/ext/nokogiri/mkmf.log). Это имеет гораздо больше информации. В моем случае, когда я нажал эту кнопку, Nokogiri специально добавил / opt / local / lib к пути поиска в библиотеке, а GNU Backgammon установил там несовместимую libiconv.
источник
Предполагая, что вы установили libxml2 и libxslt с MacPorts, вы все равно можете получить эту ошибку из-за несоответствия порядка включаемых путей и путей ссылок, используемых при вызове have_func ('iconv_open', 'iconv.h')
Простое (исправление) решение: удалите libiconv. * В / usr / local / lib
источник
как и выше, это решение для homebrew и установки gem (применение изменений зависит от вашей версии)
однако, если вы используете Gemfile и пакетную установку, вы должны применить конфигурацию пакета перед установкой, здесь код
опять же, применить изменения зависит от вашей версии
Надеюсь, что это поможет вам.
кредит: https://gist.github.com/1344331
источник
У меня была похожая проблема на Горном льве. Оказывается, я установил libiconv через пакет rvm ранее, и это больше не нужно для ruby 1.9.3 / Mountain Lion / nokogiri.
Следуя совету https://rvm.io/packages/ , я удалил каталог $ rvm_path / usr и перестроил ruby 1.9.3. После этого установка nokogiri была простой установкой драгоценного камня. Никаких проблем с установкой brew / macports / source!
источник
Вы также можете сделать это на Маверикс:
gem install nokogiri - --use-system-library = true --with-xml2-include = / Applications / Xcode.app / Содержание / Разработчик / Платформы / MacOSX.platform / Разработчик / SDKs / MacOSX10.9.sdk / usr / включить / libxml2
Просто убедитесь, что у вас установлен xcode
источник
Сегодня я некоторое время боролся с Нокогири на OS X 10.10 Yosemite
Моя среда была испорчена по некоторым причинам.
which bundle
иwhich gem
давали мне/usr/bin/bundle
и/usr/bin/gem
вместо~/.rbenv/shims/gem
Что помогло исправить это для меня
sudo rm -i /usr/bin/gem /usr/bin/bundle
После этого я: 1. переключился обратно в каталог моего проекта 2. удалил зависимую 3. (пере) установил зависимые библиотеки: сделал
brew install libxml2 libiconv libxslt
4. установил новую версию ruby (с rbenv) 5. сделалgem install bundler
6. иbundle install
запустился без каких-либо проблемы.Nokogiri
было хорошо после этого.Для справки:
источник
Вам нужно обновить доморощенный до 0,9
затем выполните следующие действия
Вы должны дважды проверить версию библиотеки папок.
источник
brew create http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz && brew install libiconv
Домашние пользователи
Правильное решение, чтобы решить эту проблему, если вы используете homebrew:
Выберите «Получить Xcode» в диалоговом окне.
Шаг xcode-select исправляет вашу установку Xcode и установку утилит командной строки Xcode. Я обнаружил, что у меня нет /usr/include/iconv.h из-за какой-то проблемы с обновлениями O / S или восстановлений из резервных копий. Если у вас нет этого файла заголовка и /usr/lib/libconv.dylib после запуска xcode-select, вам, скорее всего, нужно перетащить Xcode из папки приложения в корзину и переустановить, а затем вручную загрузить инструменты командной строки для Xcode с https://developer.apple.com/downloads/index.action и установите его.
Затем вам нужно отсоединить libiconv от homebrew. Тебе это не нужно. И clang на самом деле подберет /usr/local/include/iconv.h поверх /usr/include/iconv.h и #define iconv_open к libiconv_open, но затем свяжется с /usr/lib/libiconv.dylib, у которого нет libiconv_open, который это то, что mkmf не может найти libiconv. Что вам нужно сделать, это удалить ссылку в iconv.h, чтобы nokogiri не нашел его.
Тогда просто постройте нокогири нормально.
Для новых пользователей все, что вам нужно сделать, это установить xcode с помощью xcode-select и установить nokogiri, но если вы нашли этот вопрос, то, вероятно, у вас установлена неудачная установка, а не новая установка Mavericks.
Некоторые из других ответов здесь, безусловно, неверны. Большинство из них пытаются использовать libiconv из доморощенного, что совершенно не нужно. Ответы,
brew link libiconv
которые на самом деле вызывают проблему, когда clang сбивается с толку и пытается прочитать заголовочный файл homebrew и связать его с системными библиотеками. Предлагаемые ответы--use-system-libraries
являются плохими, потому что nokogiri необходимо связать со своими библиотеками libxml2 и libxslt, потому что другие версии этих библиотек несовместимы с ним. Ответы, которые вы хотите собрать из источников, просто безнадежно чрезмерно сложны.TL; DR:
ПОЛЬЗОВАТЕЛИ RVM
В старых установках RVM libiconv может скрываться в ваших каталогах rvm где-то, что конфликтует с вашими системными библиотеками. См. Https://stackoverflow.com/a/11809261/506908 для получения дополнительной информации.
MacPorts ПОЛЬЗОВАТЕЛИ
Если у вас есть /opt/local/lib/libiconv.dylib, то nokogiri добавляет этот путь в список каталогов, которые он ищет, и он найдет установку MacPorts, аналогичную тому, как он выбирает libiconv для homebrew и конфликтует с системными библиотеками. Можешь попробовать:
Если это не удается из-за зависимостей, вы можете попробовать напрямую связать версию MacPorts (не проверено):
источник
gem install nokogiri -- --with-iconv-dir=/opt/local
работает отлично сlibiconv
установленным MacPortsЭтот работал для меня
источник
Я столкнулся с этим сегодня утром ... после обновления до Маверикс. Мы сделали много вещей. Однако, если у кого-то есть эта проблема, вот несколько вещей, чтобы попробовать.
Я запустил 'xcode-select --install', а затем установил инструменты командной строки (удивился, что это не обновило ОС до версии). Я запустил «rvm implode» (позже создам его).
Мы собрали вместе два файла вывода ошибок:
~ / .Vagrant.d / драгоценные камни / драгоценные камни / nokogiri-1.6.3.1 / внутр / nokogiri / gem_make.out
~ / .Vagrant.d / драгоценные камни / драгоценные камни / nokogiri-1.6.3.1 / внутр / nokogiri / TMP / x86_64-яблочно-darwin12.5.0 / порты / libxml2 / 2.8.0 / configure.log
Что, похоже, указывает на то, что компилятор c использовал неожиданную настройку.
Я побежал 'env'
Вывод содержал:
Эти файлы не существовали в файловой системе ...
После всех этих изменений переехал в новый терминал Windows (чтобы все было свежо). Установка vagrant-berkshelf (которая в свою очередь устанавливает nokogiri) работала нормально.
ПРИМЕЧАНИЕ: при запуске 'env' в новом окне больше не было настроек для CC или CXX ...
Не уверен в ключевой части этого, или если порядок имеет значение, но попытался воссоздать части, которые, казалось, играли роль в том, чтобы заставить это работать.
источник
gem install nokogiri
успешно? С сообщением "уже установлено" или с успешной установкой?Согласно документации, начиная с OSX 10.9 и Homebrew 9.5+, вам, вероятно, не хватает инструментов разработки.
Установка Nokogiri
Исправление проблем
Если у вас есть проблемы с упоминанием отсутствия libiconv, это выглядит примерно так:
Тогда вам, вероятно, не хватает подходящих инструментов разработчика. Это действительно легко исправить:
Это проверено, работая на clang компиляторе OSX 10.9 с xcode.
источник
Я получил эту проблему, когда я обновил свою Mac OS до Yosemite. Я смог решить эту проблему, выполнив:
источник
У меня была похожая проблема, и принятый ответ работал на меня. Теперь, однако, я вижу новое сообщение об ошибке, где
gmkdir
отсутствует команда, как в этом вопросе:gem install nokogiri -v '1.5.11' не удалось из-за make: / usr / local / bin / gmkdir: такого файла или каталога нет
То, что работало для меня, было сначала маленькой уборкой:
А потом
brew unlink libiconv
и что еще нужно отсоединить (уточните уbrew doctor
). Затем две магические строки (скопировано из связанного ответа):источник
Простые шаги, которые необходимо выполнить перед началом удаления и установки чего-либо. Проверьте, есть ли у вас CLT (установлены инструменты командной строки):
brew config
см. версию CLT здесь, если ее установка не требует переустановки.
Это означает, что проблема заключается в том, что вам нужно переустанавливать только пакетный гем. Удалите пакет с
gem uninstall bundler
переустановкой гем Gemgem install bundler
Наиболее важным моментом здесь является разрешение, под которым установлен пакетный гем, на него никогда не должно быть sudoed.
источник
Прежде всего, убедитесь, что вы следуете руководству по установке на nokogiri: http://nokogiri.org/tutorials/install_nokogiri.html
После следования руководству у меня все еще была эта проблема. Вот как я это решил:
Прежде всего я установил iconv с помощью homebrew: brew install iconv
Затем я удалил ruby, к счастью, это очень просто с rvm:
Затем мне пришлось переустановить ruby со следующими параметрами:
Затем я создаю gemset с новой версией ruby:
Тогда я наконец смогу установить нокогири так:
источник
В моем случае (как и в случае с scotchi) сборка не удалась из-за несовместимой библиотеки iconv в / opt / local / lib. По умолчанию процесс сборки Nokogiri сначала просматривает / opt / local. Чтобы заставить его использовать другой каталог установки, например / usr / local, выполните:
источник
В этом сообщении предлагается установить libiconv вручную.
Впоследствии, nokogiri может быть установлен с несколькими переключателями, сообщающими ему, где найти libiconv (см. Запись в блоге).
В качестве примечания: после установки nokogiri мне удалось установить gollum (установка которого также не удалась, поскольку он не смог найти iconv). Теперь я все еще сталкиваюсь с проблемами, потому что, когда я запускаю gollum, происходит сбой Python.
источник
Обратите внимание на файл MISSING /lib/iconv/iconv.so в 2.0.0-p247, который присутствует в установке драгоценных камней 2.0.0-p0.
Скопируйте файл поверх
Теперь это работает!
источник
Я должен был установить GCC перед запуском
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
источник