質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.70%

ruby on rails のbundle install を通したいです…。

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 889

take77

score 83

今回初めて質問させていただきます。
お忙しいところ恐縮ですが、何卒ご助力をいただきたく思います。
よろしくお願いいたします。

 前提・実現したいこと

実現したいこと:『railsのbundle instalを通したい』

現在、自分で作ったrailsアプリケーションをawsを使ってデプロイしようとしています。アプリではファイルのアップロード機能を持たせておりますので、それに伴いaws s3を活用する必要が出てきました。そこで、Gemfileにgem 'fog'を追加してbundle installを行ったところ、以下に示すエラーを吐かれてしまいました。

開発環境

rails: 5.2.0
ruby: 2.4.2
os: centos6.5
*windowsにvagrantを入れて開発しています。

 発生している問題・エラーメッセージ

発生しているエラーは以下の通りです。

Fetching gem metadata from https://rubygems.org/........
Fetching gem metadata from https://rubygems.org/.
(文字数の関係で中略)
Using fog-core 1.45.0
Using multi_json 1.13.1
Using fog-json 1.2.0
Using ipaddress 0.8.3
Using xml-simple 1.1.5
Using fog-aliyun 0.3.2
Using fog-xml 0.1.3
Using fog-atmos 0.1.0
Using fog-aws 2.0.1
Using fog-brightbox 0.16.1
Using fog-cloudatcost 0.1.2
Using fog-digitalocean 0.4.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.6.0
Using fog-openstack 0.3.6
Using json 2.1.0
Fetching ovirt-engine-sdk 4.2.5
Installing ovirt-engine-sdk 4.2.5 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /home/vagrant/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/ovirt-engine-sdk-4.2.5/ext/ovirtsdk4c
/home/vagrant/.rbenv/versions/2.4.2/bin/ruby -r ./siteconf20181017-12122-phd71i.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=/home/vagrant/.rbenv/versions/2.4.2/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:

  /home/vagrant/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/extensions/x86_64-linux/2.4.0-static/ovirt-engine-sdk-4.2.5/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /home/vagrant/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/ovirt-engine-sdk-4.2.5 for inspection.
Results logged to /home/vagrant/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/extensions/x86_64-linux/2.4.0-static/ovirt-engine-sdk-4.2.5/gem_make.out

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

In Gemfile:
  fog was resolved to 2.0.0, which depends on
    fog-ovirt was resolved to 1.1.2, which depends on
      ovirt-engine-sdk

 試したこと

gem install ovirt-engine-sdk -v '4.2.5'の実行
エラーメッセージの終盤に出ていたコマンドを直接実行してみました。
実行結果は以下の通りです。

Building native extensions.  This could take a while...
ERROR:  Error installing ovirt-engine-sdk:
        ERROR: Failed to build gem native extension.

    current directory: /home/vagrant/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/ovirt-engine-sdk-4.2.5/ext/ovirtsdk4c
/home/vagrant/.rbenv/versions/2.4.2/bin/ruby -r ./siteconf20181017-12230-1yfvobi.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=/home/vagrant/.rbenv/versions/2.4.2/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:

  /home/vagrant/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/extensions/x86_64-linux/2.4.0-static/ovirt-engine-sdk-4.2.5/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /home/vagrant/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/ovirt-engine-sdk-4.2.5 for inspection.
Results logged to /home/vagrant/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/extensions/x86_64-linux/2.4.0-static/ovirt-engine-sdk-4.2.5/gem_make.out

sudo yum install libcurl-develの実行
gem install ovirt-engine-sdk -v '4.2.5'を実行した際のエラーメッセージの終盤にThe "libcurl" package isn't available. (RuntimeError)と出ていたことに気がつき、調べてみたところ、「libcurlに関するパッケージが足りないことが原因である」という趣旨の指摘が散見されました。こちらのコマンドを実行する前にsudo yum install libcurlなども試してみたのですが、Nothing to doで終わっていたので、正常に動作したものと判断しました。
しかしながら、sudo yum install libcurl-develに関してだけは以下のエラーが発生しました。

Loaded plugins: fastestmirror, versionlock
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirror.fairway.ne.jp
 * epel: mirror01.idc.hinet.net
 * extras: mirror.fairway.ne.jp
 * ius: mirrors.kernel.org
 * updates: mirror.fairway.ne.jp
