Cloudbees开发云+ Postgresql + ruby​​gems pg(原生扩展)如何使用?

时间:2013-06-16 18:06:32

标签: postgresql cloudbees pg

我想在cloudbees开发云中使用postgres,我读了这篇文章: http://wiki.cloudbees.com/bin/view/DEV/PostgreSQL

但是,我运行bundle,我收到错误:

  

安装pg(0.15.1).......

     

Gem :: Installer :: ExtensionBuildError:错误:无法构建gem native   扩展

    /usr/bin/ruby extconf.rb  checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with 
     

- with-pg-config = / path / to / pg_config检查libpq-fe.h ... no找不到'libpq-fe.h header    * extconf.rb失败* 由于某些原因无法创建Makefile,可能缺少必要的库和/或标头。校验   mkmf.log文件以获取更多详细信息。您可能需要配置   选项。

     

提供配置选项: - with-opt-dir --without-opt-dir     --with-opt-include --without-opt-include = $ {opt-dir} / include     --with-opt-lib --without-opt-lib = $ {opt-dir} / --with-make-prog     --without-make-prog --srcdir =。 --curdir --ruby = / usr / bin / ruby     --with-pg --without-pg --with-pg-dir --without-pg-dir     --with-pg-include --without-pg-include = $ {pg-dir} / include     --with-pg-lib --without-pg-lib = $ {pg-dir} / --with-pg-config     --without -pg-config --with-pg_config --without-pg_config

     

Gem文件将保持安装状态   /home/jenkins/.gem/ruby/1.9.1/gems/pg-0.15.1进行检查。结果   登录到   /home/jenkins/.gem/ruby/1.9.1/gems/pg-0.15.1/ext/gem_make.out错误   安装pg(0.15.1)时发生,Bundler无法继续。   在捆绑之前确保gem install pg -v '0.15.1'成功。

接下来我该怎么做?

3 个答案:

答案 0 :(得分:1)

有两种方法可以解决这个问题:

1)使用上面的解决方法,添加

PATH=/scratch/jenkins/postgresqls/postgresql-9.2.4-x86_64/bin:$PATH

这并不理想,因为我们只是即将移动该路径以支持拉式请求构建

2)结合这两个步骤

在您的构建中,您需要结合PostgreSQL和Ruby安装步骤,以便正确配置环境。

我个人建议使用脚本来进行构建 - ./bin/run-ci - 而不是在Jenkins中输入所有内容。

这可以控制和记录您的构建过程变更 - 并允许您非常快速地在多个构建服务器上推出更改。

答案 1 :(得分:1)

我使用单个shell脚本,并在顶部声明一次:

export POSTGRESQL_VERSION=9.2.4
curl -s -o use-postgresql https://repository-cloudbees.forge.cloudbees.com/distributions/ci-addons/postgresql/use-postgresql
source ./use-postgresql

然后我没有必要在shell之间传递环境变量。

答案 2 :(得分:0)

我的工作:

将PATH设置为bundle之上,而9.2.4是我的安装版本。

PATH=/scratch/hudson/postgresqls/postgresql-9.2.4-x86_64/bin:$PATH

然后我可以捆绑完成:)