rbenv install --listで最新版Rubyが表示されないときの対処法(Mac版)

# はじめに
### パッケージマネージャー（この記事ではHomebrew）を使用してrbenvをインストールした場合、パッケージマネージャーを使用してアップグレードしましょう。間違ってもGitHubからクローンしてくるやり方との併用は避けてください！！　
- `git clone`と併用してしまった場合
自分の場合、`Homebrew`と`git clone`を併用して`rbenv`をインストールしてしまったため問題が発生し、結果的に`rbenv`をアンインストール→インストールすることになりました。この記事はその経緯を書いた記事です。

- `git clone`と併用してない場合
`rbenv`と`ruby-build`を`Homebrew`でアップグレードしたにも関わらずリストに表示されない場合、`rbenv`のセットアップに何かしらの問題が発生してる可能性があるので`rbenv-doctor`を実行してみてましょう。エラーメッセージに従い対処すれば解決できると思います。本記事は`git clone`と併用してしまった人向けに書いた記事です。
```
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
```
#  １.問題発生した経緯
※ Homebrewは最新版にアップグレードしてから進めています

最初、ターミナルには(執筆時点の)最新安定版3.2.2が表示されませんでした。

```
~ $ rbenv install --list
2.5.8
2.6.6
2.7.2
3.0.0
jruby-9.2.16.0
mruby-2.1.2
rbx-5.0
truffleruby-21.0.0
truffleruby+graalvm-21.0.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.
```
「`rbenv`、`ruby-build`のバージョンが古いのか？」と思いHomebrewを使いアップグレード、しかしどちらも既にインストール済みと表示されました。↓

```
~ $ brew upgrade rbenv ruby-build
==> Downloading https://formulae.brew.sh/api/formula.jws.json
##################################################################### 100.0%
==> Downloading https://formulae.brew.sh/api/cask.jws.json
##################################################################### 100.0%
Warning: rbenv 1.2.0 already installed
Warning: ruby-build 20230717 already installed
```

念の為もう一度リスト表示するがやっぱり表示されません。↓

```
 ~ $ rbenv install --list         
2.5.8
2.6.6
2.7.2
3.0.0
jruby-9.2.16.0
mruby-2.1.2
rbx-5.0
truffleruby-21.0.0
truffleruby+graalvm-21.0.0

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

 そこで[rbenvが最新なのに、最新のRubyバージョンをインストールできない場合 \- Qiita](https://qiita.com/YotaHamasaki/items/fcffd8338d3d1370fc82)を参考にして下のコマンドを実行しました。これが後々問題を起こします
 ### ※ 冒頭でも言いましたがHomebrewでrbenvのインストールをした場合、絶対に実行しないほうがいいです。

```
$ git clone https://github.com/sstephenson/rbenv.git .rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
```

一応リストに3.2.2が表示されるようになりました
```
~ $ rbenv install --list
3.0.6
3.1.4
3.2.2
jruby-9.4.3.0
mruby-3.2.0
picoruby-3.0.0
truffleruby-23.0.0
truffleruby+graalvm-23.0.0

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

しかしrbenv-doctorを実行してみると問題が起きているのが分かりました。
```
 ~ $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /usr/local/bin/rbenv 
Checking for rbenv shims in PATH: OK 
Checking `rbenv install' support: multiple　＃`git clone`してしまっためrbenvが複数インストールされてしまった
  
  You seem to have multiple `rbenv-install' in the following locations.
  Please pick just one installation and remove the others.
  
  /Users/username/.rbenv/plugins/ruby-build/bin/rbenv-install　
  #↑このディレクトリを消したい
  /usr/local/bin/rbenv-install
  #↑このディレクトリも消したい

Counting installed Ruby versions: 4 versions
Auditing installed plugins: OK
```

# ２.対処法
## ①rbenvをすべてアンインストールする
[rbenv](https://github.com/rbenv/rbenv)　rbenv開発元のuninstall方法に則して進めていきます

まずシェルの起動設定ファイル(ここでは.zshrc)からrbenv initの行を削除するかコメントアウトしてください。(個人的には削除がおすすめ)

```
エディタで.zshrcファイルを開く
eval "$(rbenv init -)"　←この行を削除するかコメントアウト
```

次にrbenvがインストールされているディレクトリを削除します。
※ rm -rfコマンドで消されたディレクトリは基本的には元に戻らないので、他のディレクトリを消さないよう注意してください

/usr/local/bin/からrbenvに関連する４つのディレクトリを削除
```
 $ rm -rf rbenv rbenv-install rbenv-uninstall ruby-build
```

次に/Users/username/からrbenvを削除
```
$ rm -rf ~/.rbenv　を実行し削除
```

そして最後に

```
$ brew uninstall rbenv を実行します
```
以上でアンインストールは終了です！

## ②rbenvのインストール
[rbenv](https://github.com/rbenv/rbenv)　rbenv開発元のinstall方法に則して進めていきます

ターミナルを開いて
```
Homebrewを使ってインストール
$ brew install rbenv ruby-build
```

```
$ rbenv init　を実行
# Load rbenv automatically by appending
# the following to ~/.zshrc:

eval "$(rbenv init - zsh)"
```

エディタで.zshrcファイルを開く
```
eval "$(rbenv init - zsh)"　←この行を追加する
```
ここで一度ターミナルを再起動してrbenv-doctorを実行

```
~ $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20230717)　
＃↑ここが正常になっていることを確認
Counting installed Ruby versions: none
  There aren't any Ruby versions installed under `/Users/username/.rbenv/versions'.
  You can install Ruby versions like so: rbenv install 3.2.2
Auditing installed plugins: OK
```
無事にrbenvインストール完了！

## ③最新版のRubyが表示されるかリストを確認する

```
$ rbenv install --list
3.0.6
3.1.4
3.2.2
jruby-9.4.3.0
mruby-3.2.0
picoruby-3.0.0
truffleruby-23.0.0
truffleruby+graalvm-23.0.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.
```
（執筆時点の）最新版Ruby3.2.2が表示されるのを確認できました😁

### ◎参考にしたサイト
- [rbenv/rbenv: Manage your app's Ruby environment](https://github.com/rbenv/rbenv)
- [rbenv install \-\-list\-all doesn't show the latest ruby version after git update · Issue \#2102 · rbenv/ruby\-build](https://github.com/rbenv/ruby-build/issues/2102)
# 終わりに
この記事だけではなく開発元のREADMEをみることをおすすめします。
記事の内容に誤りがあった場合、ご指摘頂けるとありがたいです。都度、加筆・修正させて頂きます。