incapaz de instalar gema pg

217

Intenté usarlo gem install pgpero no parece funcionar.

gem install pg da este error

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

C:/Ruby/bin/ruby.exe 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=C:/Ruby/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 C:/Ruby/lib/ruby/gems/1.8/gems/pg-0.10.1 for
inspection.
Results logged to C:/Ruby/lib/ruby/gems/1.8/gems/pg-0.10.1/ext/gem_make.out
Rohit
fuente
3
Si estás en una Mac, sigue este tutorial: matthew.mceachen.us/blog/…
Noah W. Smith
1
@NatchiQ enlace roto?
0112
en mi caso el registro de error decía que libpqno se encontró, así que instalésudo apt install postgresql postgresql-contrib libpq-dev pgadmin3 -y
Raj

Respuestas:

14

Respondido aquí: no se puede instalar pg gem en Windows

No hay una versión nativa de Windows de la última versión de pg (0.10.0) lanzada ayer, pero si instala 0.9.0 debería instalar binarios sin problemas.

Nikita Barsukov
fuente
388

Tuve este problema, esto funcionó para mí:

Instale el paquete postgresql-devel, esto resolverá el problema de la falta de pg_config.

sudo apt-get install libpq-dev
Devaroop
fuente
139
Trabajó para mí por apt-get install libpq-dev. Gracias por la pista.
Ryanmt
55
Confirmación, desde la página de inicio de pg gem Wiki : "En Ubuntu, / usr / bin / pg_config es proporcionado por el paquete libpq-dev".
Mark Berry
17
¿Qué hay de Mac?
Fivell
23
@Fivell Tarde al juego con la respuesta aquí, pero si tienes instalado Homebrew, brew install postgresqlobtendrás los paquetes que necesitas.
Alex LaFroscia
19
@Fivell probar brew install postgresqlen mac
Mahattam
91

El problema es la dependencia de la gema, así que antes de instalar pg, asegúrese de haber instalado "libpq-dev"

Sistemas Ubuntu:

sudo apt-get install libpq-dev

Sistemas RHEL:

yum install postgresql-devel

Mac:

instalar brew postgresql

Mahattam
fuente
77
La respuesta para Mac es verdadera. Es solo porque no hemos instalado PostgreSQL en la máquina.
Hoang Le
En Centos 7 yum install postgresql-develresolvió mi error relacionado con pg_config para instalar el 'pg' .gem. Por cierto, opté por utilizar el recién publicado PostgreSQL 10
Arthur el
62

gem install pg -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config

Flaviu
fuente
3
Esto me ayudó (en Centos 6.2)
TuK
14
Trabajó para mí en OS X, pero con la ruta a /Applications/Postgres.app/Contents/MacOS/bin/pg_config (tengo un Postgres.app independiente)
Matt
10
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config en yosemite con la aplicación Postgres
twmulloy
Trabajó. Pero en Mac, antes env ARCHFLAGS="-arch x86_64"fue un cambio de juego para mí.
Janusz Lenar
2
Solía ​​usar gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_configOSX 10.12
Tim Krins el
37

@Winfield lo dijo :

La gema pg requiere que las bibliotecas del cliente postgresql se unan. Este error generalmente significa que no puede encontrar sus bibliotecas de Postgres. O no los tiene instalados o puede que tenga que pasarlos --with-pg-dir=a su instalación de gemas.

Más que eso, solo necesitas --with-pg-config=instalarlo.

En una Mac

Si, por casualidad, también instaló postgres a través del paquete del sitio web en mac, estará en algún lugar como /Applications/Postgres.app/Contents/Versions/9.3/bin.

Entonces, o lo pasas en la instalación de gemas:

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

O que establezca la ruta adecuada . Como eso podría ser demasiado, establecer temporalmente la RUTA:

export PATH=%PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin/
cregox
fuente
2
para versión específica:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Dan Sandland
Hay una carpeta de enlace simbólico llamada latestdentro de la carpeta de contenido Postgres.app que es útil en caso de que 9.3 ya no se envíe. gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
Stephen Silber
24

No había instalado Postgresql, así que lo instalé usando

sudo apt-get install postgresql postgresql-server-dev-9.1

en Ubuntu 12.04.

Esto lo resolvió.


Actualizar:

Use la última versión:

sudo apt-get install postgresql-9.3 postgresql-server-dev-9.3
Lasse Skindstad Ebert
fuente
Solucionó el problema para mí, pero en una Mac (con homebrew) tuve que ejecutar este comando:brew install postgresql
gMale
19

Esto funcionó en mi caso:

sudo apt-get install libpq-dev

Solía:

  • Ubuntu 14.04.2 LTS
  • Ruby 2.2.2
  • Carriles 4.2.1
Zainal
fuente
12

Si estás usando Postgres.app en Mac, puede resolver este problema de una vez por todas de la siguiente manera:

En primer lugar gem uninstall pg, a continuación, editar el ~/.bash_profileo ~/.zshrcarchivo o equivalente y añadir:

