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

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

ただいまの
回答率

88.80%

bundle install でエラーが出る原因について

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,167

pyon_kiti_jp

score 90

環境: Windowd+Virtualbox+vagrant+Ubuntu

bundle install が上手くできません。
恐らく、nokogiri、pkg-configがうまくインストールできないのだと思います。
Gemfileには、このように指定をしております。

gem 'nokogiri', '1.10.1'
gem 'pkg-config', '~> 1.1'

エラーが出た後、libxml2と、libxml2-devをインストールした後、bundle installを再度実行しましたが、同じエラーが出ています。

下記、エラーの内容です。

Fetching nokogiri 1.10.1
Installing nokogiri 1.10.1 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

--use-system-libraries
checking if the C compiler accepts ... 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.

An error occurred while installing nokogiri (1.10.1), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.10.1' --source 'https://rubygems.org/'` succeeds before
bundling.
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 2

checkベストアンサー

+1

最初に

bundle installのエラーについて質問する場合は、
必ず利用しているOS(CentOS, Windows, Macなど)を明記してください。
解決方法が異なるので、回答者が困ります。

CentOSの場合

私の開発環境がCentOSなので、CentOSを前提に回答します。
※OS自体はWindowsを使っていますが、RailsはVagrantで構築した仮想マシン上のCentOSで開発しています。

CentOSの場合、native extensions系のエラーはxxx-develパッケージをインストールする事で解決できます。
例えば、今回のnokogiriの場合、
ERROR: cannot discover where libxml2 is located on your system. please make sure pkg-config is installed.

というエラーが出ているので、libxml2のライブラリがないという事が原因です。
CentOSの場合、libxml2-develパッケージをインストールすれば解決します。
具体的には、以下のコマンドを実行すれば良いです。
sudo yum install libxml2-devel -y

この後、bundle installを実行します。
さらにエラーが出た場合でもだいたい何らかのパッケージがないと言われるので、
さらにsudo yum install xxx-devel -yを実行して、bundle installをする
という手順を繰り返す事で解決できます。

nokogiriに必要なパッケージについて

nokogiriのエラーはbundle installでよく見かけるのですが、CentOSでは
libxml2-devel libxslt-develの2つが必要である事が分かっています。
あらかじめ、インストールしておくと良いと思います。

sudo yum install libxml2-devel libxslt-devel -y

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/04/18 12:47

    Ubuntuを利用しているため、このコマンドでしょうか。
    apt-get install libxml2-devel -y

    キャンセル

  • 2019/04/18 12:48

    先に、ご回答頂いておりました。失礼。

    キャンセル

  • 2019/04/19 18:14

    libxml2と、libxml2-devインストールして、bundle installしたが、まだ、同じ内容のエラーが出ています。どなたか、アドバイスをお願いします。

    キャンセル

0

$ sudo apt-get install pkg-config


で改善するかもしれません

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/04/21 00:14

    はい、そのままのエラー内容になります。

    キャンセル

  • 2019/04/21 16:44

    再現するためにUbuntuのバージョンを教えてください。
    vagrant cloudからダウンロードできるなら
    config.vm.box = "ubuntu/bionic64"
    の部分を教えていただければ、再現できるか試してみます。

    キャンセル

  • 2019/04/21 19:15

    ご丁寧にありがとうございます。config.vm.box = "bento/ubuntu-16.04"でございます。しかし、実は・・・なかなか解決にいたらなかったため、rm -rfして、いちから、rails newする事にしました。しかし、rails newでも同じエラーが出ました。やはり、原因はnokogiriでした。nokogiriのバージョンが、1.10.1でこれがいけなかったようで、gam update nokogiriをすると、最新バージョンの1.10.2にあがり、これでrails newが上手くいくようになりました。

    キャンセル

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

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

関連した質問

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