MacOS 12.5.1 に rbenv で Ruby 3.1.3 をインストールする

今後、 Ruby を使うことになりそうなので、ローカルPCに Ruby を rbenv でインストールしようとしたら

```zsh
BUILD FAILED (macOS 12.5.1 using ruby-build 20221124)
```

でつまづいた。
対応策ふくめてインストール方法をメモしておく。


## 環境

- MacOS 12.5.1
- anyenv 1.1.5


## インストール手順

### 1. anyenv で rbenv をインストールする

anyenv でコマンドを叩いていく。

```zsh
# rbenv があるのを確認
$ anyenv install -l
  Renv
  crenv
  denv
  erlenv
  exenv
  goenv
  hsenv
  jenv
  jlenv
  kubectlenv
  luaenv
  nodenv
  phpenv
  plenv
  pyenv
  rbenv
  sbtenv
  scalaenv
  swiftenv
  tfenv

# インストール
$ anyenv install rbenv

# とくに問題なく、完了のログが出た
Install rbenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.

# 指示通り実行しておく
$ exec $SHELL -l
```

anyenv で管理対象になっていることも確認。

```zsh
$ anyenv versions
rbenv:
* system
```

rbenv コマンドも特に問題なく利用可能。

```zsh
$ rbenv --version
rbenv 1.2.0-48-g6717c62
```


### 2. rbenv で Ruby 3.1.3 をインストールする

まずはインストール可能な Ruby のバージョンを確認。

```zsh
# 2022/11末時点ではこんな感じ
$ rbenv install -l
2.7.7
3.0.5
3.1.3
jruby-9.4.0.0
mruby-3.1.0
picoruby-3.0.0
rbx-5.0
truffleruby-22.3.0
truffleruby+graalvm-22.3.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.
```

Ruby の公式サイトによると、現在の安定版が 3.1.3 とのこと。

https://www.ruby-lang.org/ja/downloads/

rbenv にもある 3.1.3 をインストールする。

```zsh
$ rbenv install 3.1.3
To follow progress, use 'tail -f /var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.log' or pass --verbose
Downloading ruby-3.1.3.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.3.tar.gz
Installing ruby-3.1.3...
ruby-build: using readline from homebrew
ruby-build: using gmp from homebrew

BUILD FAILED (macOS 12.5.1 using ruby-build 20221124)

Inspect or clean up the working tree at /var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.liTHzF
Results logged to /var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.log

Last 10 log lines:
	from /private/var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.liTHzF/ruby-3.1.3/lib/fileutils.rb:219:in `block in mkdir_p'
	from /private/var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.liTHzF/ruby-3.1.3/lib/fileutils.rb:211:in `each'
	from /private/var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.liTHzF/ruby-3.1.3/lib/fileutils.rb:211:in `mkdir_p'
	from ./tool/rbinstall.rb:218:in `makedirs'
	from ./tool/rbinstall.rb:331:in `prepare'
	from ./tool/rbinstall.rb:432:in `block in <main>'
	from ./tool/rbinstall.rb:1116:in `block in <main>'
	from ./tool/rbinstall.rb:1113:in `each'
	from ./tool/rbinstall.rb:1113:in `<main>'
make: *** [do-install-all] Error 1
$ 
```

**失敗した。**
ログを末尾から遡って確認すると、以下のエラー行にたどり着いた。

```zsh
/private/var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.liTHzF/ruby-3.1.3/lib/fileutils.rb:240:in `mkdir': Permission denied @ dir_s_mkdir - /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/Users (Errno::EACCES)
```

`Permission denied @ dir_s_mkdir - /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/Users (Errno::EACCES)` ということは、権限の問題と思われる。

検索してみると、同じところでつまづいている方がいて、権限付与するとうまくいくとあった。

https://rochefort.hatenablog.com/entry/anyenv_to_asdf

見習って、以下のコマンドを実行。

```zsh
$ sudo chown $(whoami) /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
```

権限付与した状態で再実行すると、今度はうまく行った。

```zsh
$ rbenv install 3.1.3
To follow progress, use 'tail -f /var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128150337.44253.log' or pass --verbose
Downloading ruby-3.1.3.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.3.tar.gz
Installing ruby-3.1.3...
ruby-build: using readline from homebrew
ruby-build: using gmp from homebrew
Installed ruby-3.1.3 to /Users/origer/.anyenv/envs/rbenv/versions/3.1.3


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

```

### 3. インストールした Ruby　3.1.3 を利用する

特定のディレクトリだけ、とかではなく、全般的に Ruby 3.1.3 を使う形にしたかったので、以下のコマンドを実行。

```zsh
$ rbenv global 3.1.3

# 再ログインもしておく
$ exec $SHELL -l

# ruby が 3.1.3 になっていることを確認
$ ruby --version
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-darwin21]
```


## おまけ

インストール手順でつまづいたとき、 以下のサイトも参考にした。（今回のエラーには効果がなかったが）

https://github.com/rbenv/rbenv

https://github.com/rbenv/ruby-build/wiki#suggested-build-environment

https://blog.ingage.jp/entry/2022/11/22/093000