无法安装gem pg - 无法找到PostgreSQL客户端库(libpq)

问题描述:

在ubuntu 14.04中,我无法安装pg gem,但是我也安装了libpg-dev。无法安装gem pg - 无法找到PostgreSQL客户端库(libpq)

sudo apt-get install libpq-dev 

Here我可以看到一些其他人有同样的问题。

gem install pg 
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.3-p194/bin/ruby -r ./siteconf20141202-24533-1xrmav0.rb extconf.rb 
checking for pg_config... yes 
Using config values from /usr/bin/pg_config 
checking for libpq-fe.h... yes 
checking for libpq/libpq-fs.h... yes 
checking for pg_config_manual.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.3-p194/bin/ruby 
    --with-pg 
    --without-pg 
    --with-pg-config 
    --without-pg-config 
    --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 
    --with-pqlib 
    --without-pqlib 
    --with-libpqlib 
    --without-libpqlib 
    --with-ms/libpqlib 
    --without-ms/libpqlib 

extconf failed, exit code 1 

Gem files will remain installed in /home/user/.rvm/gems/ruby-1.9.3-p194/gems/pg-0.17.1 for inspection. 
Results logged to /home/user/.rvm/gems/ruby-1.9.3-p194/extensions/x86_64-linux/1.9.1/pg-0.17.1/gem_make.out 

有什么帮助吗?

+0

奇怪的问题...我不知道,但尝试红宝石'sudo ldconfig',然后再试 – 2014-12-02 15:29:24

+0

是的,它仍然是一样的。 – tokhi 2014-12-02 15:32:03

+0

'dpkg -S/usr/lib/libpq.so'的输出是什么? – blelump 2014-12-02 15:44:03

您应该在线发布您的mkmf.log文件,但您还需要检查您的Ruby和PostgreSQL是否使用相同的OpenSSL版本。

可能发生的情况是,您已经通过RVM安装了Ruby和OpenSSL,并且您的PostgreSQL正在使用该系统的版本。这会导致冲突。

+2

这对我有用。我通过linuxbrew和apt-get安装了OpenSSL。删除我的酿造版本,它的工作。谢谢! – anders32 2015-03-29 03:13:06

我猜你已经正确安装了Postgres。你是否试图通过这样的标志?

env ARCHFLAGS="-arch x86_64" gem install pg 
+0

是的,我已经尝试过;它不工作。 – tokhi 2014-12-02 15:48:36

我在我的电脑上遇到同样的问题。我只需运行rvm get stable即可更新rvm并再次运行bundle install。此pg gem安装成功后。

+0

仍然相同'rvm -v': 'rvm 1.26.3(最新)由韦恩E.塞甘,Michal Papis [https://rvm.io/ ]' – tokhi 2014-12-02 15:57:30

运行此代码sudo ARCHFLAGS="-arch x86_64" gem install pg -v '0.18.2',然后bundle install。它应该正确安装pg gem。