久しぶりに Rails アプリを作成しようとしたところ、bundle install した際に以下のようなエラーが発生した。
環境は WSL2 + Ubuntu 22.04 + Ruby 3.2.2 + Rails 7.2.1
$ bundle install
An error occurred while installing psych (5.1.2), and Bundler cannot continue.
In Gemfile:
debug was resolved to 1.9.2, which depends on
irb was resolved to 1.14.0, which depends on
rdoc was resolved to 6.7.0, which depends on
psych
調べてみると Ruby 3.2 での変更で、3rd パーティライブラリのソースコード同梱が廃止された影響により、 psych を利用するのに必要な libyaml を自分でインストールしないといけなくなったようだ。
Ruby 3.2.0 リリースPsych に同梱していた libyaml のソースコードは削除されました。ユーザーは自身で Ubuntu や Debian プラットフォームなら libyaml-dev パッケージをインストールする必要があります。このパッケージ名称はプラットフォームごとに異なります。
今回は Ubuntu なので apt install コマンドで libyaml-dev をインストールすることにした。
$ sudo apt install libyaml-dev
その後 bundle install を実行すると正常にインストールが完了した。
$ bundle install
Bundle complete! 16 Gemfile dependencies, 98 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
参考にしたページ、感謝。
bundle install の際 psychのインストールに失敗する | RYOZEN Scratch Creations