it-swarm.com.de

Pg gem kann nicht in Mavericks mit Postgres.app installiert werden

Ich versuche, den pg gem für die Verwendung mit Postgres.app auf meinem lokalen Rechner zu installieren. Ich leite Mavericks.

Postgres.app ist installiert und läuft einwandfrei, aber ich kann den Edelstein nicht zum Laufen bringen. Ich habe folgendes gemacht:

  1. Verwendet den Befehl 'env ARCHFLAGS = "- Arch x86_64" gem install pg - --with-pg-config =/Applications/Postgres.app/Contents/MacOS/bin/pg_config' aus der Postgres.app-Dokumentation
  2. Homebrew aktualisiert und Apple GCC 4.2 installiert
  3. Installierte die Xcode-Entwicklerwerkzeuge
  4. Mein $ PATH wurde aktualisiert, um auf die Bin-Verzeichnisse und die lib-Verzeichnisse von Postgres.app zu verweisen

Alles ohne Erfolg. Hier ist die spezifische Fehlermeldung, die ich erhalte:

Building native extensions with: '--with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config'
This could take a while...
ERROR:  Error installing pg:
    ERROR: Failed to build gem native extension.

    /Users/Brian/.rvm/rubies/Ruby-2.0.0-p353/bin/Ruby extconf.rb --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Using config values from /Applications/Postgres.app/Contents/MacOS/bin/pg_config
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
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/Brian/.rvm/rubies/Ruby-2.0.0-p353/bin/Ruby
    --with-pg
    --without-pg
    --with-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}/

Ich würde mich über jede Hilfe freuen, die Sie anbieten können. Vielen Dank!

66
blundin

Sie haben wahrscheinlich den falschen Pfad für --with-pg-config. Überprüfen Sie, ob er tatsächlich vorhanden ist.

Den richtigen Pfad zu pg_config finden Sie mit:

find /Applications -name pg_config

In der neuesten Postgres.app-Version lautet der Pfad:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config
246
Tom De Leu

In meinem Fall (mit Postgres.app v9.3.4.2) schien es nur beim Voranstellen der Umgebungsarchitekturflags zu funktionieren:

env ARCHFLAGS="-Arch x86_64" gem install pg -- \
--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config 
16
Marius Butuc

Da ich auf einem brandneuen Mac bin, musste ich folgendes tun:

  1. Installieren Sie Xcode-Tools aus dem App Store
  2. Öffnen Sie die Xcode-Tools und akzeptieren Sie die Lizenz
  3. Jetzt ausführen (hoffentlich ein zukunftssicherer Befehl):

    version=$(ls /Applications/Postgres.app/Contents/Versions/ | tail -1) gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/$version/bin/pg_config .

Wenn Sie Probleme haben, können Sie ein wenig Fehler beheben, indem Sie den tatsächlichen Fehler in der Datei mkmf.log überprüfen, den Sie beim Ausführen finden können (wenn Sie rvm verwenden):

cd ~/.rvm ; find . -name mkmf.log | grep pg
13
Louis Sayers

Ich konnte pg mit diesem Befehl installieren

    gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

Ich habe meinen Weg beim Laufen gefunden

    Sudo find / -name "pg_config"

und ich habe pg-0.17.1 erfolgreich installiert

5
ylemp

Um dieses Problem zu beheben, habe ich Postgres mit Homebrew installiert, wobei im Terminalfenster Folgendes verwendet wurde:

brew install postgres

Homebrew kann hier gefunden werden

http://brew.sh

2
Geoff Smith

Das hat für mich funktioniert:

gem install pg -- --with-pg-config=`which pg_config`
1
Gerry

das Hinzufügen des Postgress-Bin-Verzeichnisses zum Pfad führt ebenfalls zum Trick. Fügen Sie einfach den Behälter auf diese Weise hinzu. Bei aktuellen Installationen sorgt der neueste symbolische Link dafür, dass dieser Pfad für zukünftige Versionsaktualisierungen "stabil" sein sollte.

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
1
koen

Als Referenz für die Zukunft, da viele von uns neue Pfade für die neuen Versionsnummern veröffentlichen:

Momentan sehe ich einen Symlink namens latest in /Applications/Postgres.app/Contents/Versions/.

Sie sollten in der Lage sein:

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

Und vergessen Sie die Versionsnummer. Dies trifft möglicherweise nicht auf jede (ältere) Version zu, aber ich selbst habe nach einem Ausschnitt gesucht, den ich speichern und erneut verwenden kann.

0
Gabriel Osorio