Schienen 3 - pg gem kann nicht installiert werden

98

Wenn ich versuche, Bundle auszuführen (Bundle-Installation), bekomme ich die ganze Zeit

Installing pg (0.13.2) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/ryan/.rvm/rubies/ruby-1.9.2-p290/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.

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=/Users/ryan/.rvm/rubies/ruby-1.9.2-p290/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


Gem files will remain installed in /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2 for inspection.
Results logged to /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2/ext/gem_make.out
An error occured while installing pg (0.13.2), and Bundler cannot continue.
Make sure that `gem install pg -v '0.13.2'` succeeds before bundling.

Ich verwende Mac OS X 10.6, die Version von installiertem PostgreSQL ist 9.1. Ich habe festgestellt, dass das Problem in libpq-dev liegt. Wie kann ich das installieren / beheben?

user984621
quelle
2
Wie haben Sie Postgres auf Ihrem Mac installiert?
Shingara
1
auf diese Weise
user984621
on_click Installer? Flink? oder MacPort?
Shingara
Ich habe versucht, das auf diese Weise zu installieren : sudo port install libpq-dev, aber ein anderes Problem - Error: Port libpq-dev not found To report a bug, see <http://guide.macports.org/#project.tickets>. Das ist schrecklich, immer noch einige Probleme ...
user984621
1
Siehe diese Frage: [hier] [1] [1]: stackoverflow.com/questions/10321189/…
banditKing

Antworten:

78

Wie in Ihrem Fehlerprotokoll angegeben, müssen Sie den Pfad zur pg_config übergeben. Versuchen Sie, den Edelstein zu installieren, indem Sie:

gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG'

Wenn Sie nicht sicher sind, wo sich Ihre pg_config befindet, und davon ausgehen, dass Sie unter Linux oder Mac arbeiten, können Sie den folgenden Befehl ausführen:

which pg_config

Ihre pg-config kann sich an verschiedenen Orten befinden, je nachdem, wie Sie postgres installiert haben.

Ethan
quelle
Hinweis: Das Binärpaket von der Postgres-Site enthält keine Entwicklungsheader oder das pg_configProgramm.
Tadman
3
Das Binärpaket von hier: enterprisedb.com/products-services-training/pgdownload#osx sicherlich tut beides enthalten pg_config(zB bei /Library/PostgreSQL/9.1/bin/pg_configfür 9.1.x) und die Entwicklungs - Header. Es ist das, was ich benutze, um das pgJuwel in der Entwicklung zu testen .
Michael Granger
8
Wäre nicht which pg_configschneller als find / -name pg_config?
Justin D.
Nehmen Sie eine kleine Änderung an Ihren Befehlszeilenargumenten vor. Das Ersetzen der Version durch Ihre aktuelle sollte in Ordnung sein. Hier ist meine Befehlszeile: sudo env ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-include = / Bibliothek / PostgreSQL / 9.1 / include / --with-pg-lib = / Bibliothek / PostgreSQL / 9.1 / lib /
Rod Paddock
13
Unter OSX können Sie auch Brew verwenden, um die Header abzurufen, brew install libpqxxund alles wird gut.
Vetsin
99

Wenn Sie unter Linux arbeiten, könnte Sie interessieren, was für mich funktioniert hat:

sudo apt-get install postgresql
sudo apt-get install libpq-dev

Dann

gem install pg

dann

bundle install

src: http://wikimatze.de/installing-postgresql-gem-under-ubuntu-and-mac

EE33
quelle
1
danke, wie es in meinem Fall ist - keine Notwendigkeit, Bundle
Gem
21
Nicht geeignet für OS X.
dfrankow
1
Arbeitete für mich ab November 2013 mit Ubuntu 13.04!
Starkers
Warum hat dies so viele positive Stimmen, wenn es eindeutig für das falsche Betriebssystem ist?
Sevenseacat
1
@sevenseacat gibt eindeutig an, auf welchem ​​Betriebssystem es verwendet werden soll. Und offensichtlich finden viele Leute mit Linux-Betriebssystemen diese Antwort, wenn sie dieses Problem untersuchen.
EE33
57

Wenn Sie Postgress.app verwenden, möchten Sie Zugriff auf die Befehlszeilentools . Geben Sie die folgende Zeile in Ihr Terminal oder Ihr PATH-Profil ein :

 PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

gem install pgsollte jetzt funktionieren. (Das hat bei mir funktioniert.)

Hinweis Der Pfad für neue Versionen sieht folgendermaßen aus:

/Applications/Postgres.app/Contents/Versions/<version>/bin
Ari
quelle
3
Vielen Dank! Ich verbrachte eine halbe Stunde damit, Dinge durchzugehen, die nicht funktionierten, und fand sie schließlich hier unten begraben. : D
Peter Brown
1
Tolle Lösung, die kein Brauen erfordert.
Lucian303
7
Beachten Sie jedoch, dass sich der Postgre.app-Patch in der 93-Version geändert hat. es ist jetzt: /Applications/Postgres93.app/Contents/MacOS/bin
Alain
2
Dies funktionierte für mich, obwohl sich mein Papierkorb an einem ganz anderen Ort befand -> /Library/PostgreSQL/9.3/bin
Jeremiah
5
Dies ist jetzt - /Applications/Postgres.app/Contents/Versions/9.3/binab 9.3.5, wenn Sie die Postgres.app
Ashley
21

Wenn Sie Homebrew haben, geben Sie einfach Folgendes ein:

$ Brew install postgresql

Wenn Sie es nicht haben, laden Sie es herunter und geben Sie es in Ihr Terminal ein:

ruby -e "$ (curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install )"

user2373148
quelle
12

Suche nach libpq:

brew search libpq

