2012-02-10 15 views
59

whenI plazo (como root)joya instalar pg --with-config-pg obras, haz falla

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

me sale el siguiente resultado:

#-> gem instal pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config 
Building native extensions. This could take a while... 
Successfully installed pg-0.12.0 
1 gem installed 
Installing ri documentation for pg-0.12.0... 
Installing RDoc documentation for pg-0.12.0... 
#-> 

cuando corro paquete de instalación:

Installing pg (0.12.0) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

    /usr/local/rvm/rubies/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 
--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=/usr/local/rvm/rubies/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 /var/www/simpletrac/vendor/cache/ruby/1.9.1/gems/pg- 0.12.0 for inspection. 
Results logged to /var/www/simpletrac/vendor/cache/ruby/1.9.1/gems/pg-0.12.0/ext/gem_make.out 
An error occured while installing pg (0.12.0), and Bundler cannot continue. 
Make sure that `gem install pg -v '0.12.0'` succeeds before bundling. 

Tengo libpq-fe.h instalado en /usr/pgsql-9.1/include/libpq-fe.h. Entonces, probé

gem install pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config --with-pg-lib=/usr/pgsql-9.1/include/libpq-fe.h but still no go. 

Cualquier ayuda sería muy apreciada.

Además, he instalado postgresql91-devel y ruby-devel. Ejecutando CentOS 6.

Respuesta

148

¿Ha intentado ejecutar esto antes de ejecutar bundle install?

bundle config build.pg --with-pg-config=/usr/pgsql-9.1/bin/pg_config 

Ver http://bundler.io/v1.3/bundle_config.html

+8

Eres un mago. Muchas gracias! – YuKagi

+0

Si está utilizando MacOS + MacPorts, consulte la publicación de Lester para la solución. – Matthias

+0

Tengo el mismo error pero estoy usando la base de datos mysql. ¿Qué serán los pls de comando? –

16

En caso de que alguien se usa macports instalar postgres y están teniendo problemas para encontrar su pg_config, intente esto:

bundle config build.pg --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config 

espero que esto ayude a alguien a ahorrar algo de tiempo. ¡Aclamaciones!

+0

¡Eres un salvavidas! –

+0

Esto lo arregló para mí, ¡salud! – Matthias

4

Puede obtener este error si tiene instalado pg_config pero no está en ninguna ruta. Puede agregarlo a su env PATH en su ~/.bashrc.

Por ejemplo.

export PATH=${PATH}:/usr/pgsql-9.2/bin 
+0

¿Podría ser esto un resultado de la instalación desde el origen en lugar de un administrador de paquetes? Trabajó para mí de todos modos - Sólo curiosidad de por qué me encontré con el problema. – FantasticSponge

3

tuve que hacer esto para fijar la mina en OS X:

export PATH=/opt/local/lib/postgresql84/bin/:$PATH 

Y tuve que hacerlo a pesar de que ya tenía esto en mi camino:

[[email protected] ~] which psql84 
/opt/local/bin/psql84 

[[email protected] ~] ls -altrh /opt/local/bin/psql84 
lrwxr-xr-x 1 root admin 36B Dec 7 02:15 /opt/local/bin/psql84 -> /opt/local/lib/postgresql84/bin/psql 

Espero que ayude a otro usuario de Mac con este problema.

+0

Este trabajó para mí, gracias. – holms

+0

Gracias He probado esta solución en Mac Yosemite. – newguy

1

Prueba esto:

yum install libpqxx-devel 

Funciona con Postgr9.2.

3

La gema de Postgres no puede encontrar el archivo de configuración de Postgres. Debes decir dónde está. La solución más agradable para esto en mi opinión es omitir Brew y MacPorts y simplemente usar la aplicación Postgres.Descargar e instalar desde aquí:

http://postgresapp.com/

Ahora añadir la carpeta bin a la ruta:

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

También es posible que desee agregar esto a su ~/.bash_profile

Ahora instale la gema:

gem install pg 

debe ir sin problemas.

4

estoy en Mac y yo uso Homebrew, por lo que para solucionar este problema Acabo de instalar PostgreSQL con cerveza:

brew install postgresql 

y después se instala la gema.

0
gem install pg -v '0.17.1' 

Hice el truco para mí.

2

Estoy usando Arch Linux, y estaba teniendo problemas similares. Usado sudo pacman -S libpqxx y reran luego instaló la gema pg y luego ejecutó bundle install otra vez, ¡y esta vez finalmente funcionó!

+0

¡Estoy usando Arch Linux también y esto resolvió mi problema! –

+0

2016, postgresql 9.5 y pg 0.18.4 no parece funcionar con la solución mencionada (también estoy usando arch Linux). –

1

Este link sugirió usando:

gem install pg --pre 

no pude conseguir el pg gem instalar durante días, pero este método finalmente trabajó para mí. Esperamos que esto sea útil.

9

Si no está seguro de dónde está su pg_config es, y suponiendo que se encuentre en Linux o Mac, puede ejecutar el siguiente comando:

which pg_config 

Esto devolverá ==>/usr/pgsql-9.1/bin/pg_config

ahora usan este camino como

bundle config build.pg --with-pg-config=/usr/pgsql-9.1/bin/pg_config 

hecho ahora bundle install

3

Copia & Pegar:

bundle config build.pg --with-pg-config=`which pg_config` && bundle 

Detalles:

Visita para más información:

La primera cosa que debe hacer es asegurarse de que la herramienta 'pg_config' que viene con Postgres se encuentra en su camino. Si no lo es, o el que está primero en su ruta no es el que se instaló con Postgres sobre el que desea construir, puede especificar la ruta a él con la opción -with-pg-config.

Fuente:https://github.com/ged/ruby-pg/blob/1f274f68c16f1af1c642db1b9d3d28aef169dc84/ext/extconf.rb#L27

0

Asegúrese de que ha instalado Postgress. si no, instálalo primero. Usando terminal por ejemplo.

brew install postgresql 

Después de que se ejecutan

bundle install