Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails broken - bundle not working - ovirt-engine-sdk - ERROR: Failed to build gem native extension. Cloud9 AWS

I am working through the Ruby on Rails Tutorial (Rails5) by Michael Hartl in the AWS Cloud9 environment. I'm finishing chapter 11 now. (new to programming as well)

It appears I have broken something related to the Rails (or Ruby) system. I am no longer able to start the Rails server, test or console.

The error message I get usually starts with this, which I have not had any luck finding much information on here or via Google. ovirt-engine-sdk -v '4.2.3'

/usr/local/rvm/gems/ruby-2.4.1/gems/bundler-1.16.1/lib/bundler/spec_set.rb:88:in `block in materialize': Could not find ovirt-engine-sdk-4.2.3 in any of the sources (Bundler::GemNotFound)

Trying bundle install or bundle update I get outputs like this:

The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies......
Using rake 12.3.1
Using CFPropertyList 2.3.6
Using concurrent-ruby 1.0.5
Using i18n 0.9.5
Using minitest 5.11.3
Using thread_safe 0.3.6
Using tzinfo 1.2.5
Using activesupport 5.1.4
Using builder 3.2.3
Using erubi 1.7.1
Using mini_portile2 2.3.0
Using nokogiri 1.8.2
Using rails-dom-testing 2.0.3
Using crass 1.0.4 (was 1.0.3)
Using loofah 2.2.2
Using rails-html-sanitizer 1.0.4
Using actionview 5.1.4
Using rack 2.0.4
Using rack-test 1.0.0
Using actionpack 5.1.4
Using nio4r 2.3.0
Using websocket-extensions 0.1.3
Using websocket-driver 0.6.5
Using actioncable 5.1.4
Using globalid 0.4.1
Using activejob 5.1.4
Using mini_mime 1.0.0
Using mail 2.7.0
Using actionmailer 5.1.4
Using activemodel 5.1.4
Using arel 8.0.0
Using activerecord 5.1.4
Using ansi 1.5.0
Using execjs 2.7.0
Using autoprefixer-rails 8.2.0
Using bcrypt 3.1.11
Using bindex 0.5.0
Using rb-fsevent 0.10.3
Using ffi 1.9.23
Using rb-inotify 0.9.10
Using sass-listen 4.0.0
Using sass 3.5.6
Using bootstrap-sass 3.3.7
Using will_paginate 3.1.6
Using bootstrap-will_paginate 1.0.0
Using bundler 1.16.1
Using byebug 9.0.6
Using mime-types-data 3.2016.0521
Using mime-types 3.1
Using carrierwave 1.2.2
Using coderay 1.1.2
Using coffee-script-source 1.12.2
Using coffee-script 2.4.1
Using method_source 0.9.0
Using thor 0.20.0
Using railties 5.1.4
Using coffee-rails 4.2.2
Using unf_ext 0.0.7.5
Using unf 0.1.4
Using domain_name 0.5.20170404
Using excon 0.62.0
Using faker 1.7.3
Using fission 0.5.0
Using formatador 0.2.5
Using fog-core 1.45.0
Using multi_json 1.13.1
Using fog-json 1.0.2
Using ipaddress 0.8.3
Using xml-simple 1.1.5
Using fog-aliyun 0.2.0
Using fog-xml 0.1.3
Using fog-atmos 0.1.0
Using fog-aws 2.0.1
Using inflecto 0.0.2
Using fog-brightbox 0.14.0
Using fog-cloudatcost 0.1.2
Using fog-digitalocean 0.3.0
Using fog-dnsimple 1.0.0
Using fog-dynect 0.0.3
Using fog-ecloud 0.3.0
Using fog-google 0.1.0
Using fog-internet-archive 0.0.1
Using fog-joyent 0.0.1
Using fog-local 0.5.0
Using fog-openstack 0.1.25
Using json 2.1.0
Fetching ovirt-engine-sdk 4.2.3
Installing ovirt-engine-sdk 4.2.3 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /usr/local/rvm/gems/ruby-2.4.1/gems/ovirt-engine-sdk-4.2.3/ext/ovirtsdk4c
/usr/local/rvm/rubies/ruby-2.4.1/bin/ruby -r ./siteconf20180409-4891-qfsq17.rb extconf.rb
checking for xml2-config... yes
checking for curl-config... no
*** 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=/usr/local/rvm/rubies/ruby-2.4.1/bin/$(RUBY_BASE_NAME)
        --with-libcurl-config
        --without-libcurl-config
        --with-pkg-config
        --without-pkg-config
extconf.rb:40:in `<main>': The "libcurl" package isn't available. (RuntimeError)

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

  /usr/local/rvm/gems/ruby-2.4.1/extensions/x86_64-linux/2.4.0/ovirt-engine-sdk-4.2.3/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.4.1/gems/ovirt-engine-sdk-4.2.3 for inspection.
