2023月10日19日
RailsのプロジェクトのRubyをバージョンアップ
現在、Railsアプリの開発環境では、Ruby 2.7.6を使用しています。
開発中のプロジェクトから、最新版のRuby 3.2.2にアップデートしていこうと思います。
開発環境
- macOS 12.6
- Rails 6.1.7.6
- Ruby 2.7.6
- rbenv 1.2.0
ruby 3.2.2をインストール
rbenvでruby 3.2.2をインストールしようとするとエラーが発生しました。
$ rbenv install 3.2.2
To follow progress, use 'tail -f /var/folders/w7/_wr_6y2x1vddzkt6xqdd_cj40000gs/T/ruby-build.20231019164019.8039.log' or pass --verbose
Downloading openssl-3.1.2.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539
Installing openssl-3.1.2...
Installed openssl-3.1.2 to /Users/kuru/.rbenv/versions/3.2.2
Downloading ruby-3.2.2.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz
Installing ruby-3.2.2...
ruby-build: using readline from homebrew
ruby-build: using gmp from homebrew
BUILD FAILED (macOS 12.6 using ruby-build 20230717-11-g4d4678b)
Inspect or clean up the working tree at /var/folders/w7/_wr_6y2x1vddzkt6xqdd_cj40000gs/T/ruby-build.20231019164019.8039.2vbRCR
Results logged to /var/folders/w7/_wr_6y2x1vddzkt6xqdd_cj40000gs/T/ruby-build.20231019164019.8039.log
Last 10 log lines:
Check ext/psych/mkmf.log for more details.
*** Fix the problems, then remove these directories and try again if you want.
Generating RDoc documentation
/private/var/folders/w7/_wr_6y2x1vddzkt6xqdd_cj40000gs/T/ruby-build.20231019164019.8039.2vbRCR/ruby-3.2.2/lib/yaml.rb:3: warning: It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
uh-oh! RDoc had a problem:
cannot load such file -- psych
run with --debug for full backtrace
make: *** [rdoc] Error 1
libyamlをインストール
To eliminate this warning, please install libyaml and reinstall your ruby.
このようなメッセージが表示されているので、libyamlをインストールします。
$ brew install libyaml
再度、ruby 3.2.2をインストール
$ rbenv install 3.2.2
libyamlをインストール後に、Ruby 3.2.2をインストールすると正常にインストールされました。
RailsプロジェクトにRubyのバージョンを設定
開発中のRailsプロジェクトでは、.ruby-version
にrubyのバージョンを指定しています。
.ruby-version
のバージョンを3.2.2に変更します。
.ruby-version
3.2.2
Ruby 3.2.2の環境にRailsをインストール
$ gem install -v 6.1.7.6 rails
railsのインストール後に、下記のメッセージが表示される。
A new release of RubyGems is available: 3.4.10 → 3.4.21!
Run `gem update --system 3.4.21` to update your installation.
gemをアップデート
$ gem update --system 3.4.21
gemのバージョンを確認
$ gem -v
3.4.21
Gemfileのrubyのバージョンを変更
変更前
ruby '2.7.6'
変更後
ruby '3.2.2'
bundle installを実行
$ bundle install
以上の手順でRailsプロジェクトでRubyのバージョンアップを行い、Railsアプリが起動できることを確認しました。
手順を整理
整理すると下記のようになります。
libyamlをインストール
$ brew install libyaml
Ruby 3.2.2をインストール
$ rbenv install 3.2.2
Railsプロジェクトの.ruby-versionを変更
.ruby-version
3.2.2
Gemfileのrubyのバージョンを変更
変更後のGemfile
ruby '3.2.2'
bundle install
$ bundle install
ruby 3.2.2の環境にrailsをインストール
$ gem install -v 6.1.7.6 rails
gemをアップデート
$ gem update --system 3.4.21