1

I want to use postgres in cloudbees dev cloud, I read this article: http://wiki.cloudbees.com/bin/view/DEV/PostgreSQL

But, I run bundle, I got error:

Installing pg (0.15.1) .......

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /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 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}/ --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 files will remain installed in /home/jenkins/.gem/ruby/1.9.1/gems/pg-0.15.1 for inspection. Results logged to /home/jenkins/.gem/ruby/1.9.1/gems/pg-0.15.1/ext/gem_make.out An error occurred while installing pg (0.15.1), and Bundler cannot continue. Make sure that gem install pg -v '0.15.1' succeeds before bundling.

What do I do next?

4

3 回答 3

1

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

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

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

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

2)结合两个步骤

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

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

这使您的构建过程更改受到控制和记录 - 并让您可以非常快速地跨多个构建服务器推出更改。

于 2013-06-18T01:48:56.557 回答
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 之间传递环境变量。

于 2013-07-06T02:08:39.880 回答
0

我的工作:

在bundle上面设置PATH,我的安装版本是9.2.4。

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

然后我可以捆绑完成:)

于 2013-06-17T14:41:16.137 回答