web-dev-qa-db-ja.com

Rails壊れています-バンドルが機能していません-ovirt-engine-sdk-エラー:gemネイティブ拡張機能のビルドに失敗しました。Cloud9AWS

AWSCloud9環境でMichaelHartlによるRuby on Rails Tutorial(Rails5))を実行しています。これで、第11章を終了します。プログラミングも)

Rails(またはRuby)システムに関連する何かが壊れたようです。Railsサーバー、テスト、またはコンソールを起動できなくなりました。

私が受け取るエラーメッセージは通常これで始まりますが、ここや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)

bundle installまたはbundle updateを試してみると、次のような出力が得られます。

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

上記の出力からのgem_make.outファイルの結果を見ると、次のことがわかります。

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

上記のmkmf.logの出力は次のとおりです。

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

だから私は立ち往生しています..この時点でovirt-engine-sdk-4.23をインストールすることができません。

助けてくれてありがとう。他にサポートが必要なファイルや情報があればお知らせください。

4
CanuckT

だから私はこれを修正することができました:

  1. Libcurl開発者バージョンのインストール:

    Sudo yum install libcurl libcurl-devel

それが完了したら、バンドル更新を実行しました。これにより、インストールでさらに実行されました。この時点で失敗しましたInstalling pg 0.20.0 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

  1. ランニング Sudo yum install postgresql-devel pg 0.20.0の問題を解決し、バンドルの更新を完了できるようになりました。Railsが再び機能しているようです。

  2. このすべての後、Railsサーバーで起動に問題が発生しました。このコマンドはそれを再び機能させました:bin/Rails db:migrate Rails_ENV=development

その後、環境とRailsすべてが再び正常に機能しているようです。

3
CanuckT

Ubuntuユーザーの場合:

Sudo apt-get install build-essential libcurl4-openssl-dev
12

Ubuntuシステムを使用している場合は、次のコマンドを使用します。

Sudo apt-get --assume-yes install gcc libcurl4-openssl-dev libxml2-dev Ruby ruby​​-dev

次に実行します

バンドルインストール

10
Shekhar Patil

次のコマンドを実行することで、linux/debianまたはubuntuでこれを簡単に解決できます。

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

あなたは大丈夫なはずです。

6
Jeffrey Amoah

私は同様の問題に遭遇しました:

In Gemfile:
  fog was resolved to 2.1.0, which depends on
    fog-ovirt was resolved to 1.1.6, which depends on
      ovirt-engine-sdk

ovirt 4.3.0は、次のエラーをスローしました。

Fetching ovirt-engine-sdk 4.3.0
Installing ovirt-engine-sdk 4.3.0 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.3.0/ext/ovirtsdk4c
/usr/local/rvm/rubies/Ruby-2.4.1/bin/Ruby -r ./siteconf20190508-5580-eyxazz.rb extconf.rb
checking for xml2-config... no
*** extconf.rb failed ***

その後、実行後にインストールをバンドルすることができました。

Sudo yum install libxml2 libxml2-devel

ただし、Sudo yum install libxml2 libxml2-devは成功しませんでした

0
Luke Rogers

Ubuntu 19.04(ディスコディンゴ)
まず、mkmf.logファイルを見つけて、エラーの原因を確認します。このメッセージのようなものがログに記録されている場合: "libxml2"パッケージは利用できません。herethis のようなページに移動する適切なバージョンを選択してくださいたとえば、libxml2-devの場合は、インストール方法。ランニング bundle installその後は成功するはずです。

0
MulleOne