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

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 и попытался

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

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

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 по

  1. Убедитесь, что у вас установлен xCode 6.1, затем
  2. xcode-select --install, затем
  3. в AppStore нажмите на обновления и установите самую последнюю версию инструментов командной строки (что, по - видимому, xcode-select --install не делает-вздох)
  4. затем 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. did 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

Вам нужно обновить ваш 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+, вам, вероятно, не хватает средств разработки.

Установка 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/ xcode.

У меня эта проблема, когда я обновил Мак ОС Йосемити. Я смог решить эту проблему, сделав:

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

У меня был похожий вопрос, и принятый ответ работал на меня. Теперь, однако, я вижу новое сообщение об ошибке, где команда 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

Прежде всего убедитесь, что вы следуете руководству по установке на 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 вылетает.

$ 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*
Обратите внимание на отсутствующий файл / 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

Мне пришлось сначала установить 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 был успешно установлен.

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

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

Если вы используете Bundler, попросите его использовать опцию:

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

Ref