Estou usando a versão pré do Ruby on Rails 3.1. Eu gosto de usar o PostgreSQL, mas o problema está na instalação da pg
gema. Dá-me o seguinte erro:
$ gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/home/u/.rvm/rubies/ruby-1.9.2-p0/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.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/home/u/.rvm/rubies/ruby-1.9.2-p0/bin/ruby
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
Gem files will remain installed in /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0 for inspection.
Results logged to /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0/ext/gem_make.out
Como eu resolvo este problema?
ruby-on-rails
ruby-on-rails-3
postgresql
rails-postgresql
pg
demonchand
fonte
fonte
Respostas:
Parece que no Ubuntu esse cabeçalho faz parte do
libpq-dev
pacote (pelo menos nas seguintes versões do Ubuntu: 11.04 (Natty Narwhal), 10.04 (Lucid Lynx), 11.10 (Oneiric Ocelot), 12.04 (Precise Pangolin), 14.04 (Trusty Tahr) e 18.04 (Bionic Beaver)):Portanto, tente instalar
libpq-dev
ou equivalente para o seu sistema operacional:sudo apt-get install libpq-dev
yum install postgresql-devel
brew install postgresql
gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
zypper in postgresql-devel
pacman -S postgresql-libs
fonte
durrantm@castleLinux2011:~/Dropbox_not_syncd/webs/3/linker$ gem install libpq-dev ERROR: Could not find a valid gem 'libpq-dev' (>= 0) in any repository durrantm@castleLinux2011:~/Dropbox_not_syncd/webs/3/linker$
apt-get install postgres-server-dev-{pg.version}
sua resposta não funciona mais com o PostgreSQL 9.4 no Ubuntu 14.04 See: stackoverflow.com/a/28837453/75194No macOS (anteriormente Mac OS X e OS X ), use o Homebrew para instalar os cabeçalhos adequados:
e depois correndo
Deveria trabalhar.
Como alternativa, em vez de instalar o todo
postgresql
, você podebrew install libpq
exportar o corretoPATH
ePKG_CONFIG_PATH
conforme explicado na seção 'Advertências'fonte
brew install postgressql
corroARCHFLAGS="-arch x86_64" gem install pg
e funciona bem.brew install libpqxx
no Mac OSXlibpqxx
instalapostgresql
como dependência, por isso é essencialmente o mesmobrew install postgresql
postgresql
, você podebrew install libpq
exportar o corretoPATH
ePKG_CONFIG_PATH
conforme explicado na seção 'Advertências'.Eu também tentei fazer
gem install libpq-dev
, mas recebi este erro:No entanto, descobri que a instalação com
sudo apt-get
(que tento evitar usar com Ruby on Rails) funcionou, ou seja,então eu pude fazer
sem problemas.
fonte
libpq-dev
pacote Ubuntu / Debian / ....Eu poderia resolver isso de outra maneira. Não encontrei a biblioteca no meu sistema. Assim, instalei-o usando um aplicativo do site principal do PostgreSQL. No meu caso (OS X), encontrei o arquivo abaixo
/Library/PostgreSQL/9.1/include/
quando a instalação terminou. Você também pode ter o arquivo em outro lugar, dependendo do seu sistema, se você já possui o PostgreSQL instalado.Graças a este link sobre como adicionar um caminho adicional para a instalação do gem , eu poderia apontar o gem para a lib com este comando:
Depois disso, ele funciona, porque agora sabe onde encontrar a biblioteca ausente. Apenas substitua o caminho pelo local certo para o seu libpq-fe.h
fonte
export CONFIGURE_ARGS="with-pg-include=/usr/local/Cellar/postgresql/9.3.1/include/"
pg_*
roteiros para o $ PATH assim:ln -s /usr/pgsql-9.3/bin/p* /usr/local/bin
. Eu instalei o postgres 9.3 da seguinte forma:yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm && yum install postgresql93 postgresql93-contrib postgresql93-server postgresql93-devel
gem install pg -- with-pg-include=/Library/PostgreSQL/9.1/include/
export CONFIGURE_ARGS="with-pg-config=/path/to/postgres/bin/pg_config"
. Opg_config
executável será chamado para obter todas as opções necessárias do compilador e vinculador - você pode executá-lo para vê-las.tive sucesso no CentOS 7.0.1406 executando os seguintes comandos:
Como alternativa , você pode configurar o bundler para instalar sempre
pg
com essas opções (útil para executar o bundler em ambientes de implementação),bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config
fonte
Para o CentOS 6.4,
funcionou bem!
fonte
sudo port install postgresql-devel
,.Apenas para o registro:
Aplicativo Ruby on Rails 4 no OS X com PostgresApp (neste caso, versão 0.17.1 necessária - tipo de projeto antigo):
fonte
/Applications/Postgres.app/Contents/Versions/10/bin/pg_config
No Mac OS X, execute assim:
***/path/to/pg_config***
é o caminho para pg_configfonte
sudo find / -name "pg_config"
,gem install pg -- --with-pg-config=/Library/PostgreSQL/9.4/bin/pg_config
usando o caminho que eu acabei de descobrir.No meu caso, era pacote
postgresql-server-dev-8.4
(estou no Ubuntu 11.04 (Natty Narwhal), 64 bits).fonte
A resposta certa para usuários de Mac com Postgres.app é compilar com o
libpq
fornecido com esse pacote. Por exemplo, com a versão 9.4 (atual até o momento em que este artigo foi escrito), tudo que você precisa é:Isso manterá sua
pg
jóia sincronizada exatamente com a versão do PostgreSQL que você instalou. Instalar algo do Homebrew é um desperdício neste caso.fonte
Eu tive o mesmo problema no Amazon Linux. Eu consegui encontrar o cabeçalho
libpq-fe.h
, mas de alguma forma não funcionou.Ele veio das diferentes versões dos pacotes que foram instalados pelos diferentes usuários na máquina. PostgreSQL 9.2 e PostgreSQL 9.3 foram instalados. Portanto, verifique sua versão do PostgreSQL antes de incluir as bibliotecas.
Para mim, a linha de comando mágica era:
Fonte: Guia quase idiota para instalar o PostgreSQL 9.3, PostGIS 2.1 e pgRouting with Yum
fonte
Uma resposta mais geral para qualquer distribuição baseada no Debian (que inclui o Ubuntu) é a seguinte. Primeiro, instale o
apt-file
pacote executando como root:Isso permite procurar pacotes contendo um arquivo. Em seguida, atualize seu banco de dados usando
(isso pode ser executado como usuário normal). Em seguida, procure o cabeçalho ausente usando:
Na minha máquina, isso fornece:
Ai está !
fonte
Para MacOS sem instalar o servidor PostgreSQL:
fonte
Em um Mac, resolvi usando este código:
fonte
Estou executando o Postgres.app em um Mac e tive que
primeiro. Então
trabalhou para mim.
fonte
Eu tive o mesmo problema no Mac OS, mas instalei a gem PostgreSQL facilmente usando o seguinte em um terminal:
(Instalei o PostgreSQL primeiro com
brew install postgresql
.)fonte
Encontrei esta resposta e foi a única que funcionou para mim (Mac OS) - depois de pesquisar por cerca de dois dias:
Consulte Pergunta de estouro de pilha Não foi possível encontrar a biblioteca do cliente PostgreSQL (libpq) .
fonte
Recentemente, atualizei para o Mac OS X v10.10 (Yosemite) e estava com dificuldades para criar a
pg
gema.O erro relatado foi o típico:
Minha solução foi
gem uninstall pg
em seguidabundle update pg
para substituir a gema com a mais recente. Eu executeibrew update; brew upgrade
após a instalação do Yosemite para obter as versões mais recentes dos pacotes que eu tinha instalado anteriormente.fonte
No Ubuntu, instale o "libpq-dev" para se livrar desse problema.
fonte
sudo apt-get install postgresql
antes #libpq-dev
No CentOS, eu instalei
libpq-dev package
usando o comando abaixoA execução
gem install pg
retornou o mesmo erro que "No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config
".Instalar a gema conforme abaixo resolveu meu problema
fonte
No FreeBSD (9.1), o pacote necessário é / usr / ports / database / postgresql-server * que, quando instalado, também instala o arquivo de cabeçalho necessário que faz com que a instalação gem de "pg" falhe. Esta resposta aqui me ajudou a encontrar a solução, mas a diferença nos nomes dos pacotes exigiu um pouco de pesquisa.
Espero que isso ajude alguém a evitar um pouco de coçar a cabeça ao procurar pelo pacote "-dev" em um sistema FreeBSD!
fonte
No Debian 7.0, 64 bits (Wheezy), basta executar:
Após a instalação bem-sucedida do libpq-dev, execute:
fonte
No CentOS 6.5 (Squeeze), criei um arquivo:
com conteúdo:
Observe aqui, você deve definir seu caminho no PostgreSQL com o arquivo pg_config. Você pode encontrar isso com o comando:
Salve o arquivo:
e tente executar seu comando novamente.
Nota: Sempre que você alterar a configuração do Bash - alterando a configuração do perfil.d -, recarregue o Bash.
fonte
pg_*
roteiros para o caminho da seguinte forma:ln -s /usr/pgsql-9.3/bin/p* /usr/local/bin
. Depois disso, não precisei de scripts ou variáveis de ambiente adicionais.A localização de
libpq-fe.h
depende de onde está sua instalação do PostgreSQL (que depende de como você a instalou). Uselocate
( http://en.wikipedia.org/wiki/Locate_%28Unix%29 ) para encontrar olibpq-fe.h
arquivo em sua máquina. Se existir, estará noinclude
diretório de instalação do PostgreSQL.O
bin
diretório, que contémpg_config
, estará no mesmo diretório que oinclude
diretório. Como o erro sugere, use a opção --with-pg-config para instalar a gem:Observe que você pode precisar executar
updatedb
se nunca usoulocate
ou se não atualizou desde a instalação do PostgreSQL.fonte
--
antes do--with-pg-config=...
eu recebo um erro: ERROR: Durante a execução de gem ... (OptionParser :: InvalidOption) opção inválida: --with-pg-config = / usr / bin / pg_config)Finalmente resolvi esse problema, mas não usando os métodos descritos anteriormente.
Usando
brew install postgresql
, descobri que ele já estava instalado, mas não vinculado.Descubra onde o PostgreSQL está instalado e exclua-o,
Então
brew install postgresql
, novamente,brew link postgresql
gem install pg
fonte
Eu só tinha isso no OSX executando brew e
[email protected]
.Minha correção foi essa:
fonte
Eu tive esse problema com o Postgresql 9.6. Consegui corrigi-lo fazendo:
fonte
Encontrei o mesmo erro com o postgres instalado através do asdf. As soluções pg-config não funcionaram para mim. Em vez disso, tive que localizar a pasta include do postgres que contém o arquivo e executar o comando com a
--with-pg-include
bandeirafonte
Para
AltLinux
o pacotepostgresqlx.x-devel
(no meu casopostgresql9.5-devel
) deve ser instalado:fonte
Eu resolvi isso instalando o pacote 'postgresql-common'. Este pacote fornece o
pg_config
binário que provavelmente é o que estava faltando.fonte