Help
cancel
Showing results for 
Search instead for 
Did you mean: 
Ground Controller Lvl 1
Message 1 of 2

Problem building pg gem

Hi!

 

I'm having some problems trying to run my Ruby workflow. All seems to work fine until it reaches the point where the gems are built. My ruby.yml looks as follows:

 

name: Ruby

on: [push]

jobs:
  build:
    runs-on: ubuntu-18.04

    services:
      postgres:
        image: postgres:9.6
        env:
          POSTGRES_USER: foo
          POSTGRES_PASSWORD: bar
          POSTGRES_DB: baz
        ports:
          - 5432:5432
        # needed because the postgres container does not provide a healthcheck
        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5

    steps:
    - uses: actions/checkout@v1
    - name: Set up Ruby 2.6
      uses: actions/setup-ruby@v1
      with:
        ruby-version: 2.6.3
    - name: Build and test with Rake
      run: |
        gem install bundler
        bundle install --jobs 4 --retry 3
        bundle exec rake

 

But when it execs the bundle install I get:

 

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/opt/hostedtoolcache/Ruby/2.6.3/x64/lib/ruby/gems/2.6.0/gems/pg-1.1.4/ext
/opt/hostedtoolcache/Ruby/2.6.3/x64/bin/ruby -I
/opt/hostedtoolcache/Ruby/2.6.3/x64/lib/ruby/2.6.0 -r
./siteconf20190911-3762-p1wh2r.rb 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}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/opt/hostedtoolcache/Ruby/2.6.3/x64/bin/$(RUBY_BASE_NAME)
	--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

To see why this extension failed to compile, please check the mkmf.log which can
be found here:

/opt/hostedtoolcache/Ruby/2.6.3/x64/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0-static/pg-1.1.4/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in
/opt/hostedtoolcache/Ruby/2.6.3/x64/lib/ruby/gems/2.6.0/gems/pg-1.1.4 for
inspection.
Results logged to
/opt/hostedtoolcache/Ruby/2.6.3/x64/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0-static/pg-1.1.4/gem_make.out

An error occurred while installing pg (1.1.4), and Bundler cannot continue.
Make sure that `gem install pg -v '1.1.4' --source 'https://rubygems.org/'`
succeeds before bundling.

In Gemfile:
  pg

It seems libpq-dev is missing on the Ubuntu image. Any tip on how to get this working?

 

Thanks in advance.

1 Reply
GitHub Staff
Message 2 of 2

Re: Problem building pg gem

The runners have a rather complete set of software installed, but if there's something that you need that's missing, you can feel free to install it.  For example, in your steps:

 

    - name: Build and test with Rake
      run: |
        sudo apt-get install libpq-dev
        gem install bundler
        bundle install --jobs 4 --retry 3
        bundle exec rake