【Ruby】rbenvのパスを通す(zsh)
そもそもrbenvを使うのに必要なこと
rbenvを使うのに必要な設定が2つあります。
- rbenvのパスを通す
- rbenv shimsのパスを通す
rbenvのパスを通せば、rubyを使うよって時にrbenvのパス先で設定されているrubyのバージョンを使ってくれるので、rbenvのパスを通すのは必須ですね。
続いて、rbenv shimsには、全てのバージョンのRubyの実行可能コマンドが配置されています。
例えば、rbenvのRubyのバージョンを3.1.1に設定して、gem install 〜〜などのコマンドを打つと、先にshimsの中のgemコマンドが呼び出されます。
shimsはそこで、どのバージョンのRubyの、どのコマンドを呼び出すべきかを判断してくれます。
なので、今回は3.1.1のバージョンのRubyのgemコマンドを呼び出してくれる、という仕組みらしいです。
この記事が分かりやすかったです!
なので、どちらかが欠けているとYou don't have write permissionsとか怒られたりします。
パスの通し方
①現状確認(色々試してよくわからなくなってる人向け)
まずルートディレクトリに戻ります。
$ cd
どこにあるRubyを使っているか確認します。
$ which ruby
結果が、
/usr/bin/ruby
とでてきたら、システムのRubyを使っているということになります。一応、ファイル内もみてみます。
$ open .zshrc
このコマンドを使うとファイルが開きます。そこでrbenvに関する記述がない(=パスが通っていない)ことを確認します。
②パスを通す
まずは、rbenvのパスを通します。
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
次に、rbenv shimsのパスを通します。
echo 'export PATH="$HOME/.rbenv/shims:$PATH"' >> ~/.zshrc
ターミナルに変更を反映させるために、再起動します。
exec $SHELL -l
③最終確認
以下コマンドで、どのRubyを使っているか確認します。
$ cd
$ which ruby
結果が、
/Users/{{自分のユーザ名}}/.rbenv/shims/ruby
となっていたら、設定が反映されています!
①で記載した設定ファイルを開くコマンド
$ open .zshrc
を使って開いてみても、以下2行が追記されていることがわかると思います。
export PATH="$HOME/.rbenv/bin:$PATH"
export PATH="$HOME/.rbenv/shims:$PATH"
Discussion