PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Instalando pg gem; ERRO:Falha ao construir extensão nativa de gem


Você está certo de que o problema está relacionado às ferramentas de desenvolvedor do Xcode. Não é uma má ideia garantir que você tenha todas as ferramentas de desenvolvedor instaladas (em vez de instalar apenas o gcc, conforme mencionado na resposta anterior):
  1. Abra o Xcode
  2. No item de menu do aplicativo "Xcode", selecione Abrir ferramenta de desenvolvedor> Mais ferramentas de desenvolvedor...
  3. Isso leva você a um site com vários softwares. Vá em frente e baixe e instale "Ferramentas de linha de comando (OS X Mavericks) para Xcode - final de outubro de 2013".
  4. Agora você poderá instalar a gem corretamente.

Para qualquer outra pessoa que chegue a este problema de uma nova instalação do aplicativo Postgres 9.3.0 no Mac OS X Mavericks (ou seja, você não está usando homebrew para sua instalação do Postgres), você pode notar que mesmo que você possa construir o pg gem você não pode executar rake por causa de um problema dylib:
rake aborted!
dlopen(/Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle, 9): Library not loaded: @loader_path/../lib/libpq.5.dylib
  Referenced from: /Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle
  Reason: image not found - /Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle

Infelizmente este é um problema com a versão atual do Postgres 9.3.0. Voltar para uma versão anterior corrigirá isso para você:
  1. desinstale a pg gem:gem uninstall pg
  2. exclua seu aplicativo Postgres 9.3.0 arrastando-o para a lixeira e esvaziando a lixeira
  3. instale a versão 9.2.2.0 do aplicativo Postgres aqui:http://postgres-app.s3.amazonaws.com/PostgresApp-9-2-2-0.zip
  4. reinstale a pg gem:gem install pg

*Obrigado ao comentário de jhiro009 neste tópico por me apontar na direção certa nesta última parte do problema do aplicativo Postgres, embora a versão 9.2.4.3 que ele mencionou não tenha funcionado para mim.