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?

Deekor
quelle
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
Bob O'Brien
quelle
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
Talgat Medetbekov
quelle
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.

knice
quelle
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

Robertibiris
quelle
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

Vince
quelle
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.

Tungd
quelle
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
Mark Wang
quelle
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

j8d
quelle
3

Für CentOS-Benutzer:

sudo yum install postgresql-devel

und

gem install pg
webster
quelle
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.
Henrik Holm
quelle
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

Pochocosta
quelle
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.

Bogdan Nechita
quelle
0

Ich musste Sudo benutzen

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config
gypsyDev
quelle
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
Maurici Abad
quelle
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.

zykadelic
quelle
-2

Für mich geht das

rvm list gemsets
rvm use ruby-2.4.1
bundle

Fehler [! [behoben mit rvm use ruby] 2

DevMasterAryan
quelle
Sie installieren das pgJuwel hier nicht
zykadelic