如何在Ubuntu上安装Postgresql Gem

时间:2015-03-31 20:40:38

标签: ruby-on-rails postgresql chromebook

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

  
    

构建原生扩展。这可能需要一段时间...错误:安装pg时出错:             错误:无法构建gem原生扩展。

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

pg_config ... yes使用/ usr / bin / pg_config中的配置值您需要   安装postgresql-server-dev-X.Y用于构建服务器端   用于构建客户端应用程序的扩展或libpq-dev。您   需要安装postgresql-server-dev-X.Y来构建服务器端   用于构建客户端应用程序的扩展或libpq-dev。   检查libpq-fe.h ...否找不到'libpq-fe.h标头    * extconf.rb失败* 由于某些原因无法创建Makefile,可能缺少必要的库和/或标头。校验   mkmf.log文件以获取更多详细信息。您可能需要配置   选项。

     

提供配置选项:           --with-OPT-DIR           --without-OPT-DIR           --with-OPT-包括           --without-OPT-包括= $ {停用DIR} /包括           --with-OPT-LIB           --without-OPT-LIB = $ {选择-DIR} / lib目录           --with-MAKE-PROG           --without-MAKE-PROG           --srcdir =。           --curdir           --ruby = /家庭/奥斯卡/ .rvm /红宝石/红宝石1.9.3-P551 /斌/红宝石           --with-PG           --without-PG           --enable-窗口交            - 禁用窗口交           --with-PG-配置           --without-PG-配置           --with-pg_config           --without-pg_config           --with-PG-DIR           --without-PG-DIR           --with-PG-包括           --without-PG-包括= $ {PG-DIR} /包括           --with-PG-LIB           --without-PG-LIB = $ {PG-DIR} / lib中

     

extconf失败,退出代码1

     

Gem文件将保持安装状态   /home/oscar/.rvm/gems/ruby-1.9.3-p551/gems/pg-0.18.1进行检查。   记录结果   /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 个答案:

答案 0 :(得分:29)

据我所知,它所说的"您需要安装postgresql-server-dev-X.Y来构建服务器端扩展或libpq-dev来构建客户端应用程序"这意味着您需要在系统上安装软件包以使宝石工作。

所以在fedora我不得不yum install postgresql-devel。因为你在Ubuntu上我觉得你需要做

sudo apt-get install libpq-dev

您可能还需要build-essential才能运行

sudo apt-get install libpq-dev build-essential