impossibile installare pg gem


217

Ho provato a usare gem install pgma non sembra funzionare.

gem install pg dà questo errore

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
Se sei su un Mac, segui questo tutorial: matthew.mceachen.us/blog/…
Noah W. Smith,

1
@NatchiQ link non funzionante?
0112

nel mio caso il registro degli errori diceva che libpqnon era stato trovato, quindi ho installatosudo apt install postgresql postgresql-contrib libpq-dev pgadmin3 -y
Raj,

Risposte:



388

Ho avuto questo problema, questo ha funzionato per me:

Installa il pacchetto postgresql-devel, questo risolverà il problema della mancanza di pg_config.

sudo apt-get install libpq-dev

139
Ha funzionato per me apt-get install libpq-dev. Grazie per il suggerimento.
Ryanmt,

5
Conferma, dalla homepage della pg gem Wiki : "Su Ubuntu, / usr / bin / pg_config è fornito dal pacchetto libpq-dev".
Mark Berry,

17
che dire di mac?
Fivell,

23
@Fivell In ritardo al gioco con la risposta qui, ma se hai Homebrew installato, brew install postgresqlotterrai i pacchetti di cui hai bisogno.
Alex LaFroscia,

19
@Fivell provare brew install postgresqlsu mac
Mahattam il

91

Il problema è la dipendenza gem, quindi prima di installare pg assicurati di aver installato "libpq-dev"

Sistemi Ubuntu:

sudo apt-get install libpq-dev

Sistemi RHEL:

yum installa postgresql-devel

Mac:

brew install postgresql


7
La risposta per Mac è vera. È solo perché non abbiamo installato PostgreSQL sulla macchina.
Hoang Le

Su Centos 7 yum install postgresql-develho risolto il mio errore relativo a pg_config per l'installazione di 'pg' .gem. A proposito, ho scelto di utilizzare PostgreSQL 10 appena rilasciato
Arthur,

62

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


3
Questo mi ha aiutato (su Centos 6.2)
TuK,

14
Ha funzionato per me su OS X, ma con il percorso a /Applications/Postgres.app/Contents/MacOS/bin/pg_config (ho un Postgres.app autonomo)
Matt,

10
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config su yosemite con l'app Postgres
twmulloy

Lavorato. Ma su Mac, il precedente con è env ARCHFLAGS="-arch x86_64"stato un punto di svolta per me.
Janusz Lenar,

2
Ho usato gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_configper OSX 10.12
Tim Krins l'

37

@Winfield ha detto :

Il gem pg richiede che le librerie client postgresql si leghino contro. Questo errore di solito significa che non riesce a trovare le librerie di Postgres. O non li hai installati o potresti dover passare --with-pg-dir=al tuo gem gem installazione.

Inoltre, è sufficiente --with-pg-config=installarlo.

Su un Mac

Se, per caso, hai installato anche postgres attraverso il bundle del sito Web su Mac, sarà su un posto come /Applications/Postgres.app/Contents/Versions/9.3/bin .

Quindi, o lo passi sull'installazione gem:

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

Oppure hai impostato il PERCORSO correttamente . Dal momento che potrebbe essere troppo, per impostare temporaneamente il PERCORSO:

export PATH=%PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin/

2
per versione specifica:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Dan Sandland

Esiste una cartella symlink chiamata latestall'interno della cartella dei contenuti di Postgres.app che è utile nel caso in cui 9.3 non sia più spedito. gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
Stephen Silber,

24

Postgresql non era installato, quindi l'ho appena installato usando

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

su Ubuntu 12.04.

Questo ha risolto.


Aggiornare:

Usa l'ultima versione:

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

Risolto il problema per me, ma su un mac (con homebrew) dovevo eseguire questo comando:brew install postgresql
gMale

19

Questo ha funzionato nel mio caso:

sudo apt-get install libpq-dev

Ero solito:

  • Ubuntu 14.04.2 LTS
  • Ruby 2.2.2
  • Rotaie 4.2.1

12

Se stai usando Postgres.app su Mac, puoi risolvere questo problema una volta per tutte in questo modo:

Innanzitutto gem uninstall pg, modifica il tuo ~/.bash_profileo ~/.zshrcfile o equivalente e aggiungi:

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

Quindi bundle installe gem install pgdovrebbe funzionare entrambi come previsto.


Grazie, funziona anche usando breg install 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

sostituire il 9.1 per la versione installata sul sistema.


1
Questo mi ha aiutato su un Mac, qualcuno sa qual è il percorso predefinito e come modificarlo?
Steve

Funziona su OS X Maveric
Marek Kirejczyk il

5

Su Mac OS (El Capitano). Puoi semplicemente usare:brew install postgresql


1
Sì! Questo era tutto ciò di cui avevo bisogno! Installa su OS X pulito, senza Postgres.app
Lane Rettig

3

Il gem pg richiede che le librerie client postgresql si leghino contro. Questo errore di solito significa che non riesce a trovare le librerie di Postgres. O non li hai installati o potresti dover passare --with-pg-dir = alla tua installazione gem.


3

Per utenti Mac

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

Questo dovrebbe fare il trucco


3

Utilizzare con la ARCHbandiera.

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

Questo ha risolto lo stesso problema riscontrato.


2

Avrei questo problema su Linux Mint (Maya) 13, e l'ho risolto installando postgresql e postgresql-server:

apt-get install postgresql-9.1 

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

2

Indipendentemente dal sistema operativo in uso, guarda il file di registro di "Makefile"per vedere cosa sta succedendo, invece di installare alla cieca roba.

Nel mio caso, MAC OS, il file di registro è qui:

/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

I registri indicavano che il file make non poteva essere creato a causa di quanto segue:

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

All'interno di mkmf.log, vedrai che non è stato possibile trovare le librerie necessarie per completare la compilazione.

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

Dopo l'esecuzione "brew install postgresql", posso vedere tutte le librerie richieste presenti:

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

Ho riscontrato questo fastidioso problema con PG per anni. Ho creato questa idea per aiutare.

Il seguente comando funziona sempre per me.

# 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

Ho dovuto farlo su CentOS 5.8. La corsa bundle installcontinuava a causare problemi poiché non potevo forzarla a utilizzare una particolare versione di PG.

Nemmeno io yum erase postgresql postgresql-devel, a causa di problemi di dipendenza (eliminerebbe php, http ecc.)

La soluzione? Mess $ PATH temporaneamente per dare la preferenza all'aggiornamento pgsql invece di quello predefinito:

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

Fondamentalmente, con i comandi sopra, esaminerà /usr/pgsql-9.2/bin/pg_configprima quello in/usr/bin/pg_config


1

Se stai usando jruby invece di ruby ​​avrai problemi simili quando installi la gemma pg. Invece è necessario installare l'adattatore:

gem 'activerecord-jdbcpostgresql-adapter'


0

Vai qui per vedere se la tua versione di pg supporta la piattaforma Win32, quindi usa questo comando per installare:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.