# PostgreSQL bin path
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin

Entonces bundle instally gem install pgambos deberían funcionar como se esperaba.

DuArme
fuente
Gracias, también funciona utilizando brew instalado postgreSQL # PostgreSQL bin path export PATH = $ PATH: /usr/local/Cellar/postgresql/9.5.0/bin/
Benoit
9
$ PATH=$PATH:/Library/PostgreSQL/9.1/bin sudo gem install pg

reemplace el 9.1 para la versión instalada en su sistema.

jstnno
fuente
1
Esto me ayudó en una Mac, ¿alguien sabe cuál es la ruta predeterminada y cómo cambiarla?
Steve
Funciona en OS X Maveric
Marek Kirejczyk
5

En Mac OS (El Capitano). Simplemente puede usar:brew install postgresql

Jones Agyemang
fuente
1
¡Si! ¡Esto era todo lo que necesitaba! Instalar en OS X limpio, no Postgres.app
Lane Rettig
3

La gema pg requiere que las bibliotecas del cliente postgresql se unan. Este error generalmente significa que no puede encontrar sus bibliotecas de Postgres. O no los tiene instalados o puede que tenga que pasar --with-pg-dir = a su instalación de gemas.

Winfield
fuente
3

Para usuarios de Mac

PATH=$PATH:/Library/PostgreSQL/9.4/bin/ gem install pg

Esto debería funcionar

Ronak Jain
fuente
3

Usar con ARCHbandera.

sudo env ARCHFLAGS="-arch x86_64" gem install pg

Esto resolvió el mismo problema que tienes.

Aman Chhabra
fuente
2

Tuve este problema en Linux Mint (Maya) 13, y lo arreglé instalando postgresql y postgresql-server:

apt-get install postgresql-9.1 

sudo apt-get install postgresql-server-dev-9.1
SAIDI Belkacem
fuente
2

Independientemente del sistema operativo que esté ejecutando, mire el archivo de registros del "Makefile"para ver qué está sucediendo, en lugar de instalar cosas ciegamente.

En mi caso, MAC OS, el archivo de registro está aquí:

/Users/za/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log

Los registros indican que el archivo make no se pudo crear debido a lo siguiente:

Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers

Dentro de mkmf.log, verá que no pudo encontrar las bibliotecas necesarias para finalizar la compilación.

checking for pg_config... no
Can't find the 'libpq-fe.h header
blah blah

Después de ejecutar "brew install postgresql", puedo ver todas las bibliotecas requeridas allí:

za:myapp za$ cat /Users/za/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log | grep yes
find_executable: checking for pg_config... -------------------- yes
find_header: checking for libpq-fe.h... -------------------- yes
find_header: checking for libpq/libpq-fs.h... -------------------- yes
find_header: checking for pg_config_manual.h... -------------------- yes
have_library: checking for PQconnectdb() in -lpq... -------------------- yes
have_func: checking for PQsetSingleRowMode()... -------------------- yes
have_func: checking for PQconninfo()... -------------------- yes
have_func: checking for PQsslAttribute()... -------------------- yes
have_func: checking for PQencryptPasswordConn()... -------------------- yes
have_const: checking for PG_DIAG_TABLE_NAME in libpq-fe.h... -------------------- yes
have_header: checking for unistd.h... -------------------- yes
have_header: checking for inttypes.h... -------------------- yes
checking for C99 variable length arrays... -------------------- yes
zee
fuente
2

He estado experimentando este molesto problema con PG durante años. Creé esta esencia para ayudar.

El siguiente comando siempre funciona para mí.

# Substitute Postgres.app/Contents/Versions/9.5 with appropriate version number
sudo ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config

gist: https://gist.github.com/sharnie/5588340cf023fb177c8d

SharnieIvery
fuente
1

Tenía que hacer esto en CentOS 5.8. Correr bundle installseguía causando problemas ya que no podía forzarlo a usar una versión PG particular.

Tampoco puedo yum erase postgresql postgresql-devel, debido a problemas de dependencia (eliminaría php, http, etc.)

¿La solución? Desordenar $ PATH temporalmente para dar preferencia a la actualización pgsql en lugar de la predeterminada:

export PATH=/usr/pgsql-9.2/bin:$PATH
bundle install

Básicamente, con los comandos anteriores, se verá /usr/pgsql-9.2/bin/pg_configantes que el de/usr/bin/pg_config

cristiano
fuente
1

Si está utilizando jruby en lugar de ruby, tendrá problemas similares al instalar la gema pg. En su lugar, necesita instalar el adaptador:

gem 'activerecord-jdbcpostgresql-adapter'
Nuri
fuente
1

En Mac brew install postgresENTONCESbundle install

Yar HTUT
fuente
0

Simplemente vaya aquí para ver si su versión pg admite la plataforma Win32, luego use este comando para instalar:

gem install pg -v 0.14.1 --platform = x86-mingw32

revskill
fuente