Rails 3 – não é possível instalar o pg gem

Quando eu tento executar o pacote (bundle install), eu sempre consigo

Installing pg (0.13.2) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/ryan/.rvm/rubyes/ruby-1.9.2-p290/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=/Users/ryan/.rvm/rubyes/ruby-1.9.2-p290/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 /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2 for inspection. Results logged to /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2/ext/gem_make.out An error occured while installing pg (0.13.2), and Bundler cannot continue. Make sure that `gem install pg -v '0.13.2'` succeeds before bundling. 

Eu uso o Mac OS X 10.6, a versão do PostgreSQL instalado é 9.1. Eu encontrei o problema está no libpq-dev , como eu poderia instalar / consertar isso?

Como indicado no seu log de erros, você precisa passar o caminho para o pg_config. Tente instalar a gema usando:

 gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG' 

Se você não tem certeza de onde o seu pg_config está, e supondo que você esteja no Linux ou Mac, você pode executar o seguinte comando:

 which pg_config 

Seu pg-config pode estar em locais diferentes dependendo de como você instalou o postgres.

se você está rodando no Linux, você pode estar interessado no que funcionou para mim:

 sudo apt-get install postgresql sudo apt-get install libpq-dev 

Então

 gem install pg 

então

 bundle install 

src: http://wikimatze.de/installing-postgresql-gem-under-ubuntu-and-mac

Se você estiver usando o Postgress.app , precisará acessar suas ferramentas de linha de comando . Digite a seguinte linha no seu terminal ou no seu perfil PATH :

  PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 

gem install pg deve agora funcionar. (Isto é o que funcionou para mim.)

Nota O caminho de novas versões se parece com:

 /Applications/Postgres.app/Contents/Versions//bin 

Se você tem homebrew, basta digitar:

$ brew instalar postgresql

Se você não tem, baixe digitando isto no seu terminal:

ruby -e “$ (curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install )”

Procure por libpq:

 brew search libpq 

Deve saída libpqxx

Em seguida, tente instalá-lo:

 brew install libpqxx 

Você só precisa instalar o libpq-dev :

 sudo apt-get install libpq-dev 

Então a gema deve instalar bem.

Siga as instruções de pós-instalação: http://postgresapp.com/documentation/configuration-ruby.html

Para instalar o pg gem, certifique-se de ter configurado corretamente o seu $ PATH (conforme especificado em http://postgresapp.com/documentation/cli-tools.html ), então execute

sudo ARCHFLAGS="-arch x86_64" gem install pg

Eu recomendo fortemente a leitura de ambas as páginas. Apenas passei por eles e perdi 1 hora da minha vida. Leia-os, problema resolvido.

O problema que tive foi que, por algum motivo, ele estava tentando compilar com /usr/bin/gcc-4.2. Descobri isso alterando o try_cpp em mkmf.rb (que vi no rastreio de pilha) para gerar uma exceção com a linha de compilation que estava falhando.

Liguei o gcc ao gcc-4.2 e funcionou:

 sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 

Por que estava tentando usar o gcc-4.2? Nenhuma idéia.

A linha de compilation real:

 /usr/bin/gcc-4.2 -E -I/Users/dfrankow/.rvm/rubyes/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/dfrankow/.rvm/rubyes/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/backward -I/Users/dfrankow/.rvm/rubyes/ruby-1.9.3-p125/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr/local/Cellar/postgresql/9.1.4/include -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration -fno-common -pipe conftest.c -o conftest.i (RuntimeError) 

Eu tenho o mesmo problema, mas meu Postgres foi instalar em

/Library/PostgreSQL/9.3

Atualizou o ~ / .bash_profile adicionando:

 export PATH=/Library/PostgreSQL/9.3/bin:$PATH 

Abra um novo terminal, execute o bundle update e também funcionou para mim. Obrigado Ari.

Você pode configurar um bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config opções de bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config e usar gem install pg sem nenhuma opção (o caminho para o pg_config pode ser diferente para você, este é para o Postgresapp 9.3.5.0)

Eu tive o mesmo problema na minha máquina openSUSE13.1 KDE. Antes desse problema eu encontrei eu tinha instalado apenas os pacotes postgresql e postgresql-server usando o comando zypper . Então instalei novamente mais 2 pacotes:

 [arup@to_do_app]$ sudo zypper in postgresql-devel postgresql-contrib root's password: Loading repository data... Reading installed packages... Resolving package dependencies... #.... 

Então, eu corri novamente bundle install e sucesso !!!

Para uma solução OSX funcional, consulte este guia http://krugerdavid.com/journal/how-to-install-xcode-homebrew-git-rvm-postgresql-ruby-1-9-3-on-snow-leopard/

Ele guiará você pela instalação do PostgreSQL usando o homebrew. Testado e trabalhando para mim no OSX 10.8.3, PostgreSQL 9.2.3 e Ruby 2.0.0-p0

Primeiro, desinstale qualquer versão do Homebrew. A opção –force faz com que ele desinstale todas as versões.

 brew rm postgresql --force 

Altere os caminhos de acordo com sua versão.

 sudo /sbin/SystemStarter stop postgresql-8.4 sudo rm -rf /Applications/PostgreSQL\ 8.4 sudo rm -rf /etc/postgres-reg.ini sudo rm -rf /Library/StartupItems/postgresql-8.4 sudo rm -rf /Library/PostgreSQL/8.4 sudo dscl . delete /users/postgres 

Edite / etc / profile e apague todas as linhas que façam referência a “postgres”.

 nano /etc/profile 

Instalar o PostgresSQL

 brew update brew install postgresql 

Instalar o PG GEM

 gem install pg 

É isso aí. Saudações.

Você pode primeiro verificar se você tem um arquivo postrgresql no seu terminal, indo para o arquivo lib. indo cd ~ / opt / local / lib / e digite ls e o botão enter. Isto irá mostrar-lhe uma lista de todos os arquivos que estão localizados no diretório lib.

1. Se você não tem postreseql você pode baixar através macports. sudo port install postgresql93 @ 9.3.2_1

Agora cd de volta para sua pasta que você está tentando empacotar instalar

  1. fazendo seu pg trabalhar com seu arquivo postgesql que você tem ou apenas baixado gem install pg – –com-pg-config = / opt / local / lib / postgresql93 / bin / pg_config

Agora execute a instalação do pacote

No Fedora:

 dnf install postgresql-devel 

O que funcionou para mim no El Capitan foi atualizar o ruby ​​do padrão do sistema para o 2.3.1 parecia encontrar as bibliotecas corretas que a pg gem precisava.