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

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

我不知道是什么错误…

您需要安装PostgreSQL开发包的PostgreSQL开发包

 sudo apt-get install libpq-dev 

在阅读和颠簸了2天之后,尝试了很多在其他笔记中find的东西,下面这行代码就是Ubuntu Lucid 10.04与一些Maverick软件包和RVM混合使用的解决方法(ruby 1.9.2-p290,rvm 1.10.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... 

{是啊 – 终于成功}! !请注意,运行pg_config的输出在我的Ubuntu / Postresql安装中缺lessLIBSvariables中的项-lpq!

以及为什么在某些地方从pq切换到pg – 混淆新手?

我仍然不明白的是双重和–with(可选,但是我远远超出了我的深度

我在Ubuntu 12.10上运行这个命令:

 apt-get install libpq-dev 

帮我 – 之后,运行gem install pg -v“0.14.1”,现在一切正常

需要添加包

 sudo apt-get install libpq-dev 

在RoR中安装pg gem

安装libpq-dev不适合我。 我也需要安装build-essential

 sudo apt-get install libpq-dev build-essential 

简单的解决scheme,Ubuntu的用户…

首先卸载所有的postgres包,然后运行这些逗号…

 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 

然后运行“捆绑安装”。 一切都会好起来的。 祝你有美好的一天!

.RVM用户会更好:

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

它为我工作(后我看到jdupont版本)

如果安装了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”是否有效来validation。

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

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

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

这个解决了我在Ubuntu 12.04上遇到的每个build议都失败后的问题。

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

尝试这个

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

您应该首先安装PG数据库服务器来安装客户端。 之后,您安装客户端。

查看这篇博客文章,了解如何为Ruby on Rails开发首次设置PostGresSQL。

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

 sudo apt-get install aptitude 

其次是

 sudo apt-get install libpq-dev 

为我解决了。

我有同样的问题,并尝试了很多不同的变种。 经过一番尝试,我成为sudo gem install ,但仍然有问题安装它没有sudo。
最后我发现一个决定 – 重新安装rvm帮助了我。 也许它可以节省别人的时间。

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

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

解决这个问题的另一个办法是用Homebrew / linuxbrew安装PostgreSQL:

brew install postgresql

作为一个习惯的问题,我不喜欢使用sudo,除非我必须。

对于在本页面尝试所有答案后仍然有问题的人,以下(最后)工作:

 sudo apt-get install libgmp3-dev gem install pg 

这是做这个页面上提到的所有其他事情之后

postgresql 9.5.8
Ubuntu 16.10