LoginSignup
1
0

More than 1 year has passed since last update.

ruby -v でrbenvで指定したバージョンが表示されない時の対処法

Posted at

実行環境

  • macOS Monterey 12.2.1
  • rbenv 1.2.0

事象

rbenvでローカルバージョンを指定したのにruby -vするとシステムのrubyバージョンが表示される。

ターミナル
$ rbenv local 2.7.5
$ ruby -v
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.x86_64-darwin21]

2.7.5になってない!なんで!?という状態です。

原因

パスが通っていないことが多い。

  • rubyコマンドがどのディレクトリの実行ファイルを呼んでいるか確認してみましょう
ターミナル
which ruby
/usr/bin/ruby #←これ、macのRuby

rbenvのパスは/Users/macのユーザ名/.rbenv/shims:なので、
これのパスを通してやる必要があります。

ちなみにパスを通すというのはPATHという環境変数にrbenvのプログラムが格納されているディレクトリを追加することを言います。

  • 現在のパスを確認してみましょう
ターミナル
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

上記にrbenvのパスがないことが分かると思います。

対策

rbenvのパスを通すために、まずはご自分のmacでは何のシェルが使われているか確認してみましょう。

ターミナル
echo $SHELL
/bin/zsh

macOS Catalina から、Mac は zsh をデフォルトのログインシェルおよびインタラクティブシェルとして使うようになります。
引用元:zsh を Mac のデフォルトシェルとして使う

.zshrcに以下を追記します。
(使用しているのがbashであれば.bash_profileに追記してください)
echo eval "$(rbenv init -)" >> .zshrc

シェルへの変更を反映します。

ターミナル
source ~./zshrc

再度、パスを確認してみます。

ターミナル
echo $PATH
/Users/**macのユーザ名**/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

パスは左から優先して読み込まれます。
この場合、rbenvのパスが優先されることになります。

最後に、アプリのディレクトリに移動してRubyバージョンを確認してみます。

ターミナル
ruby -v
ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-darwin21]

念の為、一個上の階層に移動してRubyのバージョンを確認してみます。

ターミナル
ruby -v
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.x86_64-darwin21]

ローカルバージョンも、グローバルバージョンも想定通りになりました。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0