ruby のバージョンを上げてから、bundle install でコケた時にやること
Ruby Ruby on Rails
Published: 2019-04-25

やったこと

Rails5 で利用する Ruby のバージョンをあげた後、bundle install がコケた時のメモです。

確認環境

作業前

$ ruby -v
ruby 2.2.7p470 (2017-03-28 revision 58194) [x86_64-darwin16]

$ rails --version
Rails 5.2.3

作業後

$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin17]

$ rails --version
Rails 5.2.3

実施

Ruby のバージョンを 2.2.7 -> 2.5.0 にした後、

bundler のインストール

$ bundle update
エラー抜粋
rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.1.5
  2.2.2
  2.2.7

bundle コマンドが rbenv の 2.5.0 で利用できない状態だからです。

ということで、bundler を入れます。

$ gem install bundler
Fetching: bundler-2.0.1.gem (100%)
Successfully installed bundler-2.0.1
Parsing documentation for bundler-2.0.1
Installing ri documentation for bundler-2.0.1
Done installing documentation for bundler after 3 seconds
1 gem installed

bundler でコケる

$ bundle install
Traceback (most recent call last):
	2: from /Users/xxxx/.rbenv/versions/2.5.0/bin/bundle:23:in `<main>'
	1: from /Users/xxxx/.rbenv/versions/2.5.0/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/Users/xxxx/.rbenv/versions/2.5.0/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
$ gem install bundler -v 1.16.1

これを実行して、もう1回 bundle install します。

nokogiri でコケる

$ bundle install

エラー抜粋

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

...


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"

この gem を取り込めば OK そうです。

インストール後、bundle install は無事に終わりました。(やっていることの割に険しかった)

参考