wake-up-neo.net

Rails 3 - pg gem kann nicht installiert werden

Wenn ich versuche, Bundle (Bundle Install) auszuführen, 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 installierte Version von PostgreSQL ist 9.1. Ich habe festgestellt, dass das Problem in libpq-dev liegt. Wie kann ich das installieren/reparieren?

96
user984621

Wie in Ihrem Fehlerprotokoll angegeben, müssen Sie den Pfad an pg_config übergeben. Versuche den Edelstein zu installieren mit:

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

Wenn Sie nicht sicher sind, wo sich Ihre pg_config befindet, und wenn Sie Linux oder Mac verwenden, können Sie den folgenden Befehl ausführen:

which pg_config

Ihre pg-config kann sich an verschiedenen Orten befinden, abhängig davon, wie Sie Postgres installiert haben.

77
Ethan

wenn Sie unter Linux laufen, interessieren Sie sich vielleicht für das, 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

98
E.E.33

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

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

gem install pg sollte jetzt funktionieren. (Dies hat bei mir funktioniert.)

Note Neuer Versionspfad sieht folgendermaßen aus:

/Applications/Postgres.app/Contents/Versions/<version>/bin
56
Ari

Wenn Sie Homebrew haben, geben Sie einfach Folgendes ein:

$ brew install postgresql

Wenn Sie es nicht haben, laden Sie es in Ihrem Terminal ein:

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

21
user2373148

Suche nach libpq:

brew search libpq

Sollte libpqxx ausgeben

Dann versuchen Sie es zu installieren:

brew install libpqxx
12
jlucasps

Sie müssen nur libpq-dev installieren:

Sudo apt-get install libpq-dev

Dann sollte der Edelstein gut installiert werden.

7
Travis Reeder

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

Vergewissern Sie sich, dass Sie Ihren $ PATH korrekt eingerichtet haben (wie in http://postgresapp.com/documentation/cli-tools.html angegeben), und führen Sie dann aus, um das pg gem zu installieren

Sudo ARCHFLAGS="-Arch x86_64" gem install pg

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

7
CGK

Das Problem, das ich hatte, war, dass es aus irgendeinem Grund versuchte, mit /usr/bin/gcc-4.2 zu kompilieren. Ich fand das heraus, indem ich try_cpp in mkmf.rb (was ich in der Stack-Ablaufverfolgung sah) änderte, um eine Ausnahmebedingung mit der fehlgeschlagenen Compile-Zeile auszulösen.

Ich habe gcc auf gcc-4.2 soft-linked und es hat funktioniert:

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

Warum wurde gcc-4.2 verwendet? Keine Ahnung.

Die eigentliche Kompilierzeile:

/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)
3
dfrankow

Ich habe die gleiche Ausgabe, 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 update und es hat auch für mich funktioniert. Danke Ari.

3

Ich hatte das gleiche Problem in meiner openSUSE13.1 KDE-Maschine. Vor diesem Problem hatte ich nur die Pakete postgresql und postgresql-server mit zypper installiert. Dann nochmal 2 weitere Pakete installiert:

[[email protected]_do_app]$ Sudo zypper in postgresql-devel postgresql-contrib
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...
#....

Dann lief ich wieder bundle install und Erfolg !!!

1
Arup Rakshit

Sie können eine Build-Konfigurationsoption bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config festlegen und gem install pg ohne Optionen verwenden.

1

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 das PG GEM

gem install pg

Das ist es. Grüße.

0
pabloverd

Was für mich auf El Capitan funktionierte, war ein Upgrade von Ruby von der Systemeinstellung auf 2.3.1. Es schien, die richtigen Bibliotheken zu finden, die der pg gem brauchte.

0
Abe Petrillo

Sie können zunächst überprüfen, ob Sie eine Postrgresql-Datei in Ihrem Terminal haben, indem Sie zur lib-Datei gehen. Gehen Sie zu cd ~/opt/local/lib/und geben Sie ls und die Eingabetaste ein. Daraufhin wird eine Liste aller Dateien angezeigt, die sich im Verzeichnis lib befinden. 

1.Wenn Sie kein postreseql haben, können Sie es über macports herunterladen. Sudo port install postgresql93 @ 9.3.2_1

Nun cd zurück in den Ordner, den Sie installieren möchten 

  1. ihre pg mit Ihrer Postgesql-Datei arbeiten lassen, die Sie bereits heruntergeladen haben, oder gem install pg - --with-pg-config =/opt/local/lib/postgresql93/bin/pg_config

führen Sie jetzt Bundle Install aus 

0
user3256740

Auf Fedora:

dnf install postgresql-devel
0

Eine funktionierende OSX-Lösung finden Sie in diesem Handbuch http://krugerdavid.com/journal/how-to-install-xcode-homebrew-git-rvm-postgresql-Ruby-1-9-3-on-snow-leopard/

Es führt Sie durch die Installation von PostgreSQL mit Homebrew. Getestet und arbeite für mich unter OSX 10.8.3, PostgreSQL 9.2.3 und Ruby 2.0.0-p0

0
Kristofor Carle