Почему установка 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?

Ответ 1

Я была такая же проблема. К сожалению, "Установка Nokogiri" не охватывает проблемы Iconv. Вот как я решил проблему.

Сначала установите homebrew, это облегчит вашу жизнь. Если он уже установлен, обязательно загрузите последние формулы, обновив их следующим образом:

brew update

Примечание: в OSX 10. 9+ вам может потребоваться установить инструменты команд xCode, чтобы позволить вам установить libiconv.

xcode-select --install

затем установите более новую версию libiconv

brew install libiconv

затем установите свой драгоценный камень

gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Ответ 2

Попробуйте использовать системные библиотеки. OSX поставляется с libiconv в более новых версиях, но установка по умолчанию script кажется проблемой

gem install nokogiri -- --use-system-libraries

Изменить: Если вы используете bundler, как указано Geoff, вы можете сделать:

bundle config build.nokogiri --use-system-libraries

Ответ 3

Решение @Cory содержит правильный ответ, но решение на Mavericks на самом деле намного проще, чем верхнее решение, поэтому я переношу только с помощью необходимых шагов.

В Mavericks (OSX 10.9 +):

Установить инструменты командной строки Xcode:

xcode-select --install

затем установите свой драгоценный камень:

gem install nokogiri

Ответ 4

Наконец-то я смог решить эту проблему. Ни одно из вышеперечисленных решений полностью не исправило это для меня.

Я получал эту ошибку при попытке 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 и попробовал

gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26

Однако это все еще не удалось, потому что при создании libxslt из исходного кода он устанавливает папку /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

Теперь у меня другая ошибка! Это была ошибка, но, по крайней мере, все было по-другому. Сбой процесса make:

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

снова и все было хорошо. Надеюсь, это поможет кому-то другому.

Ответ 5

Просто добавив свой голос в толпу, но mkmf.log что-то сказал о том, что не смог найти символы для архитектуры x86_64. Я наткнулся на это решение:

sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri -- --use-system-libraries

Может не решить что-либо для первоначального искателя, но это может помочь кому-то.

Боковое примечание: nokogiri был моим самым высоким препятствием для использования рубиновых приложений. Каждый раз, когда кто-то зависит от другой версии, я должен выяснить, как ее построить. И моя проблема различна каждый раз.

Ответ 6

Я использую.. OS X 10.9.4 Homebrew 0.9.4

Вот мое лето из этого потока, чтобы успешно установить nokogiri, исправляя отсутствующий libiconv.

Установите 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, чтобы вы могли установить 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

Ответ 7

Я решил это на Yosemite запуске Ruby 2.1.4 на

  • убедитесь, что у вас установлен xCode 6.1, затем
  • xcode-select --install, тогда
  • В AppStore нажмите на обновления и установите самую последнюю версию инструментов командной строки (которые, по-видимому, xcode-select --install не делают - вздох)
  • тогда bundle install работал как обычно.

Я тоже сделал brew install libiconv, но я не уверен, что этот шаг необходим.

Ответ 8

Я пробовал много вещей, но ничего не работало для меня. Затем я наконец нашел iconv документацию, и он спас мой день!

Ответ 9

Глядя в файл mkmf, он обнаруживает, что nokogiri (или gem, я не знаю) пытаюсь найти зависимости в /op/local/. Для меня это не правильный путь для их поиска.

Принуждение nokogiri найти libs в нужном месте (я использую homebrew) помогло:

$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/

Может быть, что-то исправить в нокогири...

НТН,

Ответ 10

libiconv был удален из Homebrew 0.9 Теперь он рекомендовал скомпилировать libiconv из исходного кода, а затем установить установку при установке nokogiri gem. См. Инструкции по установке Nokogiri в разделе Homebrew 0.9 на странице Nokogiri

Ответ 11

Посмотрите файл mkmf.log в каталоге сборки gem (например,/Library/Ruby/Gems/1.8/gems/nokogiri-1.4.4/ext/nokogiri/mkmf.log). Это намного больше информации. В моем случае, когда я ударил это, было так, что Nokogiri специально добавляет /opt/local/lib к пути поиска библиотеки, а GNU Backgammon установил там несовместимый libiconv.

Ответ 12

