2011-03-02 23 views
59

que añade el pg gem a mi Gemfile¿Cómo puedo pasar un parámetro para la instalación de gemas cuando ejecuto la instalación del paquete?

gem 'pg' 

Cuando corro bundle install, me sale este error:

Installing pg (0.10.1) with native extensions /Users/ben/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) 

/Users/benhartney/.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. 

Parece que necesito para pasar en este parámetro de configuración

--with-pg-config=/path/to/pg_config 

¿Cómo puedo hacer esto cuando uso bundle install?

Respuesta

78

Es necesario configurar una opción de generación de configuración de este modo:

bundle config build.pg --with-pg-config=/path/to/pg_config 

Más información se puede encontrar en el bundle config man page

+0

impresionante! Parece que esto lo almacena en la configuración y se usará en el futuro. ¡Gracias! – Josh

15

Run 'paquete de configuración' antes 'bundle install' para establecer los parámetros, es decir, :

bundle config build.pg --with-pg-config=/path/to/pg_config 
bundle install 
9

con Rails3 y PostgreSQL. Me gusta esto

>rails new test_app -d postgreSQL 
>cd test_app 
>mkdir .bundle 
>echo "BUNDLE_BUILD__PG: --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config" > .bundle/config 
>bundle install 

para que pueda mantener la configuración en el control de fuente.

para el perfil de usuario

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

esto creará el archivo ~/.bundle/config.

+0

A menos que solo usted trabaje en la aplicación y cada lugar donde se ejecute tiene la misma ruta que la configuración de postgres, no debe verificar este tipo de cosas en su scm. Es específico del entorno y puede no ser el mismo para todas las máquinas. Por eso, generalmente, lo mejor es hacerlo por usuario. – idlefingers

+0

Idlefingers, sí. está bien. así que por eso di dos opciones. su/su elección, lo mejor para. :-) – Jirapong

Cuestiones relacionadas