如何在Ubuntu上安装PostgreSQL的pg gem?

时间:2010-06-25 06:31:25

标签: ruby postgresql pg

我正在尝试为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

我不知道错误是什么......

19 个答案:

答案 0 :(得分:632)

您需要安装带有PostgreSQL标头的postgreSQL开发包

sudo apt-get install libpq-dev

答案 1 :(得分:39)

阅读并th for for for,,,and and and and and and and and and and and and and and and and and and and with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with .2 ruby​​gems 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 - 让新手感到困惑?

我仍然不明白的是 - 和--with(选项)的双重集合 但无论如何我都超越了我的深度

答案 2 :(得分:28)

我正在使用Ubuntu 12.10并运行此命令:

apt-get install libpq-dev

帮助了我 - 之后运行了gem install pg -v“0.14.1”,现在一切都好了

答案 3 :(得分:25)

需要添加包

sudo apt-get install libpq-dev

在RoR中安装pg gem

答案 4 :(得分:20)

安装libpq-dev对我不起作用。我还需要安装build-essential

sudo apt-get install libpq-dev build-essential

答案 5 :(得分:16)

ubuntu用户的简单解决方案......

首先卸载所有postgres软件包,然后运行这些commads ...

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

然后运行'bundle install'。一切都会好起来的。祝你有个美好的一天!

答案 6 :(得分:13)

在Ubuntu这对我有用,我希望能帮到你:

sudo apt-get install libpq-dev

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

答案 7 :(得分:9)

对于.RVM用户,它会更好:

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

它对我有用(在我看到jdupont版本之后)

答案 8 :(得分:6)

如果您安装了libpq-dev并且仍然遇到此问题,可能是由于OpenSSL的libssl和朋友的版本冲突 - / usr / lib中的Ubuntu系统版本(libpq是针对它构建的)和第二个版本的RVM安装在$ HOME / .rvm / usr / lib(或/ usr / local / rvm / usr / lib,如果是系统安装)。您可以通过临时重命名$ HOME / .rvm / usr / lib并查看“gem install pg”是否有效来验证这一点。

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

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

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

答案 9 :(得分:5)

这解决了Ubuntu 12.04上的问题,因为这里的每个建议都失败了。

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

答案 10 :(得分:5)

试试这个

can1.coords(array[0])

您应首先安装PG数据库服务器以安装客户端。然后,您安装客户端。

See this blog post to know about setting up PostGresSQL for the first time for Ruby on Rails development.

答案 11 :(得分:4)

sudo apt-get install postgresql-client libpq5 libpq-dev然后执行gem install pg

答案 12 :(得分:3)

我正在尝试在刚刚安装的Ubuntu 16.04中设置Rails项目。我在运行bundle时遇到了同样的问题。运行

sudo apt-get install aptitude

接着是

sudo apt-get install libpq-dev

为我解决了。

答案 13 :(得分:2)

对于在尝试此页面上的所有答案后仍然遇到问题的任何人,以下(最终)工作:

sudo apt-get install libgmp3-dev
gem install pg

之后执行此页面上提到的所有其他内容。

postgresql 9.5.8
Ubuntu 16.10

答案 14 :(得分:1)

对于那些尝试安装Redmine的人,我在尝试了以上所有内容后错过了sudo apt-get install ruby-all-dev

初始错误为mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

答案 15 :(得分:1)

此问题的另一个解决方案是使用Homebrew / linuxbrew安装PostgreSQL:

brew install postgresql

作为习惯,我不喜欢使用sudo,除非我不得不这样做。

答案 16 :(得分:1)

我遇到了同样的问题,尝试了很多不同的变种。经过一些尝试后,我能够sudo gem install,但是在没有sudo的情况下安装它仍然有问题 最后我发现了一个决定 - 重新安装rvm帮助了我。可能它可以节省别人的时间。

答案 17 :(得分:0)

apt-get install ruby-dev为我工作。

答案 18 :(得分:0)

另一种选择是使用在Linux和macOS上运行的Homebrew仅安装支持库:

brew install libpq

然后

brew link libpq --force

--force选项是必需的,因为它与postgres公式冲突。)