Предполагая, что вы установили libxml2 и libxslt с помощью MacPorts, вы все равно можете получить эту ошибку из-за несоответствия порядка включаемых путей и путей ссылок, используемых вызовом has_func ('iconv_open', 'iconv.h').

Простое (патч) решение: delete libiconv. * in/usr/local/lib

Ответ 13

$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/

как и выше, это решение для доморощенного и использование gem install (применить изменения зависит от вашей версии)

однако, если вы используете Gemfile и install install, вам следует применить конфигурацию пакета перед установкой, здесь код

$ 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

Ответ 14

У меня были подобные проблемы с Горным львом. Оказывается, я уже установил libiconv через пакет rvm, и это больше не нужно для ruby ​​1.9.3/Mountain Lion/nokogiri.

Следуя советам https://rvm.io/packages/, я удалил каталог $rvm_path/usr и восстановил ruby ​​1.9.3. После этого установка nokogiri была простой установкой gem. Не возиться с установками brew/macports/manual!

Ответ 15

Вы также можете сделать это на Mavericks:

gem install nokogiri - --use-system-libraries = true --with-xml2-include =/Приложения/Xcode.app/Содержание/Разработчик/Платформы/MacOSX.platform/Developer/SDK/MacOSX10.9. SDK/USR/включать/libxml2

Просто убедитесь, что у вас установлен xcode

Ответ 16

Я некоторое время сражался с Нокогири на OS X 10.10 Йосемити

По какой-то причине моя среда была испорчена.

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) -установили зависимые libs: сделал brew install libxml2 libiconv libxslt 4. Установил мою рубиновую версию свежей (с rbenv) 5. сделал gem 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

Ответ 17

Вам нужно обновить свой доморощенный до 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

Вам следует дважды проверить версию библиотеки папок.

Ответ 18

ПОЛЬЗОВАТЕЛИ HOMEBREW

Исправить решение проблемы, если вы используете доморощенный:

xcode-select --install

Выберите "Получить Xcode" в диалоговом окне.

brew unlink libiconv
gem install nokogiri

Шаг выбора xcode исправляет установку 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 ее не нашел.

Затем просто создайте nokogiri нормально.

Для новых пользователей все, что вам нужно сделать, это установить xcode с помощью xcode-select и установить nokogiri, но если вы нашли этот вопрос, то, предположительно, у вас есть неудачная установка, а не новая установка Mavericks.

Некоторые из других ответов здесь определенно неверны. Большинство из них пытаются использовать libiconv из доморощенного, что совершенно не нужно. Ответы, которые brew link libiconv на самом деле вызывают проблему, когда clang запутывается и пытается прочитать заголовочный файл homebrew и ссылаться на системные библиотеки. Ответы, которые предполагают, что --use-system-libraries являются плохими, потому что nokogiri необходимо связать с его связанными библиотеками libxml2 и libxslt, потому что другие версии этих библиотек несовместимы с ним. Ответы, которые вы хотите скомпилировать из источников, просто безнадежно чрезмерно сложны.

TL; DR:

  • Обновление и/или восстановление установки Xcode
  • Отключить свой libbv из homebrew, поскольку попытка использовать это только вызывает проблемы.
  • Построить nokogiri обычно

ПОЛЬЗОВАТЕЛИ RVM

У старых установок RVM может быть скрытый libiconv в ваших каталогах rvm где-то, что противоречит вашим системным библиотекам. Подробнее см. fooobar.com/questions/44328/....

ПОЛЬЗОВАТЕЛИ MacPorts

Если у вас есть /opt/local/lib/libiconv.dylib, тогда nokogiri добавляет этот путь к списку каталогов, которые он ищет, и он найдет установку MacPorts, похожую на то, как она забирает libibv homebrew и конфликтует с системных библиотек. Вы можете попробовать:

sudo port uninstall libiconv

Если это не удается из-за зависимостей, вы можете попробовать напрямую связать с версией MacPorts (непроверенный):

gem install nokogiri -- --with-iconv-dir=/opt/local

Ответ 19

Это работало для меня

sudo env ARCHFLAGS = "- arch x86_64" gem install nokogiri: 1.6.6.2 - --use-system-libraries --with-xml =/usr/local/Cellar/libxml2/2.9.3/--with -iconv-DIR =/USR/локальные/Подвал/libiconv/1.14

Ответ 20

