Ocorreu um erro ao instalar a pg (0.17.1) e o Bundler não pode continuar


86

Acabei de instalar Rails 4.0.2e ao criar um novo aplicativo, na fase de pacote recebo:

Installing pg (0.17.1) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/Dee/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb 
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Como faço para corrigir isso?


1
Você pode querer adicionar uma tag osx. A solução parece que pode estar relacionada especificamente ao seu sistema operacional.
— Vince

Você pode querer visitar. stackoverflow.com/questions/3116015/… . Espero que uma dessas soluções ajude
— Yana Agun Siswanto

Respostas:


142

Estou em um Mac rodando Mavericks. Minha solução foi instalar o Postgres .

E então na instalação do terminal usando homebrew com a configuração:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config

Nota: Esta resposta foi editada para usar o latestlink simbólico que está atualmente incluído nas versões de envio do aplicativo Postgres.

Versões anteriores sugeridas:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

Sim, a minha também estava em um local diferente. Obrigado pela resposta.
— Deekor

Bob correto, a versão do postgresapp em que funcionou para mim era a versão 9.2.2.0, portanto, eles devem ter alterado este local na versão 9.3.
— Robertibiris

1
E agora, em 22/01/15, estamos olhando para a versão 9.4, é bom ver que eles estão mantendo-a atualizada - "gem install pg - --with-pg-config = / Applications / Postgres. app / Contents / Versions / 9.4 / bin / pg_config "
— corprew de

2
Eu estava com pressa e perdi a parte da resposta que diz "instalar usando uma mistura caseira". Esta resposta funcionou para mim depois que eu fizbrew update; brew install postgres
— Dennis

6
Em sua solução, por favor, adicione a versão, outra a última PG gem irá instalar:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
— user1322092


20

raiz do aplicativo:

  1. atualização de cerveja
  2. brew install postgres
  3. gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.4 / bin / pg_config
  4. pacote de instalação
  5. ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents
  6. launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist
  7. createuser -s -r postgres
  8. rake db: create: all
  9. rake db: migrate
  10. trilhos s

NOTA: substitua o número da versão na etapa 3, se necessário.


10

Resposta anterior com versão anterior

Instalei no mac OSX Mavericks, tendo o app postgres (versão 9.2.2.0) de www.postgresapp.com instalado. O problema subjacente era simplesmente que, como o postgres foi instalado por meio do aplicativo, o arquivo de configuração reside em um local que não é o padrão ao instalá-lo sem o postgressapp. então precisamos dizer ao gem onde encontrar esse arquivo:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

Espero que ajude


1
Esta foi a minha solução (OSX)
— raulriera

Se isso não funcionar para ninguém, para o 9.3 o arquivo de configuração foi movido - veja a resposta aceita.
— Deekor

5

Se gem install pg falhar, tente o seguinte comando:

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

... da documentação PostgreSQL.app


2
Como o aplicativo oficial mudou recentemente de nome para "Postgres93.app", o comando deve ser: env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
— Blackcoat

1
para mim funcionou com: env ARCHFLAGS="-arch x86_64" gem install pg
— dnlcrl

4

Parece que você não tem o PostgreSQL instalado. A pggem requer alguns cabeçalhos do PostgreSQL para compilar a extensão nativa.


E quanto à configuração do Ruby / Bundler? Você está usando Mac OS X ou Linux? e se estiver usando Mac OS X, você instalou o PostgreSQL via homebrewou PostgreSQL.app?
— tungd

Estou em um Mac. Instalei através do aplicativo
— Deekor

Tenho 0.17.0 instalado. Algum mal em usar isso com rails 4?
— Deekor

Em seguida, tente correr bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_confige correr bundlenovamente. Ajuste o caminho de configuração se você instalar o aplicativo em ~/Applicationvez de/Application
— tungd

3

Tive que combinar tudo e usar

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

3

Se você estiver usando algo diferente de Postgres em desenvolvimento e Postgres apenas em produção, você pode adicionar a pg gem ao seu gemfile assim ...

group :production do
  gem 'pg',             '0.17.1'
end

Então use bundle install --without production


3

Para usuários CentOS:

sudo yum install postgresql-devel

e

gem install pg

1

Acabei de configurar um novo Macbook Pro que foi pré-construído com Catalina.

O que funcionou para mim:

  1. Instale o Postgres aqui: https://postgresapp.com/
  2. Adicione export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"ao seu .zshenv, já que o Z shell agora é o terminal padrão.

0

Depois de instalar o Postgres, tive que executar o seguinte comando

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

Após este pacote, a instalação funciona muito bem!

Espero que ajude


0

A maneira como consegui superar esse erro foi:

  • CD para a pasta do aplicativo e, em seguida, defina a versão ruby ​​localmente. Estou usando o Ruby 2.1.2.

rbenv local 2.1.2

  • em vez de apenas executar a instalação do pacote, instale as joias no fornecedor / pacote

pacote de instalação - fornecedor de caminho / pacote

Isso fez isso por mim.


0

Eu precisava usar sudo

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config

0

Eu estava tendo um problema com a Amazon e não conseguia usar o apt-get. Para o meu trabalho:

    sudo yum install postgresql-devel

então:

    bundle install

e tente novamente:

    rails serve

0

Se você instalou através do Homebrew; gem install pg -- --with-pg-config=/usr/local/bin/pg_config. Funciona com Ruby 2.4.6 e pg 0.20.0.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.