Si è verificato un errore durante l'installazione di pg (0.17.1) e Bundler non può continuare


87

Ho appena installato Rails 4.0.2e quando creo una nuova app, nella fase di bundle ottengo:

Installing pg (0.17.1) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/Dee/.rvm/rubies/ruby-2.0.0-p247/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.

Come lo risolvo?


1
Potresti voler aggiungere un tag osx. La soluzione sembra che potrebbe essere correlata specificamente al tuo sistema operativo.
Vince

Potresti voler visitare. stackoverflow.com/questions/3116015/… . Spero che una di queste soluzioni aiuti
Yana Agun Siswanto

Risposte:


144

Sono su un Mac con Mavericks. La mia soluzione era installare Postgres .

E poi nell'installazione del terminale usando homebrew con la configurazione:

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

Nota: questa risposta è stata modificata per utilizzare il latestcollegamento simbolico attualmente incluso nelle versioni di spedizione dell'app Postgres.

Versioni precedenti suggerite:

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

Sì, anche il mio era in una posizione diversa. Grazie per la risposta.
Deekor

Bob corretto, la versione di postgresapp in cui ha funzionato per me, era la versione 9.2.2.0, quindi devono aver cambiato questa posizione nella versione 9.3.
Robertibiris

1
E ora, a partire dal 22/01/15, stiamo guardando alla versione 9.4, è bello vedere che la stanno tenendo aggiornata - "gem install pg - --with-pg-config = / Applications / Postgres. app / Contents / Versions / 9.4 / bin / pg_config "
corprew

3
Ero di fretta e mi sono perso la parte di questa risposta che dice "installa utilizzando home-brew". Questa risposta ha funzionato per me dopo che l'ho fattobrew update; brew install postgres
Dennis

6
Nella tua soluzione, aggiungi la versione, verrà installata un'altra ultima gemma PG:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
user1322092

182

Qualche tipo di errore è stato riportato qui Installazione di PG gem su OS X - mancata creazione dell'estensione nativa

Per installare le dipendenze su Ubuntu prova questo:

sudo apt-get install libpq-dev

e questo

gem install pg

5
Sono su un Mac, cosa dovrei fare?
Deekor

1
A seguire il tutorial su railstutorial.org. Questo è quello che devi fare per Mint. Grazie.
Christopher Schneider

railstutorial.org - tutorial a pagamento; altre idee?
Terra Ashley

21

root dell'app:

  1. aggiornamento della birra
  2. brew installa postgres
  3. gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.4 / bin / pg_config
  4. installazione bundle
  5. ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents
  6. launchctl carica ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist
  7. createuser -s -r postgres
  8. rake db: create: all
  9. rake db: migrate
  10. rotaie s

NOTA: sostituire il numero di versione nel passaggio 3, se necessario.


10

Risposta funzionante in precedenza con la versione precedente

Ho installato su mac OSX Mavericks, con l'app postgres (versione 9.2.2.0) da www.postgresapp.com installata. Il problema di fondo era semplicemente che poiché postgres è stato installato tramite l'app, il file di configurazione risiede in una posizione che non è quella predefinita quando lo si installa senza postgressapp. quindi dobbiamo dire a gem dove trovare questo file:

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

Spero che sia d'aiuto


1
Questa era la mia soluzione (OSX)
raulriera

Se questo non funziona per nessuno, per 9.3 il file di configurazione è stato spostato - vedi la risposta accettata.
Deekor

5

Se gem install pg fallisce, prova il seguente comando:

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

... dalla documentazione di PostgreSQL.app


2
Poiché l'app ufficiale ha recentemente cambiato nome in "Postgres93.app", il comando dovrebbe essere: env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
Blackcoat

1
per me ha funzionato con: env ARCHFLAGS="-arch x86_64" gem install pg
dnlcrl

4

Sembra che tu non abbia PostgreSQL installato. La pggemma richiede alcune intestazioni da PostgreSQL per compilare l'estensione nativa.


Che ne dici della tua configurazione Ruby / Bundler? Stai usando Mac OS X o Linux? e se stai usando Mac OS X, hai installato PostgreSQL tramite homebrewo PostgreSQL.app?
tungd

Sono su un Mac. Ho installato tramite l'app
Deekor

Ho installato 0.17.0. Qualche danno nell'usarlo con i binari 4?
Deekor

Quindi prova a correre bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_confige corri di bundlenuovo. Regola il percorso di configurazione se installi l'app su ~/Applicationanziché su/Application
tungd

3

Ho dovuto combinare tutto e utilizzare

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

3

Se stai usando qualcosa di diverso da Postgres in sviluppo e Postgres solo in produzione, puoi aggiungere pg gem al tuo gemfile in questo modo ...

group :production do
  gem 'pg',             '0.17.1'
end

Quindi usa bundle install --without production


3

Per gli utenti CentOS:

sudo yum install postgresql-devel

e

gem install pg

1

Ho appena configurato un nuovo Macbook Pro che è stato precostruito con Catalina.

Cosa ha funzionato per me:

  1. Installa Postgres da qui: https://postgresapp.com/
  2. Aggiungi export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"al tuo .zshenv, poiché la shell Z è ora il terminale predefinito.

0

Dopo aver installato Postgres ho dovuto eseguire il seguente comando

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

Dopo che questa installazione in bundle funziona alla grande!

Spero che sia d'aiuto


0

Il modo in cui sono riuscito a superare quell'errore è stato:

  • cd nella cartella dell'app e quindi imposta la versione di ruby ​​localmente. Sto usando Ruby 2.1.2.

rbenv local 2.1.2

  • invece di eseguire solo l'installazione del bundle, installa le gemme in vendor / bundle

bundle install --path vendor / bundle

Questo ha fatto per me.


0

Avevo bisogno di usare sudo

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

0

Avevo un problema con Amazon e non potevo usare apt-get. Per il mio lavoro:

    sudo yum install postgresql-devel

poi:

    bundle install

e riprova:

    rails serve

0

Se hai installato tramite Homebrew; gem install pg -- --with-pg-config=/usr/local/bin/pg_config. Funziona con Ruby 2.4.6 e pg 0.20.0.


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.