在 OSX 10.10.3 上安装 gollum

在 OSX 10.10.3 上安装 gollum

尝试在 Mac OS X 10.10.3 和 Macports 上安装 gollum 时收到以下错误消息:

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 开始,而且已经习惯了。因此,我针对第一个答案(而不是已接受的答案)进行了更深入的研究,我想我找到了你的问题(部分):应该指向--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使用 repo检查我的或者由于任何其他原因我可能会将配置复制到其他用户并在那里运行它,因为这意味着$HOME直到 Bundler 实际构建 gem 时才会进行评估。

答案2

我不是 Mac 用户,但看起来你唯一的选择是自制软件或从源代码安装。有关于从源代码安装的说明这里。该帖子来自 2010 年,但 2013 年的说明基本相同这个帖子,因此它们可能仍然准确。

答案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/

最后使用以下方法安装了 Gollum

sudo -E gem install gollum

(这是在 Mac OS X 10.11.5 上,仅供参考)

相关内容