2015-12-21 17 views
9

sto cercando di bundle install, ma, per qualche strana ragione, la gemma pg sta tornando il seguente errore di installazione:non possono installare pg gemma on Rails

$ gem install pg -v '0.18.4' 
Building native extensions. This could take a while... 
ERROR: Error installing pg: 
    ERROR: Failed to build gem native extension. 

    /Users/username/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20151221-23315-1tkv3fd.rb 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=/Users/username/.rvm/rubies/ruby-2.2.1/bin/$(RUBY_BASE_NAME) 
    --with-pg 
    --without-pg 
    --enable-windows-cross 
    --disable-windows-cross 
    --with-pg-config 
    --without-pg-config 
    --with-pg_config 
    --without-pg_config 
    --with-pg-dir 
    --without-pg-dir 
    --with-pg-include 
    --without-pg-include=${pg-dir}/include 
    --with-pg-lib 
    --without-pg-lib=${pg-dir}/lib 

extconf failed, exit code 1 

Gem files will remain installed in /Users/username/.rvm/gems/ruby-2.2.1/gems/pg-0.18.4 for inspection. 
Results logged to /Users/username/.rvm/gems/ruby-2.2.1/extensions/x86_64-darwin-15/2.2.0/pg-0.18.4/gem_make.out 

Qualcuno può aiutarmi a installare questo gemma e rendere il mio fascio finito con successo?

+1

Googling per il messaggio di errore (buon primo passo per qualcosa di simile), cioè per * "Impossibile trovare l''intestazione libpq-fe.h" * rivela molte domande su SO per questo, ad esempio http: // stackoverflow.com/questions/6040583/cant-find-the-libpq-fe-h-header-when-trying-to-install-pg-gem –

+2

first rub 'bundle config build.pg --with-pg-config = /Applications/Postgres.app/Contents/Versions/(YOUR POSTGRES VERSION)/bin/pg_config' quindi 'bundle install' –

+0

Grazie a @AwladLiton che ha funzionato :) – gespinha

risposta

5

è necessario configurare correttamente pg.

Run:

bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/(YOUR POSTGRES VERSION)/bin/pg_config 

Quindi provare a eseguire bundle:

bundle install 
14

Probabilmente dovresti installare le librerie di sviluppo PostgreSQL.

Se siete su Ubuntu questo aiuterà:

sudo apt-get install libpq-dev 

Su un Mac:

brew install postgresql 
+1

Sembra che siano su OS X. –

+0

Ho visto gli/Utenti/... dopo il fatto. Grazie per la segnalazione. – azazeal

+0

Per Alpine, utilizzare ['postgres-dev'] (https://pkgs.alpinelinux.org/package/edge/main/x86/postgresql-dev):' apk aggiungi postgresql-dev' – gabe

0

Se è installata la libreria client di PostgreSQL, allora avete bisogno di dire a gemma dove cercare i file di inclusione, che si fa chiedendo pg_config. Io uso un piccolo file di shell per rendere più facile per gemma di trovare che l'utilità:

#!/bin/sh -x 

PATH=/Library/PostgreSQL/9.4/bin:$PATH 
gem install pg [email protected] 

Si potrebbe anche regolare manualmente il percorso per includere sempre la directory bin di PostgreSQL, che dovrebbe risolvere il problema in modo definitivo.

Se si aggiorna PostgreSQL tale percorso cambierà, quindi potrebbe essere necessario reinstallare pg e/o modificare le impostazioni PATH.

Una volta installato pg, ulteriori aggiornamenti alla gem saranno in grado di installare senza rieseguire lo script.

Problemi correlati