💎

Ruby3.2.0をインストールするときは、libyamlも必要

2022/12/28に公開

MacにRuby3.2.0をインストールしようとしたら失敗した。

$ rbenv install 3.2.0

BUILD FAILED (macOS 13.0.1 using ruby-build 20221225-6-ge741c92)
...
*** Fix the problems, then remove these directories and try again if you want.
Generating RDoc documentation
/private/var/folders/zn/xxxxxx/T/ruby-build.xxxxxxxx/ruby-3.2.0/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

Ruby3.2.0のリリースノートによるとlibyamllibffiの同梱が廃止されたとのこと。別途インストールする必要がある。

https://www.ruby-lang.org/ja/news/2022/12/25/ruby-3-2-0-released/

3rd パーティライブラリのソースコード同梱廃止
libyaml や libffi のような 3rd パーティのライブラリのソースコードの同梱を廃止しました

Psych に同梱していた libyaml のソースコードは削除されました。ユーザーは自身で Ubuntu や Debian プラットフォームなら libyaml-dev パッケージをインストールする必要があります。このパッケージ名称はプラットフォームごとに異なります。

Fiddle に同梱していた libffi のソースコードも削除されました

Homebrewを利用してlibyamlをインストールした後に、Ruby3.2.0をインストール。
(Linuxの場合でも同様にyumやaptなどのパッケージマネージャでlibyamlなど足りてないパッケージをインストールすれば良い)

$ brew install libyaml

$ rbenv install 3.2.0

自分の環境では、libyamlがインストールされていたが、Rubyのインストールに失敗した。
ruby-buildもインストールしなおすことで解決。

$ brew install libyaml ruby-build

Discussion