In experimenting to resolve another issue, I tried updating our rails application from rail 5.1.4 to 5.1.6 using “bundle update rails”. It all seemed to go well, but afterwards habitat fails to build with the following error:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory:
/hab/cache/src/active-oversight-api-0.1.2/vendor/bundle/ruby/2.4.0/gems/nokogiri-1.8.3/ext/nokogiri
/hab/pkgs/core/ruby/2.4.2/20180619210241/bin/ruby -r ./siteconf20180619-26656-v4p3vb.rb extconf.rb
--use-system-libraries
checking if the C compiler accepts -I/hab/pkgs/core/ruby/2.4.2/20180619210241/include
-I/hab/pkgs/core/libxml2/2.9.6/20180608141053/include
-I/hab/pkgs/core/libxslt/1.1.31/20180608141131/include
-I/hab/pkgs/core/postgresql/9.6.8/20180608211535/include
-I/hab/pkgs/core/curl/7.54.1/20180608142121/include
-I/hab/pkgs/finalze/imagemagick/6.9.2-10/20180619190029/include/ImageMagick-6
-I/hab/pkgs/core/file/5.32/20180608050620/include -I/hab/pkgs/core/gcc/7.3.0/20180608051919/include
-I/hab/pkgs/core/make/4.2.1/20180608100733/include -I/hab/pkgs/core/ruby/2.5.1/20180608194604/include...
yes
Building nokogiri using system libraries.
pkg-config could not be used to find libxml-2.0
Please install either `pkg-config` or the pkg-config gem per
gem install pkg-config -v "~> 1.1"
pkg-config could not be used to find libxslt
Please install either `pkg-config` or the pkg-config gem per
gem install pkg-config -v "~> 1.1"
pkg-config could not be used to find libexslt
Please install either `pkg-config` or the pkg-config gem per
gem install pkg-config -v "~> 1.1"
ERROR: cannot discover where libxml2 is located on your system. please make sure `pkg-config` is installed.
*** 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=/hab/pkgs/core/ruby/2.4.2/20180619210241/bin/$(RUBY_BASE_NAME)
--help
--clean
--use-system-libraries
--with-zlib-dir
--without-zlib-dir
--with-zlib-include
--without-zlib-include=${zlib-dir}/include
--with-zlib-lib
--without-zlib-lib=${zlib-dir}/lib
--with-xml2-dir
--without-xml2-dir
--with-xml2-include
--without-xml2-include=${xml2-dir}/include
--with-xml2-lib
--without-xml2-lib=${xml2-dir}/lib
--with-libxml-2.0-config
--without-libxml-2.0-config
--with-pkg-config
--without-pkg-config
--with-xslt-dir
--without-xslt-dir
--with-xslt-include
--without-xslt-include=${xslt-dir}/include
--with-xslt-lib
--without-xslt-lib=${xslt-dir}/lib
--with-libxslt-config
--without-libxslt-config
--with-exslt-dir
--without-exslt-dir
--with-exslt-include
--without-exslt-include=${exslt-dir}/include
--with-exslt-lib
--without-exslt-lib=${exslt-dir}/lib
--with-libexslt-config
--without-libexslt-config
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/hab/cache/src/active-oversight-api-0.1.2/vendor/bundle/ruby/2.4.0/extensions/x86_64-linux/2.4.0/nokogiri-1.8.3/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in
/hab/cache/src/active-oversight-api-0.1.2/vendor/bundle/ruby/2.4.0/gems/nokogiri-1.8.3 for inspection.
Results logged to
/hab/cache/src/active-oversight-api-0.1.2/vendor/bundle/ruby/2.4.0/extensions/x86_64-linux/2.4.0/nokogiri-1.8.3/gem_make.out
An error occurred while installing nokogiri (1.8.3), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.8.3' --source 'https://rubygems.org/'` succeeds before bundling.
In Gemfile:
zipline was resolved to 1.0.0, which depends on
rails was resolved to 5.1.6, which depends on
actioncable was resolved to 5.1.6, which depends on
actionpack was resolved to 5.1.6, which depends on
actionview was resolved to 5.1.6, which depends on
rails-dom-testing was resolved to 2.0.3, which depends on
nokogiri
active-oversight-api: Restoring original bundler config
ERROR: bundler returned an error
Attempting to add core/libxml2
or core/libxslt
to my package deps results in a dependency graph failure.
here are my build deps
pkg_scaffolding="core/scaffolding-ruby"
pkg_deps=(core/curl finalze/imagemagick core/file)