Sollte ausgeben libpqxx

Versuchen Sie dann, es zu installieren:

brew install libpqxx
jlucasps
quelle
8

Sie müssen nur installieren libpq-dev:

sudo apt-get install libpq-dev

Dann sollte der Edelstein gut installiert werden.

Travis Reeder
quelle
8
Nicht geeignet für OS X.
dfrankow
In meinem Fall hat nur das geholfen. Danke!
Kovpack
7

Befolgen Sie die Anweisungen nach der Installation: http://postgresapp.com/documentation/configuration-ruby.html

Stellen Sie zum Installieren des pg-Gems sicher, dass Sie $ PATH korrekt eingerichtet haben (wie unter http://postgresapp.com/documentation/cli-tools.html angegeben ), und führen Sie es dann aus

sudo ARCHFLAGS="-arch x86_64" gem install pg

Ich empfehle dringend , beide Seiten zu lesen. Ich habe sie nur überflogen und 1 Stunde meines Lebens verloren. Lesen Sie sie, Problem gelöst.

CGK
quelle
Funktioniert unter OSX 10.9.5, Standard Ruby Version 2.0, Rbenv Local Version 1.9.3.
Jlucasps
Funktioniert unter OSX 10.11 DANKE
Yarin
Funktioniert unter OSX 10.11.4. Vielen Dank!!
Martyn Chamberlin
3

Das Problem, das ich hatte, war, dass es aus irgendeinem Grund versuchte, mit /usr/bin/gcc-4.2 zu kompilieren. Ich habe das herausgefunden, indem ich try_cpp in mkmf.rb (das ich im Stack-Trace gesehen habe) geändert habe, um eine Ausnahme mit der fehlgeschlagenen Kompilierungszeile auszulösen.

Ich habe gcc mit gcc-4.2 verknüpft und es hat funktioniert:

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2

Warum wurde versucht, gcc-4.2 zu verwenden? Keine Ahnung.

Die eigentliche Kompilierungszeile:

/usr/bin/gcc-4.2 -E -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/backward -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/usr/local/Cellar/postgresql/9.1.4/include  -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration  -fno-common -pipe  conftest.c -o conftest.i (RuntimeError)
dfrankow
quelle
3

Ich habe das gleiche Problem, aber mein Postgres wurde installiert

/Library/PostgreSQL/9.3

Das ~ / .bash_profile wurde aktualisiert, indem Folgendes hinzugefügt wurde:

export PATH=/Library/PostgreSQL/9.3/bin:$PATH

Öffne ein neues Terminal, starte bundle updateund es hat auch bei mir funktioniert. Danke Ari.

Trang Tung Nguyen
quelle
Aber damit ich arbeiten kann, muss ich die Version überprüfen und dann PATH = / Applications / Postgres.app / Contents / Versions / 9.4 / bin: $ PATH
T.Kul
1

Sie können eine Build-Konfigurationsoption festlegen bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_configund gem install pgohne Optionen verwenden (der Pfad zu pg_config kann für Sie unterschiedlich sein, dieser ist für Postgresapp 9.3.5.0).

Konstantine Kalbazov
quelle
1

Ich hatte das gleiche Problem in meinem openSUSE13.1 KDE-Computer. Vor diesem Problem begegnete ich mir nur die Pakete installiert hatte postgresqlund postgresql-servermit zypperBefehl. Dann wieder installiert 2 weitere Pakete:

[arup@to_do_app]$ sudo zypper in postgresql-devel postgresql-contrib
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...
#....

Dann rannte ich wieder bundle installund Erfolg !!!

Arup Rakshit
quelle
0

Deinstallieren Sie zunächst alle Homebrew-Versionen. Mit der Option --force werden alle Versionen deinstalliert.

brew rm postgresql --force

Ändern Sie die Pfade entsprechend für Ihre Version.

sudo /sbin/SystemStarter stop postgresql-8.4
sudo rm -rf /Applications/PostgreSQL\ 8.4
sudo rm -rf /etc/postgres-reg.ini
sudo rm -rf /Library/StartupItems/postgresql-8.4
sudo rm -rf /Library/PostgreSQL/8.4
sudo dscl . delete /users/postgres

Bearbeiten Sie / etc / profile und löschen Sie alle Zeilen, die auf "postgres" verweisen.

nano /etc/profile

Installieren Sie PostgresSQL

brew update
brew install postgresql

Installieren Sie de PG GEM

gem install pg

Das ist es. Grüße.

pabloverd
quelle
0

Sie können zunächst überprüfen, ob sich in Ihrem Terminal eine postrgresql-Datei befindet, indem Sie zur lib-Datei wechseln. Gehen Sie zu cd ~ / opt / local / lib / und geben Sie dann ls und die Eingabetaste ein. Dies zeigt Ihnen eine Liste aller Dateien, die sich im lib-Verzeichnis befinden.

1.Wenn Sie keine Postreseql haben, können Sie diese über Macports herunterladen. sudo port install postgresql93 @ 9.3.2_1

CD jetzt zurück in Ihren Ordner, den Sie installieren möchten

  1. Damit Ihre pg mit Ihrer postgesql-Datei funktioniert, die Sie haben oder gerade heruntergeladen haben, installieren Sie die pg - --with-pg-config = / opt / local / lib / postgresql93 / bin / pg_config

Führen Sie nun die Bundle-Installation aus

user3256740
quelle
0

Auf Fedora:

dnf install postgresql-devel
Mayuresh Srivastava
quelle
0

Was für mich bei El Capitan funktionierte, war das Upgrade von Ruby von der Systemvorgabe auf 2.3.1. Es schien die richtigen Bibliotheken zu finden, die das pgJuwel benötigte.

Abe Petrillo
quelle