0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Heroku】Rubyバージョンの差異によるエラーの解決

Posted at

発生したエラー

スクリーンショット 2022-03-03 10.40.37.png
git commitしたの後にgit push heroku masterを実行し、アプリをデプロイしようとしたところ、Rubyバージョンが2.6.3のためにheroku-20にデプロイできないという旨のエラー発生した。。

解決方法

解決策としてherokuのstackを20から18に下げる方法もあるが、今回はRubyのバージョンをheroku-20に対応している2.6.6に変更することで解決していく。Rubyのバージョンを2.6.6に変更する際の作業の流れは以下のようになる。

1.Rubyバージョンの確認し、Ruby2.6.6をインストール

terminal
$ rvm -v //rvmのバージョンとインストールされていることを確認
$ rvm list //インストール済みのRubyバージョンを確認
$ rvm install 2.6.6 //Rubyのバージョン2.6.6をインストール

2.Rubyの使用バージョンを2.6.6に変更し、デフォルトのバージョンも変更

terminal
$ rvm use 2.6.6 //使用するRubyバージョンを2.6.6に切り替える
$ rvm --default use 2.6.6 //デフォルトで使用するRubyバージョンを2.6.6に切り替える
$ rvm list //念のためRubyバージョンを確認し、2.6.6がcurrent && defaultなのを確認する

3.GemfileのRubyのバージョンを2.6.6に変更

Gemfile
ruby '2.6.6'

4.Gemfile.lockを削除し、再度bundle installを実行

terminal
$ rm Gemfile.lock //Gemfile.lockファイルを削除する
$ bundle install

5.変更したファイルの差分を反映するためGitコマンドを実行

terminal
$ git add .
$ git commit -m 'change ruby version'
$ git push heroku master

終わりに

  • heroku-20に対応していないRubyバージョンを使用してデプロイしようとするとエラーが発生し、stackのバージョンを下げるよう提案される。
  • herokuのstackバージョンを下げることで解決しようとすると、アプリのパフォーマンスが低下したり、stackのサポート終了日が早くやってきてしまうといったデメリットがある。そのためHerokuも推奨しているようになるべく最新のサポートバージョンのRubyを使用するのが無難みたいですね。。

参考記事

  1. 【解決】heroku-20 You are trying to install ruby-2.6.5 on heroku-20. The Ruby version you are trying to install does not exist on this stack.
  2. AWS Cloud9でRubyのバージョンをアップデートする方法
  3. AWS Cloud9 でRuby on Rails の開発環境を構築する
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?