問題
・rbenvでrubyのバージョンを変えられない。
$ rbenv local 2.7.1
$ ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.x86_64-darwin22]
原因
・PATHの設定がrbenv用になっていない。
↓rbenvで設定したrubyを使用する場合はrubyのパス設定がこのようになる。which ruby
/Users/ユーザ名/.rbenv/shims
しかし、現状の私のrubyのパスはこんなかんじ。
which ruby
/usr/bin/ruby
つまり、rubyのパス設定がローカルのままになっているということ。
解決策
・rubyのパス設定を書き換える。
まずは環境変数に/Users/ユーザ名/.rbenv/shimsがあるかを確認する。
echo $PATH
私の場合は,,,(読みやすいように改行してます。)
echo $PATH
/usr/local/bin:
/usr/bin:
/bin:
/usr/sbin:
/sbin:/Library/Apple/usr/bin:
/Users/ユーザ名/flutter/bin:
/Users/ユーザ名/Documents/Dev/flutter/bin
という感じ。
今回の目的である、/Users/ユーザ名/.rbenv/shimsは表示されない。
そこで、.bash_profileを開いて以下のコードを追加してみた。
export PATH="$PATH:/Users/ユーザ名/.rbenv/shims"
ここで、.bash_profileを有効化する。
source .bash_profile
しかし、これでは解決できずに結局rubyのバージョンは変わらない。
次に、参考記事から以下のコードを入力してみた。
rbenvでバージョンがうまく切り替わらなかった時にやったこと
source ~/.bashrc
すると、なんとrubyのパスが変わっていた!
なぜ??
ちなみに.bashrcの中身はこんな感じ。
if [ -d $HOME/.anyenv ]
then
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
fi
この.bashrcファイルを有効化したからパス設定が変わったのかはよくわからないんですが、とりあえず備忘録と後日の学習のためにメモを残しておこうと思います。
source .bashrcでパスが変わった理由がわかる方いたら教えていただけると嬉しいです。