Resolving Dependencies
--> Running transaction check
---> Package libcurl-devel.x86_64 0:7.19.7-53.el6_9 will be installed
--> Processing Dependency: libcurl = 7.19.7-53.el6_9 for package: libcurl-devel-7.19.7-53.el6_9.x86_64
--> Processing Dependency: libidn-devel for package: libcurl-devel-7.19.7-53.el6_9.x86_64
--> Running transaction check
(文字数の関係で中略)
---> Package db4-utils.x86_64 0:4.7.25-20.el6_7 will be updated
---> Package db4-utils.x86_64 0:4.7.25-22.el6 will be an update
---> Package readline.i686 0:6.0-4.el6 will be installed
--> Processing Dependency: libtinfo.so.5 for package: readline-6.0-4.el6.i686
--> Running transaction check
---> Package ncurses-libs.i686 0:5.7-4.20090207.el6 will be installed
--> Finished Dependency Resolution
Error:  Multilib version problems found. This often means that the root
       cause is something else and multilib version checking is just
       pointing out that there is a problem. Eg.:

         1. You have an upgrade for libssh2 which is missing some
            dependency that another package requires. Yum is trying to
            solve this by installing an older version of libssh2 of the
            different architecture. If you exclude the bad architecture
            yum will tell you what the root cause is (which package
            requires what). You can try redoing the upgrade with
            --exclude libssh2.otherarch ... this should give you an error
            message showing the root cause of the problem.

         2. You have multiple architectures of libssh2 installed, but
            yum can only see an upgrade for one of those arcitectures.
            If you don't want/need both architectures anymore then you
            can remove the one with the missing update and everything
            will work.

         3. You have duplicate versions of libssh2 installed already.
            You can use "yum check" to get yum show these errors.

       ...you can also use --setopt=protected_multilib=false to remove
       this checking, however this is almost never the correct thing to
       do as something else is very likely to go wrong (often causing
       much more problems).

       Protected multilib versions: libssh2-1.4.2-2.el6_7.1.i686 != libssh2-1.8.0-5.0.cf.rhel6.x86_64
Error: Protected multilib versions: libcurl-7.19.7-53.el6_9.i686 != libcurl-7.57.0-1.0.cf.rhel6.x86_64

依存関係による問題が云々というところまでは把握できたのですが、解決するための文献を見つけることができませんでした。

何卒お力添えをいただきますよう、お願い申し上げます。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

sudo yum install libcurl-devel

ただ、fogの代わりにfog-awsを使った方がいい可能性もありますよ

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/17 18:55

    sudo yum downgrade libcurl
    sudo yum install libcurl-devel

    なんかも治りそうな気がします。

    キャンセル

  • 2018/10/18 12:18

    回答および補足情報、ありがとうございます。

    昨晩試したことに関して、一通り記述させていただきます。
    ・fog-awsについて
    試してみたところ、一通りbundle installが通ることを確認することができました。以降に関しては独自の設定があるようですが、今回のerrorに関する問題から離れると思われるため、検証は行なっておりません。

    ・sudo yum install libcurl-devel-7.19.7-53.el6_9.i686について
    こちらに関してはsudo yum install libcurl-develを実行した時と同様のエラーが発生してしまいました。末文もError: Protected multilib versions: libcurl-7.19.7-53.el6_9.i686 != libcurl-7.57.0-1.0.cf.rhel6.x86_64のままで変化がない状況です。

    ・sudo yum downgrade libcurlについて
     こちらに関しては以下のエラーが出てしまいました
    Error: Package: curl-7.57.0-1.0.cf.rhel6.x86_64 (@city-fan.org)
    Requires: libcurl(x86-64) >= 7.57.0-1.0.cf.rhel6
    Removing: libcurl-7.57.0-1.0.cf.rhel6.x86_64 (@city-fan.org)
    libcurl(x86-64) = 7.57.0-1.0.cf.rhel6
    Downgraded By: libcurl-7.19.7-53.el6_9.x86_64 (base)
    libcurl(x86-64) = 7.19.7-53.el6_9

    その後のsudo yum install libcurl-develについてもエラー内容に変更がありませんでした。おそらく、上記のエラーが原因と思われます。

    このあとは、一通りfog-awsでの設定を記述して本番環境に対応してみたのち、centos6.10へのアップデートを試してみようと思います。

    取り急ぎ、ご連絡のみ。

    キャンセル

  • 2018/10/21 17:57

    この度は、貴重な情報をいただきまして、誠にありがとうございました。

    表題になっておりましたbundle installに関する問題に関しては、先に示しました通り、fog-awsに使用するgemを変更することによって回避することができました。
    もちろん、根本的な解決ではありませんし、centosのアップデートや依存関係の検証など、行うべき項目は残っております。
    しかしながら、表題の問題とは乖離してくると思われますので、いったんasm様のご指導をベストアンサーとさせていただいたうえで、こちらの質問をcloseさせていただきます。

    ご丁寧なご指導を賜りましたこと、重ねて御礼申し上げます。

    キャンセル

0

https://qiita.com/MosamosaPoodle/items/8dc818191d59548b48c7
こちらが参考になるのではないでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/17 12:15 編集

    回答ありがとうございます。
    リンク、確認させていただきました。

    試すにあたり、一点気になったことがあるのですが、リンク先の状態と違って、 checking for curl-config... no が出てしまっている状態なのですが、ここに関しては問題ないのでしょうか。

    稚拙な質問かもしれませんが、ご指導をいただけますと幸いです。
    よろしくお願いいたします。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.70%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る