Ruby 如何安装PostgreSQL';Ubuntu上的pg gem是什么?

Ruby 如何安装PostgreSQL';Ubuntu上的pg gem是什么?,ruby,postgresql,pg,Ruby,Postgresql,Pg,我正在尝试安装PostgreSQL的pg gem for Ruby 我发布了以下命令: 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/rub

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

我发布了以下命令:

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

经过两天的阅读和反复思考,并尝试了在其他笔记中发现的许多东西,下面这一行是我在UbuntuLucid10.04上的灵丹妙药,其中混合了一些特立独行的软件包和RVM(ruby 1.9.2-p290、RVM 1.10.2 rubygems 1.8.15、rails 3.0.1、postgres 8.4.10):

结果是:

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(选项)
但无论如何,我已经远远超出了我的深度

对于.RVM用户来说,这样会更好:

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

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

安装libpq-dev对我无效。我还需要安装build-essential

sudo apt-get install libpq-dev build-essential

这解决了我在Ubuntu12.04上的问题,因为这里的每个建议都失败了

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

我在Ubuntu 12.10上运行以下命令:

apt-get install libpq-dev

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

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

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


这最终解决了我在Ubto 12.04上遇到的问题。

我也遇到了同样的问题,并尝试了许多不同的变体。经过一些尝试后,我能够
sudo gem安装
,但在没有sudo的情况下安装它仍然有问题。

最后我发现了一个决定——重新安装rvm帮助了我。也许它可以为其他人节省时间。

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

然后运行“bundle install”。一切都会好起来的。祝您愉快!

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

brew安装postgresql

作为一种习惯,我不喜欢使用sudo,除非我必须使用。

需要添加软件包

sudo apt-get install libpq-dev

为了在RoR中安装pg gem,我试图在新安装的Ubuntu 16.04中安装一个Rails项目。我在运行bundle.running时遇到了同样的问题

sudo apt-get install aptitude

sudo apt-get install libpq-dev

为我解决了这个问题。

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

初始错误是,
mkmf.rb在/usr/lib/ruby/include/ruby.h中找不到ruby的头文件

sudo apt-get install postgresql postgresql-contrib libpq-dev
您应该首先安装PG数据库服务器来安装客户端,然后再安装客户端


对于在尝试了本页上的所有答案后仍有问题的人,以下(最终)措施奏效了:

这是在做了本页提到的所有其他事情之后的

postgresql 9.5.8

Ubuntu 16.10

在Ubuntu中,这对我很有用,我希望能帮助你:

sudo apt-get install libpq-dev


apt get install ruby dev
适合我。

另一个选项是使用在Linux和macOS上工作的工具只安装支持库:

brew安装libpq

然后

brew链接libpq——强制


(需要使用
--force
选项,因为它与postgres公式冲突。)

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

我按照您的建议这样做了…获取以下需要获取0B的存档。解包后5378kB将被释放。是否继续?[Y/n/?]Y写入扩展状态信息…完成(正在读取数据库…166183当前安装的文件和目录。)删除bison…删除libnss3 dev…删除libnspr4 dev…删除libqt4 core…删除libqt4 test…删除libsqlite3 dev…处理man db的触发器..对于像我这样对Ubuntu非常陌生但非常新的用户
sudo apt get install aptitude
first:)尝试了各种组合。即使在重新安装postgres和libpq之后。运气也不好。对于Cent/RedHat风格的发行版,仍然存在同样的问题,您需要的软件包是
yum安装postgresql-devel
我有一种感觉,这可能不适用于某些人,因为他们的Ubuntu版本。对于我来说,在13.04版本的postgres 9上失败了。1“---”通常用于将第一个命令的参数与第二个命令的参数分开,在本例中,extmod的configure脚本谢谢。您的解决方案非常完美。非常感谢您共享此解决方案。我坚持了一天。很高兴我遇到了这篇文章。我的解决方案几乎是一样的;我使用的是rbenv,对我有用的是s:`gem install pg--with pg lib=/usr/lib/postgresql/--with pg include=/usr/include/postgresql/`;我不需要指定版本。如果人们对如何删除所有postgres软件包感到好奇,sudo apt get remove--purge postgresql postgresql-9.3(或任何您拥有的postgres版本)。谢谢你的回答!Ubuntu版本越新,ruby版本越老,OpenSSL不匹配的可能性就越大。除此之外,其他一切都不起作用!非常感谢@mike blackwell。我几乎已经给出了答案
sudo apt-get install postgresql postgresql-contrib libpq-dev
sudo apt-get install libgmp3-dev
gem install pg
sudo apt-get install libpq-dev
gem install pg  --   --with-pg-lib=/usr/lib