MeWrite Docs

Ruby: Bundle install failed

Bundlerでgemのインストールが失敗した場合の原因と解決策

概要

bundle installでgemのインストールが失敗する場合のエラーです。

エラーメッセージ

``` An error occurred while installing nokogiri (1.13.0), and Bundler cannot continue. Make sure that gem install nokogiri -v '1.13.0' --source 'https://rubygems.org/' succeeds before bundling. ```

原因

  1. ネイティブ拡張のビルド失敗: C拡張のコンパイルエラー
  2. 依存ライブラリの不足: libxml2等がない
  3. Rubyバージョンの不一致: gemが要求するバージョンと異なる
  4. 権限の問題: システムディレクトリへの書き込み権限

解決策

1. 依存ライブラリをインストール

```bash

Ubuntu/Debian

sudo apt-get install build-essential libssl-dev libreadline-dev zlib1g-dev

nokogiri の依存

sudo apt-get install libxml2-dev libxslt1-dev

pg gem の依存

sudo apt-get install libpq-dev

mysql2 gem の依存

sudo apt-get install libmysqlclient-dev

macOS

brew install libxml2 libxslt ```

2. bundle config でオプション指定

```bash

nokogiri でシステムライブラリを使用

bundle config build.nokogiri –use-system-libraries

mysql2 のソケット指定

bundle config build.mysql2 –with-mysql-config=/usr/bin/mysql_config

pg の設定

bundle config build.pg –with-pg-config=/usr/bin/pg_config ```

3. 特定gemを個別インストール

```bash

詳細なエラーを確認

gem install nokogiri -v ‘1.13.0’ – –use-system-libraries

成功したら bundle install を再実行

bundle install ```

4. Rubyバージョンを確認

```bash

現在のバージョン

ruby -v

Gemfileで要求されるバージョン

cat .ruby-version

rbenv/rvm でバージョン切り替え

rbenv install 3.2.0 rbenv local 3.2.0 ```

5. キャッシュをクリア

```bash

bundle のキャッシュをクリア

bundle clean –force rm -rf vendor/bundle

gem のキャッシュをクリア

gem cleanup ```

6. パスを指定してインストール

```bash

プロジェクトローカルにインストール

bundle config set –local path ‘vendor/bundle’ bundle install ```

よくある間違い

  • sudo bundle install を使う(権限問題の元)
  • 開発用ヘッダをインストールしない
  • 古いBundlerを使い続ける

関連エラー

関連エラー

Ruby の他のエラー

最終更新: 2025-12-10