Ich versuche, PostgreSQL for Rails unter Mac OS X 10.6 zu installieren. Zuerst habe ich versucht, MacPorts zu installieren, aber das lief nicht gut, also habe ich die DMG-Installation mit einem Klick durchgeführt. Das schien zu funktionieren.
Ich vermute, ich muss die PostgreSQL-Entwicklungspakete installieren, aber ich habe keine Ahnung, wie das unter OS X geht.
Folgendes bekomme ich, wenn ich es versuche sudo gem install pg
:
$ sudo gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /Library/PostgreSQL/8.3/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** 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
--without-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=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
--with-pqlib
--without-pqlib
--with-libpqlib
--without-libpqlib
--with-ms/libpqlib
--without-ms/libpqlib
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.11.0 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.11.0/ext/gem_make.out
ruby-on-rails
ruby-on-rails-3
postgresql
rubygems
Jason Swett
quelle
quelle
pg_config
? Das sollte es uns leichter machen, zu helfen.Antworten:
HAT FUNKTIONIERT!
quelle
env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config
Ich habe hier die bestbewertete Antwort ausprobiert:
Aber als ich erneut versuchte, die Bundle-Installation auszuführen, hatte es den gleichen Fehler. Dann habe ich versucht, das gesamte Bundle mit ARCHFLAGS wie folgt zu installieren:
Hat für mich gearbeitet! Stellen Sie sicher, dass Sie x86_64 durch i386 ersetzen, je nachdem, über welche Architektur Sie verfügen.
quelle
Ich hatte gerade dieses Problem bei der Verwendung der EnterpiseDB .dmg. Wenn das der gleiche Gedanke ist, den Sie verwendet haben, habe ich es durch Angabe der richtigen Architektur zum Laufen gebracht:
Es gibt einige Tutorials im Web, in denen eine andere Architektur angegeben wird (z. B. "-arch x86_64" für Benutzer von MacPorts), die jedoch bei mir nicht funktioniert haben, da ich die Installation einzelner Dateien verwendet habe.
quelle
Bei Verwendung von Yosemite:
Dann:
Und (optional) schließlich, wenn Sie Autovacuum starten möchten ...
quelle
Vielleicht können Sie dieses versuchen:
Um die Architektur Ihrer Bibliothek zu kennen, können Sie verwenden
was in meinem Fall nur 1 Architektur ergab (installiert über Homebrew):
quelle
Lösung: PostgreSQL mit Homebrew neu installiert.
quelle
Fake out
gem
durch Präfixieren der entsprechenden Umgebungsvariablen. Wenn Sie von MacPorts installiert haben, sollten Sie in der Lage sein, die folgenden Schritte auszuführen:Von dort herausziehen
LIBDIR
,INCLUDEDIR
,CPPFLAGS
,LIBS
undLDFLAGS
(die, die ich bekommen denken Sie laufenLIBDIR
, jedoch). Dann würden Sie laufen:Das sollte es für dich tun. Lass es mich wissen, wenn es nicht so ist.
quelle
locate pg_config
CPPFLAGS
oderLDFLAGS
(ich weiß nicht, was das sind, sorry).locate pg_config
hat mir ein paar Sachen gezeigt. Und ich habe versucht, PostgreSQL einfach über MacPorts zu installieren und Ihren Befehl zu verwenden - hat nicht funktioniert.LDFLAGS
nicht auf das Verzeichnis gesetzt wurde, das enthieltlibpq
. Siehe oben für Details.Das Problem, das wir hatten, war ziemlich seltsam.
Als wir jedoch eine Bundle-Installation durchgeführt haben, wurde der Bundler nicht für die von rbenv installierte Ruby-Version installiert. Bei der Eingabe der Bundle-Installation wurde der Bundler des Systems verwendet.
Stellen Sie daher vor dem Ausführen der Bundle-Installation sicher, dass Sie den Bundler durch Ausführen installiert haben
quelle
Ich glaube nicht, dass Sie die Postgres-Entwicklungsdateien benötigen. Alles, was Sie benötigen, sollte in Ihrem Installationsprogramm enthalten sein. Es ist wahrscheinlicher, dass sich der Pfad, auf dem sie installiert sind, nicht in Ihrem Umgebungspfad befindet. Daher kann gem sie nicht finden, wenn es versucht, pg zu kompilieren.
Sie sollten nicht
gem install pg
als root ausgeführt werden müssen. Wenn Sie dies tun, enthält Ihr PATH (der PATH von root, wenn er mit sudo ausgeführt wird) wahrscheinlich nicht die erforderlichen Informationen.Folgendes funktioniert normalerweise bei mir:
quelle
gem install pg
(zusammen mit Ihren beiden vorherigen Befehlen) ausführen, erhalten Siesudo gem install pg
immer noch genau die gleichen Ergebnisse./Library/PostgreSQL/...
Haben Sie auch an den richtigen Ort gewechselt, an dem sich Ihre Kopie der Postgres-Installation befindet?sudo port install postgresql83 postgresql83-server
, ähnlich wie in den folgenden Anweisungen: flow88.com/2010/06/installing-postgresql-for-rails-on-mac-os-x . Es scheint, dass das eigenständige Installationsprogramm 32-Bit ist, daher möchten Sie Ihre Arch-Flags auf 32-Bit setzen, selbst wenn Ihr Computer 64-Bit ist. Wenn Sie es nicht zum Laufen bringen können, würde ich empfehlen, es über MacPorts zu deinstallieren und neu zu installieren und dann die obigen Anweisungen auszuführen. Hoffentlich hilft das!Dies ist, was es letztendlich für mich getan hat (Kombination mehrerer zuvor bereitgestellter Lösungen zusammen mit anderen Beiträgen):
$ sudo env ARCHFLAGS = "- arch x86_64" gem install pg - with-pg-include = / Bibliothek / PostgreSQL / 9.6 / include /
quelle
Die
ARCHFLAGS
Antwort, die andere vorgeschlagen haben, funktioniert nicht, wenn Sie irgendwie eine 64-Bit-Version von Postgres (die von Homebrew installiert wird) und eine 32-Bit-Version von Ruby erhalten haben. Aus irgendeinem Grundrbenv
besteht ich darauf, Ruby 1.9.2-p290 als 32-Bit zu erstellen, was es unmöglich macht, eine Verknüpfung mit 64-Bit-Postgres herzustellen.Überprüfen Sie die Architektur Ihrer Ruby-Binärdatei mit
oder wenn Sie rbenv verwenden
Und vergleichen Sie mit Ihren Postgres:
Wenn es eine Fehlanpassung gibt, müssen Sie Postgres oder Ruby neu installieren. Mit rbenv habe ich das gelöst, indem ich zu einer anderen Version gewechselt habe:
1.9.3-p194
statt1.9.2-p290
.quelle
So habe ich es geschafft, an Mavericks zu arbeiten. Hinweis: Ich hatte bereits postgresql 9.3 von Homebrew installiert.
Aktualisieren Sie Xcode aus dem App Store auf 5.0
Installieren Sie die Befehlszeilen-Entwicklertools
xcode-select --install
Stimmen Sie der Xcode-Lizenz zu
sudo xcodebuild -Lizenz
Installieren Sie gem
ARCHFLAGS = "- arch x86_64" gem install pg
quelle
Also habe ich das gemacht ;-)
quelle
Ich bin wahrscheinlich etwas spät zur Party hier, aber in meinem Fall habe ich rbenv verwendet und auf Ruby 2.2.3 aktualisiert. Ich musste Bundler installieren, um meinen zum Laufen zu bringen. Ich hatte eine alte Systemversion.
gem install bundler
quelle
Wie oben erwähnt, hat dies mit der Tatsache zu tun, dass zwei Rubinbögen auf rbenv vorhanden sind.
/usr/bin/ruby: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [i386:Mach-O executable i386]
Ich musste einfach denpg
Edelstein-Forcing-x86_64
Bogen installieren , um mit diesem Befehl verwendet zu werden:sudo env ARCHFLAGS="-arch x86_64" gem install pg
Denken Sie daran, Ihre
bash_profile
auf dem neuesten Stand zu haltenFügen Sie den Pfad Ihres Postgres hinzu. In diesem Fall verwende ich standardmäßig die Postgres-App (
OSX
) anstelle vonbrew
( https://postgresapp.com/ ). Dies ist der Speicherort:export PATH=/Applications/Postgres.app/Contents/Versions/10/bin:$PATH
Bash mit neu laden mit
sudo vi ~/.bash_profile
Danach konnte ich endlich erfolgreich installieren
pg gem
Hoffe das hilft!
quelle
Auf dem Mac können Sie dies versuchen (funktioniert bei mir): gem install pg - with-pg-include = / Library / PostgreSQL / 9.5 / include Abrufen: pg-1.0.0.gem (100%) Erstellen nativer Erweiterungen mit: ' with-pg-include = / Library / PostgreSQL / 9.5 / include 'Dies kann eine Weile dauern ... Erfolgreich installiert pg-1.0.0 Parsing-Dokumentation für pg-1.0.0 Installation der ri-Dokumentation für pg-1.0.0 Die Installation der Dokumentation ist abgeschlossen für pg nach 3 sekunden 1 gem installiert
(In diesem Teil "/Library/PostgreSQL/9.5/include" müssen Sie Ihren Postgres-Pfad angeben.)
quelle