Почему установка Nokogiri на Mac OS терпит неудачу с libiconv отсутствует?
Я пытался установить 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?
30 ответов:
У меня был тот же вопрос. К сожалению, "Установка Nokogiri " не охватывает проблемы Iconv. Вот как я решил этот вопрос.
Сначала установитеhomebrew , это облегчит вашу жизнь. Если он уже установлен, не забудьте захватить последние формулы, обновив их следующим образом:
brew update
Примечание : в OSX 10.9+ может потребоваться установить Xcode command tools, чтобы разрешить установку libiconv.
xcode-select --install
Затем установите более новую версию libiconv
brew install libiconv
Затем свяжите свои новые библиотеки iconv:
brew link libiconv
Затем установите свой драгоценный камень
gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14
Попробуйте использовать системные библиотеки. OSX поставляется с libiconv в более новых версиях, но сценарий установки по умолчанию, похоже, имеет проблему
gem install nokogiri -- --use-system-libraries
Edit: Если вы используете bundler, как упоминалось Geoff , вы можете сделать:
bundle config build.nokogiri --use-system-libraries
Решение кори содержит правильный ответ, но решение на Mavericks на самом деле намного проще, чем верхнее решение, поэтому я перепечатываю только необходимые шаги.
На Mavericks (OSX 10.9+):
Установить Инструменты Командной Строки Xcode:
xcode-select --install
Затем установите свой драгоценный камень:
gem install nokogiri
Я наконец-то смог решить эту проблему. Ни одно из вышеперечисленных решений полностью не исправило его для меня.
Я получал эту ошибку при попытке
gem install nokogiri
на OSX Lion 10.7.2. Во-первых, эта ошибка маскирует реальную проблему, говоря, что libiconv отсутствует, потому что вы получите ту же ошибку, даже если nokogiri не сможет найти libxslt или libxml2, что в моем случае не удалось.Поэтому я следовал инструкциям на http://nokogiri.org/tutorials/installing_nokogiri.html в разделе Homebrew (слегка измененном для учета более актуальной версии libxml2):
brew install libxml2 brew link libxml2 # install libxslt from source wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz tar -zxvf libxslt-1.1.26.tar.gz cd libxslt-1.1.26 ./configure --prefix=/usr/local/Cellar/libxslt/1.1.26 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.7.8 make sudo make install
В этот момент я следовал указаниям на сайте nokogiri и попытался
Однако это все равно не удалось, потому что при сборке libxslt из исходного кода он устанавливает папкуgem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26
/include
в фанковом месте. Поэтому вам нужно указать папкиlib
иinclude
отдельно, например:gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt
Это все еще не работало (та же ошибка libiconv), поэтому я попытался указать все три необходимые библиотеки (libxslt, libxml2 и libiconv):
gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8
Теперь я получил другую ошибку! Это все еще была ошибка, но, по крайней мере, она была другой. Процесс сделать не удалось:
in /opt/local/lib/libz.1.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64) for architecture x86_64
Э-э, что? После долгих поисков в гугле я наткнулся на этот чудо-пост: http://www.refresherate.com/2010/01/08/fixing-ld-warning-in-usrlocalliblibz-dylib-file-is-not-of-required-architecture/
Очевидно, OSX Lion поставляется с некоторыми плохими версиями библиотеки libz (
libz.dylib, libz.1.dylib, libz.1.2.4.dylib
) и они должны быть заменены на последние версии из Xcode SDK. Статья объясняет это лучше, чем я могу, поэтому прочитайте приведенную выше ссылку для получения конкретных инструкций.Как только они были заменены, я побежал
gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8
Снова и все было хорошо. Надеюсь, это поможет кому-то еще.
Просто добавляю свой голос к толпе, но mkmf.лог сказал что-то о том, что не может найти символы для архитектуры x86_64. Я наткнулся на это решение:
sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri -- --use-system-libraries
Может ничего не решить для первоначального Аскера, но это может кому-то помочь.
Примечание: nokogiri был моим самым высоким барьером для использования приложений ruby. Каждый раз, когда кто-то зависит от другой версии, я должен выяснить, как ее построить. И моя проблема каждый раз меняется.
Я использую.. OS X 10.9.4 Homebrew 0.9.4
Вот мое лето из этого потока, чтобы успешно установить nokogiri, исправляя недостающие libiconv.
Install Homebrew http://brew.sh/ Или обновить до последней версии, используя команду ниже
brew update
Установить libxml2 libxslt
brew install libxml2 libxslt
Связать оба libxml2 libxslt
brew link libxml2 libxslt
Если вы получаете предупреждение использовать --force, просто используйте команду ниже
brew link --force libxml2 libxslt
Установите Xcode command tools, чтобы вы могли установить libiconv
xcode-select --install
Установить libiconv
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar xvfz libiconv-1.13.1.tar.gz cd libiconv-1.13.1 ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1 make sudo make install
Заключительный шаг, установите nokogiri!
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
Я решил эту задачу на
Yosemite
, запустивRuby 2.1.4
по
- Убедитесь, что у вас установлен xCode 6.1, затем
xcode-select --install
, затем- в AppStore нажмите на обновления и установите самую последнюю версию инструментов командной строки (что, по - видимому,
xcode-select --install
не делает-вздох)- затем
bundle install
работал как обычно.Я тоже сделал
brew install libiconv
, но я не уверен, что этот шаг был необходим.
Я перепробовал много вещей, но ничего не помогало мне. Затем я, наконец, нашел документацию iconv , и это спасло мне день!
Заглянув в файл mkmf, я обнаружил, что nokogiri (или gem, я не знаю) пытаются найти зависимости в /op/local/. Для меня это не правильный путь, чтобы искать их.
Заставив нокогири найти библиотеки в нужном месте (я использую homebrew), я сделал трюк для меня:
$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/
Может быть, есть что-то, чтобы исправить в нокогири...
HTH,
Libiconv был удален из Homebrew 0.9 теперь рекомендуется компилировать libiconv из исходного кода, а затем ссылаться на установку при установке гема nokogiri. Увидеть nokogiri по инструкции по установке под доморощенного раздел 0.9 на страницы установите nokogiri по
Посмотрите в mkmf.лог-файл в каталог сборки драгоценный камень (например, /Библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/nokogiri по-1.4.4/ВН/nokogiri по/mkmf.бревно). Это имеет гораздо больше информации. В моем случае, когда я попал в это, было то, что Nokogiri специально добавляет /opt / local/lib в путь поиска библиотеки, и GNU Backgammon установил там несовместимый libiconv.
Предполагая, что вы установили libxml2 и libxslt с MacPorts, то вы все еще можете получить эту ошибку из-за несоответствия порядка включаемых путей и путей ссылок, используемых вызовом have_func('iconv_open', 'iconv.h')
Простое (патч) решение: удалить libiconv.* in /usr / local / lib
$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/
Как и выше, это решение для homebrew и использования gem install (применить изменения зависит от вашей версии)
Однако, если вы используете Gemfile и bundle install, вы должны применить конфигурацию bundle перед установкой, здесь код
$ bundle config build.nokogiri --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ --with-iconv-dir=/usr/local/Cellar/libiconv/1.14
Опять же, применение изменений зависит от вашей версии
Надеюсь, это поможет вам.
Кредит: 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 / ручными установками исходного кода!
Вы также можете сделать это на Mavericks:
Камень установить nokogiri по -- --Использовать-система-библиотеки=True-с-белый xml2-включать=/применения/Xcode.приложение / содержимое / разработчик / платформы / MacOSX.платформа/разработчик/пакеты SDK/MacOSX10.9.sdk / usr / include / libxml2
Просто убедитесь, что у вас установлен xcode
Сегодня я некоторое время сражался с Nokogiri на 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. (re) - установил зависимые библиотеки: сделал a
brew install libxml2 libiconv libxslt
4. установлена моя ruby версия fresh (с rbenv) 5. didgem install bundler
6. иbundle install
побежал без проблем.
Nokogiri
после этого все было в порядке.Для справки:
╰─% cat .bundle/config --- BUNDLE_PATH: vendor/bundle BUNDLE_DISABLE_SHARED_GEMS: '1' BUNDLE_JOBS: 4 ╰─% which ruby bundle gem ~/.rbenv/shims/ruby ~/.rbenv/shims/bundle ~/.rbenv/shims/gem
Вам нужно обновить ваш homebrew до 0.9
Затем выполните следующие действия
brew install libxml2 libxslt brew link libxml2 libxslt wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar xvfz libiconv-1.13.1.tar.gz cd libiconv-1.13.1 ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1 make sudo make install sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.0/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
Вы должны дважды проверить версию библиотеки папок.
ДОМОРОЩЕННЫЕ ПОЛЬЗОВАТЕЛИ
Правильное решение для устранения этой проблемы, если вы используете homebrew:
xcode-select --install
Выберите "Get Xcode" в диалоговом окне.
brew unlink libiconv gem install nokogiri
Шаг xcode-select исправляет вашу установку Xcode и установку Utils командной строки Xcode. Я обнаружил, что у меня нет /usr/include/iconv.h из-за какой-то проблемы с обновлением O/S или восстановлением из резервных копий. Если у вас нет этого файла заголовка и /usr/lib/libconv.dylib после запуска xcode-выберите тогда вы скорее всего, нужно перетащить Xcode из папки приложения в корзину и переустановить, а затем вручную загрузить инструменты командной строки для Xcode из https://developer.apple.com/downloads/index.action и установите это.
Затем вам нужно разорвать связь libiconv с homebrew. Тебе это не нужно. И клэнг фактически возьмет /usr / local / include / iconv.h над /usr / include / iconv.h И will #определить iconv_open в libiconv_open, но затем связать с /usr/lib / libiconv.dylib который не имеет libiconv_open, что и вызывает сбои mkmf в поиске libiconv. То, что вам нужно сделать, это удалить ссылку в iconv.так что нокогири его не найдет.
Тогда просто постройте нокогири нормально.
Для новых пользователей все, что вам нужно сделать, это установить xcode с помощью xcode-select и установить nokogiri, но если вы нашли этот вопрос, то, вероятно, у вас неудачная установка, а не новая установка Mavericks.
Некоторые другие ответы здесь определенно неверно. Большинство из них пытаются использовать libiconv из homebrew, что совершенно не нужно. Ответы, которые
brew link libiconv
на самом деле вызывают проблему, когда clang запутывается и пытается прочитать заголовочный файл homebrew и связать его с системными библиотеками. Ответы, которые предполагают--use-system-libraries
, плохи, потому что nokogiri необходимо связать с его библиотеками libxml2 и libxslt, потому что другие версии этих библиотек несовместимы с ним. Ответы на которые хотите, чтобы вы компилировали из исходных текстов, которые просто безнадежно чрезмерно сложны.TL; DR:
- обновление и / или восстановление установки Xcode
- разблокируйте свой доморощенный libiconv, так как попытка использовать его вызывает только проблемы
- построить нокогири нормально
ПОЛЬЗОВАТЕЛИ RVM
Старые установки RVM могут иметь libiconv, скрывающийся в ваших каталогах rvm, которые конфликтуют с вашими системными библиотеками. Видеть https://stackoverflow.com/a/11809261/506908 для получения дополнительной информации.
Пользователи MacPorts
Если у вас есть /opt/local/lib/libiconv.затем dylib nokogiri добавляет этот путь к списку каталогов, которые он ищет, и он найдет установку MacPorts, аналогичную тому, как он берет homebrew libiconv и конфликтует с системными библиотеками. Вы можете попробовать:
sudo port uninstall libiconv
Если это не удается из-за зависимостей, то вы можете попробовать связать с версией MacPorts непосредственно (непроверено):
gem install nokogiri -- --with-iconv-dir=/opt/local
Это сработало для меня
Судо ОКР ARCHFLAGS="-Арч x86_64 с" жемчужиной установить nokogiri по:1.6.6.2 -- --использовать-системы-это библиотеки с XML=/usr/местные/погреб/библиотеке libxml2/2.9.3/ - с-с iconv-маршрутизатор dir=/usr/местные/погреб/libiconv/1.14
Я столкнулся с этим, сегодня утром... после обновления до Mavericks. Мы много чего сделали. Однако, если у кого-то есть эта проблема, вот некоторые вещи, чтобы попробовать.
Я запустил "xcode-select --install", затем установил инструменты командной строки (удивлен, что это не обновилось на OS ugrade). Я запустил "rvm implode" (я построю его позже).
Мы собрали вместе два вывода ошибок файлы:
~/.бродяга.д/драгоценные камни/драгоценные камни/nokogiri по-1.6.3.1/ВН/nokogiri по/gem_make.out
~/.бродяга.d/gems/gems/nokogiri-1.6.3.1/ext/nokogiri/tmp/x86_64-apple-darwin12.5.0/ports/libxml2/2.8.0/configure.log
, что, по-видимому, указывало на то, что компилятор c использовал удивительную настройку.
Я пробежал ' env '
Вывод содержал:
Эти файлы не существовали в файловой системе...... CXX=/usr/local/opt/apple-gcc42/bin/g++-4.2 ... CC=/usr/local/opt/apple-gcc42/bin/gcc-4.2 ...
После всех этих изменений переходим на новый терминал windows (так что все было свежо). Установка vagrant-berkshelf (которая в свою очередь устанавливает nokogiri) работала отлично.
Примечание: при запуске 'env' в новом окне больше не было настройки для CC или CXX...
Не уверен в ключевой части этого, или если порядок имеет значение, но попытался воссоздать части, которые, казалось, играли роль в получении этой работы.
Согласно документации, начиная с OSX 10.9 и Homebrew 9.5+, вам, вероятно, не хватает средств разработки.
Устранение неполадок
Если у вас есть проблемы с упоминанием libiconv отсутствует, это выглядит примерно так:
Installing nokogiri (1.6.2.1) Building nokogiri using packaged libraries. Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/local/rvm/rubies/ruby-2.0.0-p0/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... 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 ***
Тогда вам, вероятно, не хватает правильных инструментов разработчика. Это действительно легко исправить:
brew unlink gcc-4.2 # you might not need this step gem uninstall nokogiri xcode-select --install gem install nokogiri
Это проверено при работе с компилятором clang OSX 10.9 w/ xcode.
У меня эта проблема, когда я обновил Мак ОС Йосемити. Я смог решить эту проблему, сделав:
xcode-select --install brew uninstall libiconv brew install libiconv gem install nokogiri
У меня был похожий вопрос, и принятый ответ работал на меня. Теперь, однако, я вижу новое сообщение об ошибке, где команда
gmkdir
отсутствует, как в этом вопросе:То, что сработало для меня, было сначала небольшой очисткой:
brew uninstall libiconv brew uninstall libxml2 brew uninstall libxslt
, а затем
brew unlink libiconv
и все остальное, что вам нужно разорвать связь (проверьте сbrew doctor
). Затем, магические две линии (скопированные из связанный ответ):brew install coreutils gem install nokogiri
Прежде всего убедитесь, что вы следуете руководству по установке на nokogiri: http://nokogiri.org/tutorials/installing_nokogiri.html
После того, как я следовал руководству, у меня все еще была эта проблема. Вот как я решил ее:
Прежде всего я установил iconv с помощью homebrew: brew install iconv
Затем я удалил ruby, к счастью, это очень просто с rvm:
rvm uninstall 1.9.2
Затем мне пришлось переустановить ruby со следующими опциями:
CC=gcc-4.2 rvm install 1.9.2-p290 --with-iconv-dir=/usr/local/Cellar/libiconv/1.13.1
Затем я создаю gemset с новой версией ruby:
rvm use 1.9.2@coolproject
Тогда я могу, наконец, установить nokogiri следующим образом:
gem install nokogiri -v=1.4.4 -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26
В моем случае (как и в случае с scotchi) сборка не удалась из-за несовместимой библиотеки iconv в /opt/local/lib. По умолчанию процесс сборки theNokogiri сначала смотрит на /opt / local. Чтобы заставить его использовать другой каталог установки, например /usr / local, выполните следующие действия:
gem install nokogiri -- --with-xml2-lib=/usr/local/lib --with-xml2-include=/usr/local/include/libxml2 --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include
Это сообщение в блоге предлагает установить libiconv вручную.
Впоследствии nokogiri может быть установлен с несколькими переключателями, указывающими ему, где найти libiconv (см. сообщение в блоге).
В качестве примечания: после установки nokogiri мне удалось установить gollum (установка которого также не удалась, потому что он не мог найти iconv). Сейчас я все еще сталкиваюсь с проблемами, потому что, когда я запускаю gollum, Python вылетает.
Обратите внимание на отсутствующий файл / lib / iconv/iconv. so в 2.0.0-p247, который присутствует в установке 2.0.0-p0 gems.$ gem install iconv # works but it is missing an iconv.so file in ruby 2.0.0-p247 $ ls -1 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so* 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/iconv.so* $ ls -1 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so*
$ rbenv version 2.0.0-p247 (set by /home/XXX/tmp/.ruby-version) $ rbenv which gem /home/XXX/.rbenv/versions/2.0.0-p247/bin/gem $ gem --version 1.8.25 $ rbenv which pry /home/XXX/.rbenv/versions/2.0.0-p247/bin/pry $ pry [1] pry(main)> require 'iconv' LoadError: cannot load such file -- iconv/iconv.so from /home/XXX/.rbenv/versions/2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require'
Скопируйте файл поверх
$ pushd ~/.rbenv/versions/ $ cp 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/
ТЕПЕРЬ ЭТО РАБОТАЕТ!
$ pry [1] pry(main)> require 'iconv' => true
Мне пришлось сначала установить gcc перед запуском
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
Я следовал инструкциям со страницы установки nokogiri, а также установил инструменты xcode. Но у меня все равно ничего не получалось.
Затем я увидел, что команда
brew install libxml2 libxslt
выводит следующее (среди других разных вещей):To allow the nokogiri gem to link against this libxslt run: gem install nokogiri -- --with-xslt-dir=/usr/local/opt/libxslt
Итак, я запускаю это, и nokogiri был успешно установлен.