gem install nokogiri -v '1.6.6.2' - --use-system-library --with-xml2-include = $ (brew --prefix libxml2)/include/libxml2

это сработало для меня на macos

Ответ 21

Я наткнулся на это сегодня утром... после перехода на Маверикс. Мы многое сделали. Однако, если у кого-то есть эта проблема, вот некоторые вещи, которые нужно попробовать.

Я запустил "xcode-select -install", а затем установил инструменты командной строки (удивил, что это не обновлялось на ОС ugrade). Я запускал "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'

Выход содержит:

...
CXX=/usr/local/opt/apple-gcc42/bin/g++-4.2
...
CC=/usr/local/opt/apple-gcc42/bin/gcc-4.2
...

Эти файлы не существовали в файловой системе...

После того, как все эти изменения переместились в новые окна терминала (так все было свежо). Установка бродяги-беркшефа (которая в свою очередь устанавливает нокогири) отлично работала.

ПРИМЕЧАНИЕ: при запуске 'env' в новом окне больше не было параметра для CC или CXX...

Не уверен в ключевой части этого, или если порядок имеет значение, но попытался воссоздать части, которые, казалось, сыграли определенную роль, чтобы заставить это работать.

Ответ 22

Согласно документации, начиная с OSX 10.9 и Homebrew 9.5+, вам, вероятно, не хватает средств разработки.

Установка Nokogiri

Устранение неполадок

Если у вас есть проблемы с отсутствием 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/xcodes.

Ответ 23

У меня возникла эта проблема, когда я обновил свою Mac OS до Yosemite. Я смог решить эту проблему, выполнив следующие действия:

xcode-select --install
brew uninstall libiconv
brew install libiconv
gem install nokogiri

Ответ 24

У меня была аналогичная проблема, и принятый ответ работал у меня. Теперь, однако, я видел новое сообщение об ошибке, в котором отсутствует команда gmkdir, как в этом вопросе:

gem install nokogiri -v '1.5.11' не удалось выполнить:/usr/local/bin/gmkdir: Нет такого файла или каталога

Что сработало для меня, было сначала небольшая очистка:

brew uninstall libiconv
brew uninstall libxml2
brew uninstall libxslt

И затем brew unlink libiconv и все остальное, что вам нужно отключить (проверьте с помощью brew doctor). Затем магические две строки (скопированные из связанного ответа):

brew install coreutils
gem install nokogiri

Ответ 25

Простые шаги, которые необходимо выполнить, прежде чем начать удаление и установку чего-либо. Проверьте, есть ли у вас CLT (установлены инструменты командной строки):

brew config

см. версию CLT здесь, если ее установка не требует переустановки.

Это означает, что проблема заключается в том, что вам нужно переустановить только пакетный гем, сделайте его не sudo. Удаление пакетирования с gem uninstall bundler переустанавливать камень пакетирования gem install bundler

Наиболее важным моментом здесь является разрешение, под которым установлен пакетный гем, он никогда не должен быть задан.

Ответ 26

Прежде всего, убедитесь, что вы следуете руководству по установке на nokogiri: http://nokogiri.org/tutorials/installing_nokogiri.html

После того, как я продолжил руководство, у меня все еще была эта проблема. Вот как я это решил:

Прежде всего, я установил iconv, используя homebrew:    brew установить 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 [email protected]

Затем я могу, наконец, установить 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

Ответ 27

В моем случае (как и с scotchi) сборка завершилась неудачей из-за несовместимой библиотеки iconv в /opt/local/lib. По умолчанию процесс сборки Nokogiri сначала смотрит на /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

Ответ 28

Это сообщение в блоге предлагает установить libiconv вручную.

Впоследствии nokogiri может быть установлен с несколькими коммутаторами, говорящими, где найти libiconv (см. запись в блоге).

В качестве примечания: после установки nokogiri мне удалось установить gollum (установка которого также не удалась, потому что она не могла найти значок). Теперь я все еще сталкиваюсь с проблемами, потому что, когда я запускаю gollum, Python падает.

Ответ 29

$ 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*

УКАЗАТЬ файл MISSING/lib/iconv/iconv.so в 2.0.0-p247, который присутствует в установке 2.0.0-p0 gems.

$ 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

Ответ 30

Мне пришлось сначала установить gcc перед запуском ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1