Bei der Installation von pg (0.17.1) ist ein Fehler aufgetreten, und Bundler kann nicht fortfahren


86

Ich habe gerade installiert Rails 4.0.2und beim Erstellen einer neuen App bekomme ich in der Bundle-Phase:

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.

Wie behebe ich das?


1
Möglicherweise möchten Sie ein osx-Tag hinzufügen. Die Lösung scheint sich speziell auf Ihr Betriebssystem zu beziehen.
Vince

Vielleicht möchten Sie besuchen. stackoverflow.com/questions/3116015/… . Hoffe, eine dieser Lösungen hilft
Yana Agun Siswanto

Antworten:


142

Ich bin auf einem Mac mit Mavericks. Meine Lösung bestand darin, Postgres zu installieren .

Und dann im Terminal mit Homebrew mit der Konfiguration installieren:

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

Hinweis: Diese Antwort wurde bearbeitet, um den latestSymlink zu verwenden, der derzeit in Versandversionen der Postgres-App enthalten ist.

Vorherige Versionen vorgeschlagen:

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

Yup meins war auch an einem anderen Ort. Danke für die Antwort.
Deekor

Richtig Bob, die Version von postgresapp, in der dies für mich funktioniert hat, war Version 9.2.2.0, daher müssen sie diesen Speicherort in der Version 9.3 geändert haben.
Robertibiris

1
Und jetzt, ab dem 22.01.15, sehen wir uns die Version 9.4 an. Es ist gut zu sehen, dass sie auf dem neuesten Stand gehalten wird - "gem install pg - --with-pg-config = / Applications / Postgres. app / Inhalt / Versionen / 9.4 / bin / pg_config "
corprew

2
Ich war in Eile und habe den Teil dieser Antwort verpasst, der lautet "Installation mit Home-Brew". Diese Antwort funktionierte für mich, nachdem ich es getan hattebrew update; brew install postgres
Dennis

6
gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Fügen

179

Eine Art Fehler, der hier erneut gemeldet wurde. Installation von PG gem unter OS X - Fehler beim Erstellen der nativen Erweiterung

Um Abhängigkeiten von Ubuntu zu installieren, versuchen Sie Folgendes:

sudo apt-get install libpq-dev

und das

gem install pg

5
Ich bin auf einem Mac, was soll ich tun?
Deekor

1
Folgen Sie dem Tutorial auf railstutorial.org. Dies ist, was Sie für Mint tun müssen. Vielen Dank.
Christopher Schneider

railstutorial.org - kostenpflichtiges Tutorial; irgendwelche anderen Ideen?
Terra Ashley

20

App-Root:

  1. Gebräu-Update
  2. brauen installieren postgres
  3. gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.4 / bin / pg_config
  4. Bundle installieren
  5. ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents
  6. launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist
  7. createuser -s -r postgres
  8. Rechen db: create: all
  9. Rechen db: migrieren
  10. Schienen s

HINWEIS: Ersetzen Sie bei Bedarf die Versionsnummer in Schritt 3.


10

Zuvor funktionierende Antwort mit älterer Version

Ich habe unter Mac OSX Mavericks installiert und die Postgres-App (Version 9.2.2.0) von www.postgresapp.com installiert. Das zugrunde liegende Problem war einfach, dass sich die Konfigurationsdatei seit der Installation von postgres über die App an einem Speicherort befindet, der bei der Installation ohne postgressapp nicht der Standardspeicherort ist. Also müssen wir gem sagen, wo diese Datei zu finden ist, indem:

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

Ich hoffe es hilft


1
Dies war meine Lösung (OSX)
Raulriera

Wenn dies für niemanden funktioniert, wurde die Konfigurationsdatei für 9.3 verschoben - siehe die akzeptierte Antwort.
Deekor

5

Wenn die Installation von gem fehlschlägt, versuchen Sie den folgenden Befehl:

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

... aus der PostgreSQL.app-Dokumentation


2
Da die offizielle App kürzlich den Namen in "Postgres93.app" geändert hat, sollte der Befehl lauten: env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
Blackcoat

1
für mich funktionierte es mit: env ARCHFLAGS="-arch x86_64" gem install pg
dnlcrl

4

Sieht so aus, als hätten Sie PostgreSQL nicht installiert. Das pgJuwel benötigt einige Header von PostgreSQL, um die native Erweiterung zu kompilieren.


Wie wäre es mit Ihrem Ruby / Bundler-Setup? Sie verwenden Mac OS X oder Linux? und wenn Sie Mac OS X verwenden, haben Sie PostgreSQL über homebrewoder PostgreSQL.app installiert ?
Tungd

Ich bin auf einem Mac. Ich habe über die App installiert
Deekor

Ich habe 0.17.0 installiert. Irgendwelche Schäden bei der Verwendung mit Schienen 4?
Deekor

Versuchen Sie dann zu laufen bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_configund laufen Sie bundleerneut. Passen Sie den Konfigurationspfad an, wenn Sie die App installieren, ~/Applicationanstatt/Application
tungd

3

Ich musste alles kombinieren und nutzen

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

3

Wenn Sie etwas anderes als Postgres in der Entwicklung und Postgres nur in der Produktion verwenden, können Sie den pg-Edelstein wie folgt zu Ihrer gemfile hinzufügen ...

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

Dann benutze bundle install --without production


3

Für CentOS-Benutzer:

sudo yum install postgresql-devel

und

gem install pg

1

Ich habe gerade ein neues Macbook Pro eingerichtet, das mit Catalina vorgefertigt wurde.

Was hat bei mir funktioniert:

  1. Installieren Sie die Postgres von hier aus: https://postgresapp.com/
  2. Fügen export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"Sie es hinzu .zshenv, da die Z-Shell jetzt das Standardterminal ist.

0

Nach der Installation von Postgres musste ich den folgenden Befehl ausführen

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

Nach diesem Bundle funktioniert die Installation super!

Ich hoffe es hilft


0

Ich habe es geschafft, diesen Fehler zu überwinden:

  • CD in den App-Ordner und dann die Ruby-Version lokal einstellen. Ich benutze Ruby 2.1.2.

rbenv local 2.1.2

  • Installieren Sie die Edelsteine ​​in Vendor / Bundle, anstatt nur die Bundle-Installation auszuführen

Bundle-Installation - Pfad Hersteller / Bundle

Das hat es für mich getan.


0

Ich musste Sudo benutzen

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

0

Ich hatte ein Problem mit Amazon und konnte apt-get nicht verwenden. Für meine Arbeit:

    sudo yum install postgresql-devel

dann:

    bundle install

und versuche es erneut:

    rails serve

0

Wenn Sie über Homebrew installiert haben; gem install pg -- --with-pg-config=/usr/local/bin/pg_config. Funktioniert mit Ruby 2.4.6 und S. 0.20.0.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.