はじめに
パッケージマネージャー(この記事では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
1.問題発生した経緯
※ 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を参考にして下のコマンドを実行しました。これが後々問題を起こします
※ 冒頭でも言いましたが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
2.対処法
①rbenvをすべてアンインストールする
rbenv rbenv開発元のuninstall方法に則して進めていきます
まずシェルの起動設定ファイル(ここでは.zshrc)からrbenv initの行を削除するかコメントアウトしてください。(個人的には削除がおすすめ)
エディタで.zshrcファイルを開く
eval "$(rbenv init -)" ←この行を削除するかコメントアウト
次にrbenvがインストールされているディレクトリを削除します。
※ rm -rfコマンドで消されたディレクトリは基本的には元に戻らないので、他のディレクトリを消さないよう注意してください
/usr/local/bin/からrbenvに関連する4つのディレクトリを削除
$ rm -rf rbenv rbenv-install rbenv-uninstall ruby-build
次に/Users/username/からrbenvを削除
$ rm -rf ~/.rbenv を実行し削除
そして最後に
$ brew uninstall rbenv を実行します
以上でアンインストールは終了です!
②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
- rbenv install --list-all doesn't show the latest ruby version after git update · Issue #2102 · rbenv/ruby-build
終わりに
この記事だけではなく開発元のREADMEをみることをおすすめします。
記事の内容に誤りがあった場合、ご指摘頂けるとありがたいです。都度、加筆・修正させて頂きます。