Ich versuche das pg gem zu installieren, um wieder mit meinen Rails-Projekten zu arbeiten. Aber ich bekomme diesen Fehler:
Native Erweiterungen erstellen. Dies kann eine Weile dauern ... FEHLER: Fehler beim Installieren von pg: FEHLER: Fehler beim Erstellen der nativen Gem-Erweiterung.
/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If
Das Erstellen schlägt fehl. Bitte versuchen Sie es erneut mit --with-pg-config = / path / to / pg_config und prüfen Sie, ob libpq-fe.h ... nein. Der Header 'libpq-fe.h * kann nicht gefunden werden. Makefile konnte aus irgendeinem Grund nicht erstellt werden, wahrscheinlich fehlen die erforderlichen Bibliotheken und / oder Header. Überprüfen Sie die Datei mkmf.log auf weitere Details. Möglicherweise benötigen Sie Konfigurationsoptionen.
Bereitgestellte Konfigurationsoptionen: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include = $ {opt-dir} / include --with-opt-lib - ohne-opt-lib = $ {opt-dir} / lib - mit-make-prog - ohne-make-prog --srcdir =. --curdir --ruby = / Users / jeanosorio / .rvm / rubies / ruby-2.0.0-p247 / bin / ruby --with-pg --without-pg --with-pg-config --without-pg -config --with-pg_config --without-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} /
Gem-Dateien bleiben zur Überprüfung in /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0 installiert. Ergebnisse protokolliert unter /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out
Ich habe alles versucht, was ich bei stackoverflow gefunden habe, aber ich erhalte immer noch diesen Fehler.
Wenn ich versuche, postgresql mit Brew zu installieren, erhalte ich folgende Warnung:
Warnung: postgresql-9.2.4 ist bereits installiert, es ist nur nicht verknüpft
Wenn ich versuche zu verlinken
Brew Link Postgresql Linking /usr/local/Cellar/postgresql/9.2.4 ... Warnung: Postgresql konnte nicht verlinkt werden. Verknüpfung aufheben ...
Fehler: Symlink-Datei konnte nicht verknüpft werden: /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 / usr / local / share / man / man7 ist nicht beschreibbar. Sie sollten die Berechtigungen ändern.
Hilfe bitte
HINWEIS: Ich habe die Befehlszeilentools für Außenseiter bereits installiert.
Wenn ich mit homebrew deinstalliere und erneut versuche, es zu installieren, wird folgende Fehlermeldung angezeigt:
==> Herunterladen von http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2
#################################################### ################# 100,0%==> Patching-Patching-Datei src / pl / plpython / Makefile-Patching-Datei Contrib / uuid-ossp / uuid-ossp.c ==> ./configure --prefix = / usr / local / Cellar / postgresql / 9.2.4 - datadir = / usr / local / Cellar / postgresql / 9.2.4 / share / postgresql --docdir = / usr / local / Cellar / p ==> Installationswelt erstellen ==> Vorsichtsmaßnahmen
Notizen erstellen
Wenn Builds von PostgreSQL 9 fehlschlagen und Sie Version 8.x installiert haben, müssen Sie möglicherweise zuerst die vorherige Version entfernen. Siehe:
https://github.com/mxcl/homebrew/issues/issue/2510Erstellen / Aktualisieren einer Datenbank
Wenn dies Ihre erste Installation ist, erstellen Sie eine Datenbank mit: initdb / usr / local / var / postgres -E utf8
Informationen zum Migrieren vorhandener Daten aus einer früheren Hauptversion (vor 9.2) von PostgreSQL finden Sie unter:
http://www.postgresql.org/docs/9.2/static/upgrading.htmlErweiterungen laden
Standardmäßig erstellt Homebrew alle verfügbaren Contrib-Erweiterungen. Führen Sie in der psql-Befehlszeile
Folgendes aus, um eine Liste aller verfügbaren Erweiterungen anzuzeigen : SELECT * FROM pg_available_extensions;Um einen der Erweiterungsnamen zu laden, navigieren Sie zur gewünschten Datenbank und führen Sie Folgendes aus: CREATE EXTENSION [Erweiterungsname];
Führen Sie beispielsweise Folgendes aus, um die tablefunc-Erweiterung in die aktuelle Datenbank zu laden: CREATE EXTENSION tablefunc;
Weitere Informationen zum Befehl CREATE EXTENSION finden Sie unter:
http://www.postgresql.org/docs/9.2/static/sql-createextension.html Weitere Informationen zu Erweiterungen finden Sie unter:
http://www.postgresql.org/ docs / 9.2 / static / contrib.htmlAndere
Für einige Computer muss möglicherweise gemeinsam genutzter Speicher bereitgestellt werden :
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC Bei der Installation des Postgres-Gems, einschließlich ARCHFLAGS, wird empfohlen: ARCHFLAGS = "- arch x86_64" gem install pgInformationen zum Installieren von Edelsteinen ohne Sudo finden Sie im Homebrew-Wiki.
So starten Sie postgresql beim Anmelden: ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents Laden Sie dann postgresql jetzt: launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist Or. En Wenn Sie launchctl nicht möchten / benötigen, können Sie einfach Folgendes ausführen: pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start Warnung: Postgresql konnte nicht verknüpft werden. Aufheben der Verknüpfung ... Fehler: Der
brew link
Schritt wurde nicht erfolgreich abgeschlossen. Die erstellte Formel ist jedoch nicht mit / usr / local verknüpft. Sie können es erneut mit `brau link postgresql '==> Zusammenfassung 🍺 /usr/local/Cellar/postgresql/9.2 versuchen .4: 2831 Dateien, 38 Millionen, erstellt in 4,9 Minuten
LÖSUNG:
Ich führe diesen Befehl aus, um die Berechtigung des Ordners zu ändern:
sudo chown jeanosorio / usr / local / share / man / man7
Dann
Brew Link Postgresql Linking /usr/local/Cellar/postgresql/9.3.1 ... 421 Symlinks erstellt
Und schlussendlich:
sudo ARCHFLAGS = "- arch x86_64" gem install pg
Abrufen: pg-0.17.0.gem (100%) Erstellen nativer Erweiterungen. Dies kann eine Weile dauern ... Erfolgreich installiert pg-0.17.0
export CONFIGURE_ARGS="with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config"
gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
gem install pg -- --with-pg-config=/Applications//Postgres.app/Contents/Versions/9.3/bin/pg_config
Verwenden Sie Gebräu, um zu bekommen
postgresql
Überprüfen Sie, ob Sie pg_config im installierten Gebräu haben. Ich habe meine in gefunden
Überprüfen Sie über:
Sobald Sie fertig sind, installieren Sie den
pg
Edelstein mitquelle
ls /usr/local/Cellar/postgresql/9.*/bin/pg_config
, um den richtigen Weg zu finden und kombiniertenv ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=$(ls /usr/local/Cellar/postgresql/9.*/bin/pg_config)
Ich konnte Postgres nicht über MacPorts installieren. Stattdessen habe ich Postgress.app installiert . und angerufen
Hinweis: In neueren Versionen (mindestens in 9.3) lautet der Pfad tatsächlich:
/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
quelle
Wenn Sie Homebrew haben, geben Sie einfach Folgendes ein:
quelle
gem install pg
Hier ist eine weitere Alternative für den Fall, dass Sie das postgresql-Installationsprogramm direkt verwenden möchten. Es gibt ein paar Reifen, durch die du springen musst, nachdem du auf Außenseiter aktualisiert hast. Folgendes habe ich getan:
Installieren Sie zuerst die xcode-Befehlszeilentools:
Laden Sie die neueste Version von PostgreSQL (9.3.1) herunter und installieren Sie sie. In meinem Fall habe ich nur das grafische Installationsprogramm verwendet. Hier ist der Link zur Downloadseite:
Wählen Sie einfach alle Standardeinstellungen aus. In meinem Fall hat es postgres in das folgende Verzeichnis installiert. Wenn Sie es in einem anderen Verzeichnis installiert haben, merken Sie sich einfach den Pfad, den Sie gewählt haben, da Sie ihn in Kürze benötigen.
Wenn Sie jetzt versuchen, das neueste pg gem (0.17.0) zu installieren, müssen Sie einige Optionen in der Befehlszeile übergeben. Das habe ich benutzt:
Wenn Sie postgres an einem anderen Speicherort installiert haben, müssen Sie den Pfad zur Datei pg_config festlegen.
Wenn beim Versuch, das pg-Gem zu installieren, eine fehlende 'libpq.5.dylib'-Datei beanstandet wird, müssen Sie einen Symlink erstellen, der auf den tatsächlichen Speicherort dieser Datei verweist. Postgres sucht danach in Ihrem Verzeichnis / usr / local / lib /. Erstellen Sie dort einen Symlink und leiten Sie ihn an den tatsächlichen Speicherort weiter. In meinem Fall musste ich laufen:
Wenn Sie das getan haben, versuchen Sie erneut, den Edelstein erneut zu installieren, und hoffentlich funktioniert er für Sie genauso wie für mich.
quelle
Auf Yosemite musste ich keinen
pg_config
Pfad angeben . Das Folgende hat es geschafft.Scheint, als wäre die Architekturflagge der Schlüssel.
quelle
In meinem Fall (ich brauchte PG 0.16.0 auf Mavericks) habe ich postgresql über MacPorts installiert
und dann
Für die neueste Version müssen Sie -v '0.16.0' abziehen.
Wenn Sie Homebrew installiert haben, installieren Sie MacPorts nicht, bevor Sie sich über deren Koexistenz informiert haben
quelle
Platzieren Sie die fehlenden
--with-pg-config
in Bundlers Konfigurationsdatei:/Users/<your_user>/.bundle/config
um Ihnen das Leben zu erleichtern.Dann
bundle install
wieder laufen .quelle
Das ist für mich in Ordnung! (Postgres 93, Macox 10.9.1) 1. download @ http://postgresapp.com/ und dann
quelle
Ich war 3 Tage lang bei meiner Bundle-Installation festgefahren. Versucht Alles wie das Hinzufügen von env ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.5_1 / bin / pg_config
Ich konnte sehen, dass pg gem nach diesem Befehl installiert wurde, aber es wurde immer noch nicht über die Bundle-Installation installiert, was sehr schmerzhaft war, da ich nicht weiß, was ich in Gemfile schreiben soll, außer gem 'pg'
Was für mich schließlich funktionierte, war festzustellen, dass sich meine pg_config in /Library/PostgreSQL/9.3/bin/pg_config befand und die Installation des Gemfile-Bundles standardmäßig in / usr / local / bin / pg_config angezeigt wird
Ich habe gerade den folgenden Befehl ausgeführt und Magie ist passiert. Bundle config build.pg --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config
quelle
In meinem Fall hat es nicht funktioniert, wenn Sie die Arch-Flags OS X 10.10.3 und postersApp 9.4 nicht angegeben haben
quelle
Der einfachste Weg, dies zu beheben, bestand darin, Postgres.app zu verwenden und meine env-Variablen so einzurichten, dass sie
gem install pg
einfach funktionieren (anstatt das--with-pg-config
Flag zu benötigen ).Verwenden von Homebrew Cask ,
quelle
Das hat bei mir funktioniert:
quelle
In meinem Fall habe ich die über Homebrew installierte Version deinstalliert und zu Postgres.app (v9.3.4.2 zum Zeitpunkt des Schreibens) gewechselt.
Es schien nur zu funktionieren, wenn die Flags der Umgebungsarchitektur vorangestellt und der Pfad zu angegeben wurden
pg_config
. Ihr Kilometerstand kann variieren, daher kann diese Antwort bei Variationenpg_config
des Standorts hilfreich sein .Hier ist der letzte vollständige Befehl, der für mich funktioniert hat:
quelle
sudo ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / bin / pg_config
quelle
ARCHFLAGS="-arch x86_64" bundle install
Ich habe den gleichen Fehler beim Ausführen der Bundle-Installation in Bezug auf das pg gem (unter Mac OS X Mavericks) erhalten. Nach stundenlangen Recherchen fand ich die Lösung. Ich habe Postgres mit Homebrew installiert
Nach der Installation habe ich mit postgres eine neue Rails-App erstellt. Ich rannte
ohne Erfolg (habe den gleichen Fehler wie die Frage). ich benutzte
Um herauszufinden, wo mein Postgres installiert war, kehrte es zurück
Bevor ich die Bundle-Installation erneut ausführen konnte, musste ich den globalen Pfad zu build.pg ändern, indem ich Folgendes ausführte
dann habe ich wieder bundle install ausgeführt und voila! Ich habe die Postgres verwendet, auf denen Brew sie installiert hat.
quelle
Führen Sie unter OS X Mavericks mit der neuesten Postgres-App die folgenden Schritte mit sudo-Berechtigungen aus
quelle
Was für mich unter 10.9.3 mit Xcode 5.1.1 funktioniert hat, war Folgendes:
Ich brauchte S. 0.17.1
quelle
Für jede verlorene Seele gibt es immer noch dieses Problem ohne Lösung und haben einen Rubin und Postgres
brew
installiert . Hier sind die folgenden Schritte, um sicherzustellen:ruby
nicht mit dem--universal
Flag installiert wurde .--universal
das Schwierigste , was ich hatte, was die letzte Wurzel des Problems war.postgresql
ordnungsgemäß mitinitdb
undcreatedb
Befehlen initialisiert haben (suchen Sie an anderer Stelle nach Schritten, um dies zu tun).Xcode
(optional) undcommand line tools
installiert ist; auf dem Terminal:xcode-select --install
sudo xcodebuild -license
(falls Xcode installiert ist) oder öffnen Sie die Anwendung und akzeptieren Sie die Lizenzvereinbarung.which ruby
,which gem
Undwhich postgres
zeigen soll/usr/local/bin/ruby
,/usr/local/bin/gem
und/usr/local/bin/postgres
respektvoll .Auf dem Terminal laufen:
gem install pg -- --with-pg-config=/usr/local/bin/pg_config
env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_config
Um sicherzustellen, dass alle diese Schritte erfüllt sind, konnte ich die folgenden Fehler beheben:
ruby.h
Header-Fehlerdeveloper tools installed first
Errorquelle
Suchen Sie zunächst den Speicherort von pg_config
Die Antwort lautet /Library/PostgreSQL/9.1/bin/pg_config in meiner Konfiguration (MAC Maverick)
Versuchen Sie dann, etwas wie unten zu installieren
gem install pg - --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config
Wenn dies nicht funktioniert, versuchen Sie zu überprüfen, auf welche Weise Sie postgresql installiert haben
Brew / Mac Port / Setup
dann müssen Sie die entsprechende Option dazu ausprobieren.
Danke dir.
RAM
quelle
Ich hatte das gleiche Problem, das war die Lösung, die ich gefunden habe.
Wenn Sie ausführen
brew doctor
, wird Ihnen mitgeteilt, dass Sie wahrscheinlich etwas ohne Brew installiert haben, das die Berechtigungen für einige Ordner geändert hat. Daher müssen Sie die Berechtigungen für diesen Ordner wieder an Sie ändern.Im Inneren
/usr/local/share/man
können Sie Folgendes tun:sudo chown [yourusername] man7
Und dann:
brew link postgres
Ich hoffe es hilft!
quelle
In ähnlicher Weise hat 'Bundle Update' nach der Installation von Mavericks einen Fehler auf dem pg gem ausgelöst, der nur in der Produktion und nicht lokal verwendet wird.
Ich verwende Brew, um meine Pakete zu verwalten, und postgresql wurde bereits installiert, aber es wurde immer noch der Fehler 'no pg_config' angezeigt.
Die Lösung bestand darin, nur "postgresql deinstallieren" und dann "postgresql installieren". Danach konnte ich das Bundle-Update sofort erfolgreich ausführen.
quelle
dann
arbeitete am 10.10.2
quelle
Wenn nach dem Ausprobieren hier immer noch nichts installiert werden kann, öffnen Sie Xcode und akzeptieren Sie die Lizenzvereinbarung.
quelle
Für mich sah die Fehlermeldung folgendermaßen aus:
Installing pg 0.18.4 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
...
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config
Wie die Fehlermeldung zeigt, wird versucht, den Befehl / das Skript "pg_config" auszuführen. Fügen Sie es einfach dem Pfad hinzu, von wo aus sich Ihre Postgres-Installation befindet. In meinem Fall habe ich:
export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin:$PATH
dann
bundle
Das ist es.
quelle
Postgres 9.4:
quelle