При попытке установить gollum на Mac OS X 10.10.3 и Macports я получаю следующее сообщение об ошибке:
sudo gem install charlock_holmes -- --with-icu-dir=/opt/local
********* требуется icu (brew install icu4c или apt-get install libicu-dev)
этотвопрос уже был опубликовани решение следующее:
«Следуйте сообщению об ошибке: используйте brew для установки icu4c».
Есть ли способ избежать перехода на homebrew, чтобы просто установить один пакет?
решение1
Этот вопрос также похож наВот этот, но их ответтакжев итоге "просто забей на MacPorts и установи Homebrew". Я никогда не был пользователем Homebrew — не то чтобы в этом было что-то плохое, я просто начал с MacPorts и довольно устоялся в своих привычках. Так что я немного покопался с первым ответом вместо принятого, и, кажется, нашел (часть) твоей проблемы: should --with-icu-dir
указывать на /opt/local/lib/icu
вместо /opt/local
.
Конечно, это всего лишь одна часть головоломки: флаги, которые выДействительнонужны --with-opt-lib
и --with-opt-include
. То есть, --with-icu-dir
кажется, это не нужно, так как gem
кажется, что можно найти эту настройку, пока вы предоставляете --with-opt-lib
:
sudo gem install charlock_holmes -- --with-opt-lib=/opt/local/lib --with-opt-include=/opt/local/include
Хотя это должно быть правильно, так как я использую rbenv иmacports из моего домашнего каталога, мой призыв был несколько иным. Но концепция осталась прежней:
gem install charlock_holmes -- --with-opt-lib=$HOME/macports/lib --with-opt-include=$HOME/macports/include
Несмотря на все вышесказанное, моей личной целью на самом деле была установка с помощью Bundler, поэтому вот вам бонусный материал для этого:
Чтобы Bundler правильно передавал флаги сборки, можно использовать команду bundle config
для установки соответствующих значений, например:
bundle config --local build.charlock_holmes --with-opt-lib=/opt/local/lib --with-opt-include=/opt/local/include
И тогда обычный bundle install
должен работать. Опять же, для моей конкретной настройки мне пришлось сделать это так:
bundle config --local build.charlock_holmes '--with-opt-lib=$HOME/macports/lib --with-opt-include=$HOME/macports/include'
Одинарные кавычки, хотя и нестрогонеобходимо, круто, если я сделаю что-то плохое изарегистрируйтесь .bundle/config
в репозиторииили по любой другой причине я могу скопировать конфигурацию другому пользователю и запустить ее там, поскольку это означает, что она $HOME
не будет оценена, пока Bundler фактически не соберет gem.
решение2
решение3
Я установил icu
с MacPorts
sudo -E port install icu
Затем я установил charlock_holmes
с помощью
sudo -E gem install charlock_holmes -- \
--with-opt-lib=/opt/local/lib \
--with-opt-include=/opt/local/include/
Наконец-то установил Голлума с помощью
sudo -E gem install gollum
(это на Mac OS X 10.11.5, кстати)