🍎

【Ruby】rbenvのパスを通す(zsh)

2023/01/22に公開

そもそも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コマンドを呼び出してくれる、という仕組みらしいです。

この記事が分かりやすかったです!
https://mogulla3.tech/articles/2021-07-12-understanding-rbenv-4/

なので、どちらかが欠けていると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