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

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:



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

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


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


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/

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

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

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.


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.


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


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.


3

Para usuarios de Mac

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

Esto debería funcionar


3

Usar con ARCHbandera.

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

Esto resolvió el mismo problema que tienes.


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

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

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


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


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'


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.