如何在Ubuntu上安装Postgresql Gem

6

我在Asus Chromebook上通过crouton安装了Ubuntu 12.04 Precise。我有一个需要postgres的rails应用程序。当我运行“bundle”时,它无法安装pg gem。我尝试独立安装多个版本,但都失败了。以下是失败报告:

Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension.

/home/oscar/.rvm/rubies/ruby-1.9.3-p551/bin/ruby -r ./siteconf20150331-16650-11xjo0a.rb extconf.rb checking for

pg_config... yes Using config values from /usr/bin/pg_config You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. checking for libpq-fe.h... no Can't find the 'libpq-fe.h header * 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/oscar/.rvm/rubies/ruby-1.9.3-p551/bin/ruby --with-pg --without-pg --enable-windows-cross --disable-windows-cross --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

extconf failed, exit code 1

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

我也尝试使用brew安装它。文件已经下载并似乎已经安装,但当我运行“brew upgrade postgresql”时,它说postgresql不存在。我已经没有其他想法了,而且我还没有找到其他人有我的问题。

1个回答

32
据我所知,“您需要安装postgresql-server-dev-X.Y来构建服务器端扩展或libpq-dev来构建客户端应用程序”是指您需要在系统上安装软件包以使gems工作。

所以在Fedora上,我必须运行yum install postgresql-devel。由于您使用的是Ubuntu,我认为您需要执行以下操作:

sudo apt-get install libpq-dev

你可能还需要build-essential以便运行。

sudo apt-get install libpq-dev build-essential

一开始这个是有效的。我能够运行bundle,但后来它卡在了某个地方,说我需要ruby 2.0.0或更高版本。我切换到了更高版本,但现在我面临着和之前完全相同的情况。 - Oscar Courchaine
听起来你在使用rvm时遇到了问题。错误信息和之前的一样吗?如果不是,请在SO上提出另一个问题。 - jcuenod
我花了大约10个小时才能够解决这个问题。上面的这两个命令对于在Ubuntu 16上使其工作至关重要。 - Chris Mendla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接