2011-01-16 7 views
8

Nach der Aktualisierung postgresql 8.1 bis 9.0 ive bemerkte Probleme mit Bibliotheken Abhängigkeit. Postgresql funktioniert gut (Verbindung, Abfragen).pg_config, ruby ​​pg, postgresql 9.0 Problem nach dem Upgrade, Centos 5

yum list postgresql* 
Installed Packages 
postgresql.i386 9.0.0-1PGDG.el5 installed 
postgresql-debuginfo.i386 9.0.0-1PGDG.el5 installed 
postgresql-devel.i386 9.0.0-1PGDG.el5 installed 
postgresql-libs.i386 9.0.0-1PGDG.el5 installed 
postgresql-odbcng.i386 0.90.101-2.el5 installed 
postgresql-plruby.i386 0.5.1-5.el5 installed 
postgresql-server.i386 9.0.0-1PGDG.el5 install 

aber wenn im für Ruby zu installieren 'pg' versucht, ive

erhielt
gem install pg 
Building native extensions. This could take a while... 
ERROR: Error installing pg: 
     ERROR: Failed to build gem native extension. 

/usr/local/bin/ruby extconf.rb 
checking for pg_config... no 
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. 

Wenn mit einem anderen rubin Postgres Fahrer versucht, ive bekam

yum install ruby-postgres 
ruby-postgres-0.7.1-5.el5.i386 from epel has depsolving problems 
    --> Missing Dependency: libpq.so.4 is needed by package ruby-postgres-0.7.1-5.el5.i386 (epel) 

und

locate libpq.so.4 
/usr/lib/libpq.so.4 
/usr/lib/libpq.so.4.1 

auch exportierten Pfad

LD_LIBRARY_PATH=/usr/pgsql-9.0/lib 
export LD_LIBRARY_PATH 

nach Ruby-Skript läuft mit "erfordern pg" (funktioniert auf 8,1), ive bekam:

/usr/local/lib/ruby/site_ruby/1.8/i686-linux/pg_ext.so: libpq.so.4: cannot open shared object file: No such file or directory - /usr/local/lib/ruby/site_ruby/1.8/i686-linux/pg_ext.so (LoadError) 
     from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `require' 
     from /usr/local/lib/ruby/site_ruby/1.8/pg.rb:12 
     from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require' 
     from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `require' 

Irgendwelche Vorschläge, was mehr zu tun?

Antwort

6

Es gibt verschiedene Konfigurationsoptionen, die Sie zur Edelsteininstallation hinzufügen können, wie -with-opt-dir, und --with-pg-config. Schauen Sie sich diese Mailing-Liste Thema:

http://www.ruby-forum.com/topic/409608

+1

gem pg installieren - --with-pgsql-lib =/usr/pgsql-9.0/lib --with-pg-config =/usr/pgsql-9.0/bin/pg_config, löst es pg Installation , Danke! Aber immer noch nach dem Ausführen von Skripten ive wurde vermisst libpq.so.4 ... – objah

+0

Irgendwelche Fortschritte dabei? Vielleicht aktualisieren Sie Ihre Frage, damit wir Ihnen besser helfen können? –

0

libpq.so.4 von einer älteren Version von PostgreSQL ist; 9.0 Schiffe mit /usr/pgsql-9.0/lib/libpq.so.5

Wenn Sie ein Programm, das gegen libpq.so.4 gebaut wurde, die Datei von dem compat-postgresql-libs vorgesehen ist Pakete, die Sie möglicherweise nicht installiert haben. Viele Leute entfernen es mit "--force", weil es sonst schwierig sein kann, die neueren RPMs zu installieren. das ist eine schlechte Idee, aber die Alternative ist complicated. Wenn Sie dieses Paket installiert haben, sollten Sie ein /usr/lib/libpq.so.4 verfügbar finden, das Ihr vorhandenes Programm, das ursprünglich für das ältere PostgreSQL kompiliert wurde, glücklich macht.

5
 
$ gem --version 
1.3.7 

$ ruby --version 
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] 

$ cat /etc/redhat-release 
CentOS release 5.4 (Final) 

$ uname -m 
x86_64 

sudo yum list installed | grep postgre (see what you have installed) 
sudo yum list available | grep postgre (I was missing postgresql-devel) 
sudo yum install postgresql-devel   (I installed it) 
sudo gem install pg      (no error this time!) 

$ gem list --local | grep pg 
pg (0.11.0) 
+0

Ich hatte das gleiche Szenario, als ich versuchte, 'pg' gem auf CentOS mit einer bereits vorhandenen 'postgres'-Installation zu installieren. Ich vermute das Problem ist, dass 'pg_config' nicht gefunden werden konnte, da ich es überhaupt nicht auf meinem System hatte. Nach der Installation von 'postgresql-devel' wurde' pg_config' hinzugefügt und 'pg' gem erfolgreich installiert. – krukid

1

Unter Mac OSX 10.6.8 arbeitete die MacPorts-Installation von Postgres 9, der folgende Befehl für mich mit:

gem install pg -- --with-pgsql-lib=/opt/local/lib/postgresql90/lib --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config 
3

Dies scheint ein pg Konfigurationsdatei Ortsfehler,

gem install pg -- --with-pgsql-lib=/usr/pgsql-9.0/lib --with-pg-config=/usr/pgsql-9.1/bin/pg_config 

löst es !!

gem install pg -- --with-pgsql-lib=/usr/pgsql-9.0/lib --with-pg-config=/usr/pgsql-9.1/bin/pg_config 

/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>': 
It seems your ruby installation is missing psych (for YAML output). 
To eliminate this warning, please install libyaml and reinstall your ruby. 
Building native extensions. This could take a while... 
Successfully installed pg-0.14.0 
1 gem installed 
Installing ri documentation for pg-0.14.0... 
Installing RDoc documentation for pg-0.14.0... 
+0

Sie wahrscheinlich für diese Pgsql-9.X-Versionen zu entsprechen – Ramfjord