はじめに
業務でバックエンドの環境構築をしていた際、bundle install
を実行したときに発生したエラーについてまとめます。
この記事は個人的なアウトプットを目的として作成したものです。そのため、誤った情報や不足している内容が含まれている可能性があります。もし間違いや気になる点がございましたら、ぜひご指摘いただけますと幸いです。
現象
bundle install
を実行した際、次のエラーが出ました。
Your Ruby version is 3.4.1, but your Gemfile specified 3.3.1
原因
Gemfile
に指定されているRuby
のバージョン (3.3.1) と、ローカルに入っているRuby
(3.4.1) が異なっていたのが原因です。
解決方法
Step 1: 利用可能なバージョンを確認
まずは rbenv でインストールできる Ruby バージョンを確認します。
rbenv install -list
実際の出力は以下のような感じでした。
3.2.9
3.3.9
3.4.5
jruby-10.0.1.0
mruby-3.4.0
picoruby-3.0.0
truffleruby-24.2.1
truffleruby+graalvm-24.2.1
ここで 「3.3.1 がない!」 と混乱しましたが、表示されるのはあくまで「主要なバージョンや最新のもの」だけです。
実際にはバージョン番号を直接指定すればインストール可能です。
Step 2: 必要なバージョンをインストール
表示されていなくても、次のようにすればインストールできます。
rbenv install 3.3.1
Step 3: インストール済みバージョンを確認
インストールできたかどうかを確認します。
rbenv versions
Step 4: プロジェクトで使用するバージョンを設定
今回のプロジェクトでは 3.3.1 を使用するので、ローカル設定を切り替えます。
rbenv local 3.3.1
再度確認すると、プロジェクトで 3.3.1 が使われるようになっていました。
rbenv versions
system
* 3.3.1 (set by /Users/hoge/.ruby-version)
これで準備完了です。
終わりに
Ruby
のバージョン違いでのエラーはよくありますが、rbenv install -list
に表示されないバージョンも直接指定すれば入れられるという点を知らずに少しハマりました。
今後は「表示されない=インストール不可」と思い込まないように気をつけたいです。
参考
『【Rails】Your Ruby version is 3.0.2, but your Gemfile specified 2.7.2の対処法』Qiita
『Your Ruby version is 2.6.3, but your Gemfile specified 2.7.1』Qitia