我正在尝试为Ruby安装PostgreSQL的pg gem。

我发出了以下命令:

gem install pg

我使用RVM安装Ruby 1.9.2。

上面的命令显示了以下错误。

错误是:

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

我不知道是什么错误…


当前回答

如果你已经安装了libpq-dev,仍然有这个问题,这可能是由于OpenSSL的libssl版本和朋友的冲突- Ubuntu系统版本在/usr/lib (libpq是针对它构建的)和第二个版本的RVM安装在$HOME/。Rvm /usr/lib(如果是系统安装,则为/usr/local/ Rvm /usr/lib)。您可以通过临时重命名$HOME/来验证这一点。Rvm /usr/lib,看看“gem install pg”是否工作。

要解决这个问题,请使用系统OpenSSL库重新构建rvm(您可能需要手动删除libssl。*和libcrypto。*从rvm/usr/lib目录):

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

这最终解决了我在Ubunto 12.04上的问题。

其他回答

在阅读和阅读了2天,并尝试了其他笔记中发现的许多东西之后,下面这一行对我来说是Ubuntu Lucid 10.04混合了一些Maverick包和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   

结果:

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...  

{耶-终于成功了}!! 注意,在我的Ubuntu / Postresql安装中,运行pg_config的输出在LIBS变量中缺少项-lpq !!

为什么在某些地方从pq切换到pg——新手会感到困惑??

我仍然不明白的是——and——with(选项的双重集合 但我已经力不从心了

我试图在新安装的Ubuntu 16.04中安装一个Rails项目。我在运行bundle时也遇到了同样的问题。运行

sudo apt-get install aptitude

紧随其后的是

sudo apt-get install libpq-dev

帮我解决了。

Apt-get安装ruby-dev对我有用。

如果你已经安装了libpq-dev,仍然有这个问题,这可能是由于OpenSSL的libssl版本和朋友的冲突- Ubuntu系统版本在/usr/lib (libpq是针对它构建的)和第二个版本的RVM安装在$HOME/。Rvm /usr/lib(如果是系统安装,则为/usr/local/ Rvm /usr/lib)。您可以通过临时重命名$HOME/来验证这一点。Rvm /usr/lib,看看“gem install pg”是否工作。

要解决这个问题,请使用系统OpenSSL库重新构建rvm(您可能需要手动删除libssl。*和libcrypto。*从rvm/usr/lib目录):

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

这最终解决了我在Ubunto 12.04上的问题。

需要添加包

sudo apt-get install libpq-dev

在RoR中安装pg gem