M1 MacでRubyの環境構築したらエラーで詰まった話

# はじめに
homebrew、anyenv、rbenvを導入しM1 MacでRubyの環境構築を行なった際にエラーで詰まったので記事に残そうと思います。

homebrewからanyenvまでの導入は以下記事をご参照ください。
[M1 Macで初めての環境構築 (homebrew, anyenv, nodenv使用)](https://qiita.com/mavengr/items/e13a4486cdeb6f447436 'M1Mac環境構築')

# Ruby環境構築
anyenvからrbenvを導入する
```zsh
anyenv install rbenv
```

### シェルの再起動
rbenvのインストールが完了したらシェルを再起動する
```zsh
exec $SHELL -l
```

### インストール可能なバージョンを確認
```zsh
rbenv install -l
```

### Rubyをインストール
[Ruby公式サイト](https://www.ruby-lang.org/ja/downloads/ 'Ruby')より安定版を確認しインストールする
しばらく時間が掛かります。
```zsh
rbenv install {任意のバージョン}
```

### エラーが発生
どこかで間違えたのか
```zsh
Downloading ruby-3.2.1.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.tar.gz
Installing ruby-3.2.1...

BUILD FAILED (macOS 13.2.1 using ruby-build 20230309-1-gf3c1ccc)

Inspect or clean up the working tree at /var/folders/wc/zw016qq16dnbgshf5_r7lnmr0000gn/T/ruby-build.20230313221439.5208.wd6YFD
Results logged to /var/folders/wc/zw016qq16dnbgshf5_r7lnmr0000gn/T/ruby-build.20230313221439.5208.log
```

Googleで調べる
GitHubのIssueにまったく同じエラーで詰まっていた人を発見
[Installation issues with Arm Mac (M1 Chip) #1691](https://github.com/rbenv/ruby-build/issues/1691 'M1MacRuby')

どうやら`rbenv install`の前に`RUBY_CFLAGS="-w"`を付ければ解決するらしい

#### 再インストール
```zsh
RUBY_CFLAGS="-w" rbenv install 3.2.1
```

また同じエラーが起きた
```zsh
BUILD FAILED (macOS 13.2.1 using ruby-build 20230309-1-gf3c1ccc)

Inspect or clean up the working tree at /var/folders/wc/zw016qq16dnbgshf5_r7lnmr0000gn/T/ruby-build.20230313222147.80358.n055lY
Results logged to /var/folders/wc/zw016qq16dnbgshf5_r7lnmr0000gn/T/ruby-build.20230313222147.80358.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/wc/zw016qq16dnbgshf5_r7lnmr0000gn/T/ruby-build.20230313222147.80358.n055lY/ruby-3.2.1/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
```

DeepLで翻訳してみると

```zsh
BUILD FAILED (macOS 13.2.1 ruby-build 20230309-1-gf3c1ccc を使用)

var/folders/wc/zw016qq16dnbgshf5_r7lnmr0000gn/T/ruby-build.20230313222147.80358.n055lYの作業ツリーを点検またはクリーンアップします。
Results logged to /var/folders/wc/zw016qq16dnbgshf5_r7lnmr0000gn/T/ruby-build.20230313222147.80358.log

直近の10行のログです。
	詳細はext/psych/mkmf.logを確認してください。
*** 問題を修正した後、これらのディレクトリを削除し、必要であれば再試行してください。
RDocドキュメントの生成
/private/var/folders/wc/zw016qq16dnbgshf5_r7lnmr0000gn/T/ruby-build.20230313222147.80358.n055lY/ruby-3.2.1/lib/yaml.rb:3: warning: あなたのrubyインストールには、（YAML出力用の）psychが欠けているようです。
この警告を消すには、libyamlをインストールして、rubyを再インストールしてください。
うおおおぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ RDocに問題が発生しました。
そのようなファイルを読み込むことができません -- psych

完全なバックトレースを得るために --debug を付けて実行する。
```

どうやら`libyaml`が必要みたいだ。

### `libyaml`とは
そもそも`libyaml`とは何なのか調べてみた。
C言語でYAMLファイルのコード解析と出力を簡単にするためのライブラリらしい
[Ruby 3.2.0](https://www.ruby-lang.org/ja/news/2022/12/25/ruby-3-2-0-released/ 'Ruby3.2.0')より`libyaml`は同梱が廃止になったらしい



### `libyaml`を導入
homebrewより`libyaml`をインストールする
```zsh
brew install libyaml
```


### 再々インストール
今度こそうまくいってくれ
```zsh
rbenv install {任意のバージョン}
```

インストールに成功したメッセージが表示されました。
```zsh
Downloading ruby-3.2.1.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.tar.gz
Installing ruby-3.2.1...
ruby-build: using libyaml from homebrew
Installed ruby-3.2.1 to /Users/ユーザー名/.anyenv/envs/rbenv/versions/3.2.1


NOTE: to activate this Ruby version as the new default, run: rbenv global 3.2.1
```

最後に`NOTE:`にある通りグローバルのRubyのバージョンを設定します。
```zsh
rbenv global 3.2.1
```

rbenvに認識させるために以下を実行
```zsh
rbenv rehash
```

### バージョン確認
```zsh
ruby -v
```

```zsh
ruby 3.2.1 (2023-02-08 revision 31819e82c8) [arm64-darwin22]
```

# 最後に
エラーメッセージを最初からちゃんと読んでいれば`RUBY_CFLAGS="-w"`の工程はなくてもよかったと感じました。
エラーメッセージはきちんと読むべきです。