Results logged to /usr/local/rvm/gems/ruby-2.4.1/extensions/x86_64-linux/2.4.0/ovirt-engine-sdk-4.2.3/gem_make.out

An error occurred while installing ovirt-engine-sdk (4.2.3), and Bundler cannot continue.
Make sure that `gem install ovirt-engine-sdk -v '4.2.3'` succeeds before bundling.

In Gemfile:
  fog was resolved to 1.42.0, which depends on
    fog-ovirt was resolved to 1.0.2, which depends on
      ovirt-engine-sdk

Looking at the gem_make.out file results from the above output shows this:

current directory: /usr/local/rvm/gems/ruby-2.4.1/gems/ovirt-engine-sdk-4.2.3/ext/ovirtsdk4c
/usr/local/rvm/rubies/ruby-2.4.1/bin/ruby -r ./siteconf20180409-4891-qfsq17.rb extconf.rb
checking for xml2-config... yes
checking for curl-config... no
*** 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=/usr/local/rvm/rubies/ruby-2.4.1/bin/$(RUBY_BASE_NAME)
        --with-libcurl-config
        --without-libcurl-config
        --with-pkg-config
        --without-pkg-config
extconf.rb:40:in `<main>': The "libcurl" package isn't available. (RuntimeError)

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

  /usr/local/rvm/gems/ruby-2.4.1/extensions/x86_64-linux/2.4.0/ovirt-engine-sdk-4.2.3/mkmf.log

extconf failed, exit code 1

The output of the mkmf.log mentioned above is:

find_executable: checking for xml2-config... -------------------- yes

--------------------

find_executable: checking for curl-config... -------------------- no

--------------------

"pkg-config --exists libcurl"
package configuration for libcurl is not found

So I'm stuck.. I can't get the ovirt-engine-sdk-4.23 to install at this point.

Thanks in advance for any help. Please let me know if there are any other files or information you need to assist.

like image 757
CanuckT Avatar asked Apr 09 '18 08:04

CanuckT


4 Answers

For ubuntu users:

sudo apt-get install build-essential libcurl4-openssl-dev

Edit:

For fedora users:(mine is Fedora 32)

sudo dnf install libcurl libcurl-devel

If libcurl is already there, just:

sudo dnf install libcurl-devel

Installation can be checked with:

dnf list installed libcurl and dnf list installed libcurl-devel

like image 77
Mayuresh Srivastava Avatar answered Oct 13 '22 12:10

Mayuresh Srivastava


You can easy solve this on linux/debian or ubuntu by running the following commands:

sudo apt-get install build-essential libcurl4-openssl-dev
sudo apt-get install libxml2-dev

You should be fine.

like image 23
Jeffrey Dabo Avatar answered Oct 13 '22 11:10

Jeffrey Dabo


If you are using an Ubuntu system then use the following command:

sudo apt-get --assume-yes install gcc libcurl4-openssl-dev libxml2-dev ruby ruby-dev

then run

bundle install

like image 26
Shekhar Patil Avatar answered Oct 13 '22 11:10

Shekhar Patil


So I was able to fix this by:

  1. Installing libcurl developer version:

    sudo yum install libcurl libcurl-devel

Once that was complete I ran bundle update which now made it further in the install - to fail at this point Installing pg 0.20.0 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

  1. Running sudo yum install postgresql-devel resolved the pg 0.20.0 issue and I am now able to complete the bundle update and rails seems to be working again.

  2. Rails server had an issue booting after all of this. This command got it working again: bin/rails db:migrate RAILS_ENV=development

After that the environment and rails all seems to be working fine again.

like image 37
CanuckT Avatar answered Oct 13 '22 12:10

CanuckT