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

After upgrading to the new build image, my previously working Jekyll site is throwing errors that I can’t track down a solution to.

This repo builds perfectly on my local and on the old image. Is there an easy or obvious fix for this?

Thanks!

9:47:46 AM: Build ready to start
9:47:56 AM: build-image version: d7b3dbfb0846505993c9a131894d1858074c90b4 (focal)
9:47:56 AM: build-image tag: v4.10.1
9:47:56 AM: buildbot version: 1c362ef848ac5e35535bdb572ebca893db28c8a0
9:47:56 AM: Building without cache
9:47:56 AM: Starting to prepare the repo for build
9:47:57 AM: No cached dependencies found. Cloning fresh repo
9:47:57 AM: git clone https://github.com/alexknowshtml/jekyll-indyhall
9:47:58 AM: Preparing Git Reference refs/heads/main
9:47:59 AM: Parsing package.json dependencies
9:48:00 AM: Starting build script
9:48:00 AM: Installing dependencies
9:48:00 AM: Python version set to 2.7
9:48:00 AM: Downloading and installing node v12.18.0...
9:48:01 AM: Downloading https://nodejs.org/dist/v12.18.0/node-v12.18.0-linux-x64.tar.xz...
9:48:01 AM: Computing checksum with sha256sum
9:48:01 AM: Checksums matched!
9:48:02 AM: Now using node v12.18.0 (npm v6.14.4)
9:48:02 AM: Started restoring cached build plugins
9:48:02 AM: Finished restoring cached build plugins
9:48:02 AM: Required ruby-3.1.2 is not installed.
9:48:02 AM: To install do: 'rvm install "ruby-3.1.2"'
9:48:02 AM: Attempting ruby version 3.1.2, read from .ruby-version file
9:48:03 AM: Required ruby-3.1.2 is not installed - installing.
9:48:03 AM: Searching for binary rubies, this might take some time.
9:48:03 AM: Found remote file https://rubies.travis-ci.org/ubuntu/20.04/x86_64/ruby-3.1.2.tar.bz2
9:48:03 AM: Checking requirements for ubuntu.
9:48:04 AM: Requirements installation successful.
9:48:04 AM: ruby-3.1.2 - #configure
9:48:04 AM: ruby-3.1.2 - #download
9:48:05 AM: No checksum for downloaded archive, recording checksum in user configuration.
9:48:05 AM: ruby-3.1.2 - #validate archive
9:48:10 AM: ruby-3.1.2 - #extract
9:48:13 AM: ruby-3.1.2 - #validate binary
9:48:13 AM: ruby-3.1.2 - #setup
9:48:14 AM: ruby-3.1.2 - #gemset created /opt/buildhome/.rvm/gems/ruby-3.1.2@global
9:48:14 AM: ruby-3.1.2 - #importing gemset /opt/buildhome/.rvm/gemsets/global.gems........................................
9:48:14 AM: ruby-3.1.2 - #generating global wrappers........
9:48:14 AM: ruby-3.1.2 - #gemset created /opt/buildhome/.rvm/gems/ruby-3.1.2
9:48:14 AM: ruby-3.1.2 - #importing gemsetfile /opt/buildhome/.rvm/gemsets/default.gems evaluated to empty gem list
9:48:15 AM: ruby-3.1.2 - #generating default wrappers........
9:48:15 AM: Using /opt/buildhome/.rvm/gems/ruby-3.1.2
9:48:15 AM: Using ruby version 3.1.2
9:48:15 AM: Using bundler version 2.3.20 from Gemfile.lock
9:48:16 AM: Successfully installed bundler-2.3.20
9:48:16 AM: 1 gem installed
9:48:16 AM: Using PHP version 8.0
9:48:16 AM: Started restoring cached ruby gems
9:48:16 AM: Finished restoring cached ruby gems
9:48:16 AM: Installing gem bundle
9:48:16 AM: [DEPRECATED] The `--path` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local path '/opt/build/cache/bundle'`, and stop using this flag
9:48:16 AM: [DEPRECATED] The --binstubs option will be removed in favor of `bundle binstubs --all`
9:48:18 AM: Fetching gem metadata from https://rubygems.org/.......
9:48:19 AM: Resolving dependencies...
9:48:19 AM: Using bundler 2.3.20
9:48:19 AM: Fetching ffi 1.15.5
9:48:19 AM: Fetching forwardable-extended 2.6.0
9:48:19 AM: Fetching rb-fsevent 0.11.1
9:48:19 AM: Fetching rexml 3.2.5
9:48:19 AM: Fetching liquid 4.0.3
9:48:19 AM: Fetching safe_yaml 1.0.5
9:48:19 AM: Fetching http_parser.rb 0.8.0
9:48:19 AM: Fetching public_suffix 4.0.7
9:48:19 AM: Fetching concurrent-ruby 1.1.10
9:48:19 AM: Fetching mercenary 0.4.0
9:48:19 AM: Fetching unicode-display_width 1.8.0
9:48:19 AM: Fetching jekyll-twitter-plugin 2.1.0
9:48:19 AM: Fetching colorator 1.1.0
9:48:19 AM: Fetching eventmachine 1.2.7
9:48:19 AM: Fetching mini_portile2 2.4.0
9:48:19 AM: Fetching rouge 3.30.0
9:48:19 AM: Installing forwardable-extended 2.6.0
9:48:19 AM: Installing unicode-display_width 1.8.0
9:48:19 AM: Installing colorator 1.1.0
9:48:19 AM: Installing safe_yaml 1.0.5
9:48:19 AM: Installing mini_portile2 2.4.0
9:48:19 AM: Installing mercenary 0.4.0
9:48:19 AM: Installing liquid 4.0.3
9:48:19 AM: Installing rb-fsevent 0.11.1
9:48:19 AM: Fetching pathutil 0.16.2
9:48:19 AM: Installing rexml 3.2.5
9:48:19 AM: Fetching terminal-table 2.0.0
9:48:19 AM: Installing public_suffix 4.0.7
9:48:19 AM: Fetching nokogiri 1.10.10
9:48:19 AM: Installing http_parser.rb 0.8.0 with native extensions
9:48:19 AM: Installing terminal-table 2.0.0
9:48:19 AM: Installing pathutil 0.16.2
9:48:19 AM: Installing eventmachine 1.2.7 with native extensions
9:48:19 AM: Installing jekyll-twitter-plugin 2.1.0
9:48:19 AM: Installing concurrent-ruby 1.1.10
9:48:19 AM: Fetching addressable 2.8.0
9:48:19 AM: Installing rouge 3.30.0
9:48:19 AM: Fetching kramdown 2.4.0
9:48:19 AM: Installing ffi 1.15.5 with native extensions
9:48:19 AM: Installing addressable 2.8.0
9:48:19 AM: Installing kramdown 2.4.0
9:48:19 AM: Fetching i18n 1.12.0
9:48:19 AM: Installing i18n 1.12.0
9:48:20 AM: Fetching kramdown-parser-gfm 1.1.0
9:48:20 AM: Installing nokogiri 1.10.10 with native extensions
9:48:20 AM: Installing kramdown-parser-gfm 1.1.0
9:48:27 AM: Fetching sassc 2.4.0
9:48:27 AM: Fetching rb-inotify 0.10.1
9:48:27 AM: Installing rb-inotify 0.10.1
9:48:27 AM: Fetching listen 3.7.1
9:48:27 AM: Installing sassc 2.4.0 with native extensions
9:48:27 AM: Installing listen 3.7.1
9:48:27 AM: Fetching jekyll-watch 2.2.1
9:48:27 AM: Installing jekyll-watch 2.2.1
9:48:30 AM: Fetching em-websocket 0.5.3
9:48:30 AM: Installing em-websocket 0.5.3
9:49:21 AM: Fetching jekyll-sass-converter 2.2.0
9:49:21 AM: Installing jekyll-sass-converter 2.2.0
9:49:21 AM: Fetching jekyll 4.2.2
9:49:21 AM: Installing jekyll 4.2.2
9:49:21 AM: Fetching jekyll-include-cache 0.2.1
9:49:21 AM: Fetching jekyll-paginate-v2 3.0.0
9:49:21 AM: Fetching jekyll-sitemap 1.4.0
9:49:21 AM: Fetching jekyll-seo-tag 2.8.0
9:49:21 AM: Fetching jekyll-feed 0.16.0
9:49:21 AM: Fetching jekyll-menus 0.6.1
9:49:21 AM: Installing jekyll-menus 0.6.1
9:49:21 AM: Installing jekyll-feed 0.16.0
9:49:21 AM: Installing jekyll-seo-tag 2.8.0
9:49:21 AM: Installing jekyll-include-cache 0.2.1
9:49:21 AM: Installing jekyll-paginate-v2 3.0.0
9:49:21 AM: Installing jekyll-sitemap 1.4.0
9:49:21 AM: Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
9:49:21 AM: current directory:
9:49:21 AM: /opt/build/cache/bundle/ruby/3.1.0/gems/nokogiri-1.10.10/ext/nokogiri
9:49:21 AM: /opt/buildhome/.rvm/rubies/ruby-3.1.2/bin/ruby -I
9:49:21 AM: /opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0 -r
9:49:21 AM: ./siteconf20220922-3233-1xu379.rb extconf.rb
9:49:21 AM: checking if the C compiler accepts ... yes
9:49:21 AM: Building nokogiri using packaged libraries.
9:49:21 AM: *** extconf.rb failed ***
9:49:21 AM: Could not create Makefile due to some reason, probably lack of necessary
9:49:21 AM: libraries and/or headers.  Check the mkmf.log file for more details.  You may
9:49:21 AM: need configuration options.
9:49:21 AM: Provided configuration options:
9:49:21 AM: 	--with-opt-dir
9:49:21 AM: 	--without-opt-dir
9:49:21 AM: 	--with-opt-include
9:49:21 AM: 	--without-opt-include=${opt-dir}/include
9:49:21 AM: 	--with-opt-lib
9:49:21 AM: 	--without-opt-lib=${opt-dir}/lib
9:49:21 AM: 	--with-make-prog
9:49:21 AM: 	--without-make-prog
9:49:21 AM: 	--srcdir=.
9:49:21 AM: 	--curdir
9:49:21 AM: 	--ruby=/opt/buildhome/.rvm/rubies/ruby-3.1.2/bin/$(RUBY_BASE_NAME)
9:49:21 AM: 	--help
9:49:21 AM: 	--clean
9:49:21 AM: 	--use-system-libraries
9:49:21 AM: <internal:/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in
9:49:21 AM: `require': cannot load such file -- net/ftp (LoadError)from<internal:/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in`require'from
9:49:21 AM: /opt/build/cache/bundle/ruby/3.1.0/gems/mini_portile2-2.4.0/lib/mini_portile2/mini_portile.rb:4:in
9:49:21 AM: `<top (required)>'from<internal:/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in`require'from
9:49:21 AM: <internal:/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in
9:49:21 AM: `require'from/opt/build/cache/bundle/ruby/3.1.0/gems/mini_portile2-2.4.0/lib/mini_portile2.rb:2:in`<top (required)>'from
9:49:21 AM: <internal:/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in
9:49:21 AM: `require'from<internal:/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in`require'	from extconf.rb:470:in `<main>'To see why this extension failed to compile, please check the mkmf.log which canbe found here:/opt/build/cache/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/nokogiri-1.10.10/mkmf.logextconf failed, exit code 1Gem files will remain installed in/opt/build/cache/bundle/ruby/3.1.0/gems/nokogiri-1.10.10 for inspection.Results logged to/opt/build/cache/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0/nokogiri-1.10.10/gem_make.out/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/ext/builder.rb:95:in`run'/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:47:in
9:49:21 AM: `block in build'  /opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tempfile.rb:317:in `open'/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:26:in
9:49:21 AM: `build'/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/ext/builder.rb:161:in`build_extension'/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/ext/builder.rb:195:in
9:49:21 AM: `block in build_extensions'/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in`each'/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in
9:49:21 AM: `build_extensions'/opt/buildhome/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/rubygems/installer.rb:853:in`build_extensions'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/rubygems_gem_installer.rb:72:in
9:49:21 AM: `build_extensions'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/rubygems_gem_installer.rb:28:in`install'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/source/rubygems.rb:207:in
9:49:21 AM: `install'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/installer/gem_installer.rb:54:in`install'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/installer/gem_installer.rb:16:in
9:49:21 AM: `install_from_spec'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/installer/parallel_installer.rb:186:in`do_install'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/installer/parallel_installer.rb:177:in
9:49:21 AM: `block in worker_pool'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/worker.rb:62:in`apply_func'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/worker.rb:57:in
9:49:21 AM: `block in process_queue'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/worker.rb:54:in`loop'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/worker.rb:54:in
9:49:21 AM: `process_queue'/opt/buildhome/.rvm/gems/ruby-3.1.2/gems/bundler-2.3.20/lib/bundler/worker.rb:91:in`block (2 levels) in create_threads'
9:49:21 AM: An error occurred while installing nokogiri (1.10.10), and Bundler cannot
9:49:21 AM: continue.
9:49:21 AM: In Gemfile:
9:49:21 AM:   jekyll-extlinks was resolved to 0.0.5, which depends on
9:49:21 AM:     nokogiri
9:49:21 AM: Error during gem install
9:49:21 AM: Build was terminated: Build script returned non-zero exit code: 1
9:49:21 AM: Creating deploy upload records
9:49:22 AM: Failing build: Failed to build site
9:49:22 AM: Failed during stage 'building site': Build script returned non-zero exit code: 1 (https://ntl.fyi/exit-code-1)
9:49:22 AM: Finished processing build request in 1m25.483125015s

Hi there, glad you found us :wave:

First, have you looked through this resource? It is a compilation of all of our build and deploy resources. This is a good starting point.

If you have worked through those guides and are still encountering issues, please let us know and share the following information: