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:
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!
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
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
Da ich auf einem brandneuen Mac bin, musste ich folgendes tun:
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
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
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
Das hat für mich funktioniert:
gem install pg -- --with-pg-config=`which pg_config`
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
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.