はじめに
Rubyを触っていたときにタイトルのエラーが出たので記事にしました。
エラーとの遭遇
作成途中だったアプリを触っていたときに、bundle install
でエラーに遭遇。
$ bundle install
-> Ruby version is 2.6.3, but your Gemfile specified 2.5.8
エラー文から、RubyのバージョンとGemfileが指定してるバージョンが違うんだろうなーと検討がつく。
対応したこと
まず、Rubyのバージョンを確認してみる。
$ ruby -v
-> ruby 2.5.8p224 (2020-03-31 revision 67882) [x86_64-darwin19]
rbenvを使用しているので、そちらでも確認
$ rbenv versions
system
2.1.5
2.5.1
* 2.5.8
2.6.3
2.7.1
見た感じは合ってるっぽい。
今使っているRubyのパスを参照したりできるgem environment
で確認してみよう。
$ gem environment
-> RubyGems Environment:
- RUBYGEMS VERSION: 2.7.6.2
- RUBY VERSION: 2.5.8 (2020-03-31 patchlevel 224) [x86_64-darwin19]
- INSTALLATION DIRECTORY: /Users/username/.rbenv/gems/2.5.0
- USER INSTALLATION DIRECTORY: /Users/username/.gem/ruby/2.5.0
- RUBY EXECUTABLE: /Users/username/.rbenv/versions/2.5.8/bin/ruby
- EXECUTABLE DIRECTORY: /Users/username/.rbenv/gems/2.5.0/bin
- SPEC CACHE DIRECTORY: /Users/username/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/username/.rbenv/versions/2.5.8/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-19
- GEM PATHS:
- /Users/username/.rbenv/gems/2.5.0
- GEM CONFIGURATION:
...(続く)
うーん、間違ってなさそう...
解決した方法
bundle の配置場所を確認してみる
$ which bundle
-> /usr/local/bin/bundle
中身を見てみる
-> % cat /usr/local/bin/bundle
#!/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'bundler' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'rubygems'
version = ">= 0.a"
str = ARGV.first
if str
str = str.b[/\A_(.*)_\z/, 1]
if str and Gem::Version.correct?(str)
version = str
ARGV.shift
end
end
...(続く)
あ、/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
を参照しているぞ...
$ which ruby
/Users/username/.rbenv/shims/ruby
参照先を/Users/username/.rbenv/shims/ruby
に変更。
無事bundle install
が通りました!
参考記事