嘗試在 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」。
有沒有一種方法可以避免切換到自製軟體而只安裝一個軟體包?
答案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
回購協議,或任何其他原因,我可能會將配置複製到不同的用戶並在那裡運行它,因為這意味著$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/
最後使用安裝了Gollum
sudo -E gem install gollum
(這是在 Mac OS X 10.11.5 上,fwiw)