web-dev-qa-db-de.com

Wie installiert man PostgreSQLs pg gem auf Ubuntu?

Ich versuche PostgreSQLs pg gem für Ruby zu installieren.

Ich habe den folgenden Befehl ausgegeben:

gem install pg

Ich habe Ruby 1.9.2 mit RVM installiert.

Der obige Befehl zeigt den folgenden Fehler an.

Der Fehler ist:

Building native extensions.  This could take a while...

ERROR:  Error installing pg:

ERROR: Failed to build gem native extension.

/home/User/.rvm/rubies/Ruby-1.9.2-preview3/bin/Ruby extconf.rb

checking for pg_config... yes
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=/home/User/.rvm/rubies/Ruby-1.9.2-preview3/bin/Ruby
 --with-pg
 --without-pg
 --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}/lib
 --enable-static-build
 --disable-static-build
 --with-pqlib
 --without-pqlib
 --with-libpqlib
 --without-libpqlib
 --with-ms/libpqlib
 --without-ms/libpqlib

Gem files will remain installed in /home/user/.rvm/gems/Ruby-1.9.2-preview3/gems/pg-0.9.0 for inspection.

Results logged to /home/user/.rvm/gems/Ruby-1.9.2-preview3/gems/pg-0.9.0/ext/gem_make.out

Ich weiß nicht was der Fehler ist ...

262
palani

Sie müssen das Paket postgreSQL dev mit dem Header von PostgreSQL installieren

Sudo apt-get install libpq-dev
622
shingara

Nachdem ich zwei Tage lang gelesen und herumgeprügelt hatte und viele Dinge aus anderen Notizen ausprobiert hatte, war die folgende einzige Zeile das Heilmittel für Ubuntu Lucid 10.04 gemischt mit einigen Maverick-Paketen und RVM (Ruby 1.9.2-p290, rvm 1.10.2 Rubygems) 1.8.15, Rails 3.0.1, Postgres 8.4.10):

gem install pg  --   --with-pg-lib=/usr/lib   

das Ergebnis: 

Building native extensions.  This could take a while...  
Successfully installed pg-0.13.1  
1 gem installed  
Installing ri documentation for pg-0.13.1...  
Installing RDoc documentation for pg-0.13.1...  

{yea - finally success} !! ! Beachten Sie, dass der Ausgabe von pg_config das Element -lpq in der LIBS-Variablen meiner Ubuntu/Postresql-Installation fehlt !!

und warum der Wechsel von pq zu pg an bestimmten Orten - verwirrend für Neuling?

