Esta questão também é semelhante a esta , mas a sua resposta < strong> also acabou sendo "apenas afiançar o MacPorts e instalar o Homebrew". Eu nunca fui usuário de Homebrew - não que tenha algo errado com isso, eu comecei com o MacPorts e sou bem definido do meu jeito. Então, eu procurei um pouco mais com a primeira resposta em vez da aceita, e acho que encontrei (parte de) seu problema: o --with-icu-dir
deve apontar para /opt/local/lib/icu
em vez de /opt/local
.
Claro, isso é apenas uma peça do quebra-cabeça; as sinalizações que você precisa realmente são --with-opt-lib
e --with-opt-include
. Ou seja, --with-icu-dir
parece ser desnecessário, pois gem
parece conseguir encontrar essa configuração contanto que você forneça --with-opt-lib
:
sudo gem install charlock_holmes -- --with-opt-lib=/opt/local/lib --with-opt-include=/opt/local/include
Embora isso deva estar correto, como eu uso o rbenv e macports do meu diretório home , minha invocação foi um pouco diferente. Mas o conceito continua o mesmo:
gem install charlock_holmes -- --with-opt-lib=$HOME/macports/lib --with-opt-include=$HOME/macports/include
Tudo o que foi dito, minha meta pessoal era instalar o Bundler, então aqui está um material de bônus para isso:
Para que Bundler passe os flags de compilação adequadamente, você pode usar o comando bundle config
para definir os valores apropriados, por exemplo:
bundle config --local build.charlock_holmes --with-opt-lib=/opt/local/lib --with-opt-include=/opt/local/include
E, em seguida, um bundle install
regular deve funcionar. Novamente, para minha configuração específica, tive que fazer assim:
bundle config --local build.charlock_holmes '--with-opt-lib=$HOME/macports/lib --with-opt-include=$HOME/macports/include'
As aspas simples, embora não sejam estritamente necessárias, são legais se eu fizer algo ruim e verifique meu .bundle/config
com o repo , ou qualquer outro motivo que eu possa copiar a configuração para um usuário diferente e executá-lo lá, pois significa que $HOME
não é avaliado até que Bundler esteja realmente construindo a gema.