das, was ich immer noch nicht verstehe, ist die doppelte Menge von - und --with (Option aber ich bin sowieso weit jenseits meiner Tiefe

38
jdupont

Ich bin auf Ubuntu 12.10 und führe diesen Befehl aus:

apt-get install libpq-dev

hat mir geholfen - danach lief gem-pg -v "0.14.1" ein, und jetzt alles gut

28
Xander

Paket hinzufügen 

Sudo apt-get install libpq-dev

pg gem in RoR installieren

24

Die Installation von libpq-dev hat bei mir nicht funktioniert. Ich musste auch build-essential installieren

Sudo apt-get install libpq-dev build-essential
19
philwhln

Einfache Lösung für Ubuntu-Benutzer ...

Deinstalliere zuerst alle Postgres-Pakete, dann führe diese Commads aus ...

Sudo apt-get install postgresql
Sudo apt-get install postgresql-client libpq5 libpq-dev

# for rvm (single user)
mv ~/.rvm/usr/lib ~/.rvm/usr/lib_rvm 

# for rvm (multi-user)
mv /usr/local/rvm/usr/lib /usr/local/rvm/usr/lib_rvm

gem install pg  --   --with-pg-lib=/usr/lib

Führen Sie dann 'Bundle Install' aus. Alles wird gut. Haben Sie einen guten Tag!

16

In Ubuntu funktioniert das für mich, ich hoffe dir helfen:

Sudo apt-get install libpq-dev

und

gem install pg  --   --with-pg-lib=/usr/lib 
10
Marcos Riveros

Für .RVM-Benutzer wird es besser sein:

rvmsudo gem install pg -- --with-pg-lib=/usr/lib 

es funktionierte für mich (nachdem ich jdupont version gesehen hatte)

9
vekozlov

Wenn Sie libpq-dev installiert haben und immer noch dieses Problem haben, liegt dies wahrscheinlich an widersprüchlichen Versionen von libssl und Freunden von OpenSSL - der Ubuntu-Systemversion in/usr/lib (gegen die libpq aufgebaut ist) und einer zweiten Version von RVM, die in $ installiert ist HOME/.rvm/usr/lib (oder/usr/local/rvm/usr/lib, wenn es sich um eine Systeminstallation handelt). Sie können dies überprüfen, indem Sie $ HOME/.rvm/usr/lib vorübergehend umbenennen und prüfen, ob "gem install pg" funktioniert.

Um das Problem zu lösen, müssen Sie rvm mithilfe der OpenSSL-Systembibliotheken neu erstellen (möglicherweise müssen Sie libssl. * Und libcrypto. * Manuell aus dem Verzeichnis rvm/usr/lib entfernen):

rvm reinstall 1.9.3 --with-openssl-dir=/usr

Damit ist das Problem für Ubunto 12.04 endlich gelöst.

6
Mike Blackwell

Versuche dies 

Sudo apt-get install postgresql postgresql-contrib libpq-dev

Sie sollten zunächst den PG-Datenbankserver installieren, um Clients zu installieren. Danach installieren Sie Clients.

In diesem Blogeintrag erfahren Sie, wie Sie PostGresSQL zum ersten Mal für die Entwicklung von Ruby on Rails einrichten.

5
illusionist

Dies löste das Problem für Ubuntu 12.04 für mich, nachdem hier alle Vorschläge fehlgeschlagen waren.

rvmsudo gem install pg -v '0.12.2' -- --with-pg-lib=/usr/include/postgresql
5
olafurg

Ich habe versucht, ein Rails-Projekt in meinem frisch installierten Ubuntu 16.04 einzurichten. Ich stieß auf das gleiche Problem, als ich Bundle lief. Laufen

Sudo apt-get install aptitude

gefolgt von 

Sudo apt-get install libpq-dev

Ich habe es für mich gelöst.

3
bis

Für alle, die immer noch Probleme haben, nachdem sie alle Antworten auf dieser Seite ausprobiert haben, funktionierte Folgendes (endlich):

Sudo apt-get install libgmp3-dev
gem install pg

Dies war after alles andere, was auf dieser Seite erwähnt wurde.

postgresql 9.5.8
Ubuntu 16.10

2
marksiemers

Ich hatte das gleiche Problem und habe viele verschiedene Varianten ausprobiert. Nach einigen Versuchen konnte ich Sudo gem install, aber ich habe immer noch Probleme, es ohne Sudo zu installieren.
Schließlich fand ich eine Entscheidung - die Neuinstallation von rvm hat mir geholfen. Wahrscheinlich kann es jemandem Zeit sparen.

1
RaskolnikOFF

Für diejenigen, die versuchen, Redmine zu installieren, habe ich Sudo apt-get install Ruby-all-dev verpasst, nachdem ich alle oben genannten Schritte ausgeführt hatte.

Anfangsfehler mkmf.rb can't find header files for Ruby at /usr/lib/Ruby/include/Ruby.h.

1
Matthieu

Eine andere Lösung für dieses Problem ist die Installation von PostgreSQL mit Homebrew/linuxbrew: 

brew install postgresql

Als Gewohnheit benutze ich Sudo nicht gern, wenn ich nicht muss.

1
Braden Mugg

apt-get install Ruby-dev arbeitete für mich.

0
ssss4world