ねこものがたり

いちにちいっぽ

Mac * fish shell の環境でRustを利用するときは自分でパスを通す

Rustの勉強をしようと思ってRustをインストールしました。

rustup.rs - The Rust toolchain installer に則ってコマンドを実行します。すると、途中でこのように出力されました。

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

...(略)

This path will then be added to your PATH environment variable by
modifying the profile files located at:

  /Users/kanekokeiko/.profile
  /Users/kanekokeiko/.bash_profile
  /Users/kanekokeiko/.bashrc
  /Users/kanekokeiko/.zshenv

....(略)

Rust is installed now. Great!

To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).

To configure your current shell, run:
source $HOME/.cargo/env

この時点で .zshenvを見てみるとこのようになっています。インストールの中で自動で書き足してくれているので便利。

 $ cat /Users/kanekokeiko/.zshenv
. "$HOME/.cargo/env"

だけどfish shellでは以下のようになってこのままでは使えません。

$ rustc --version
fish: Unknown command: rustc
$ cargo --version
fish: Unknown command: cargo

というわけでfish.configにexport PATH="$HOME/.cargo/bin:$PATH"を追記していきます。 探してみるとIssueがありました。 PATH support doesn't work for fish shell · Issue #478 · rust-lang/rustup · GitHub

私の方法はこのコメントを参考にしています。

追記後は先ほど失敗した以下のコマンドが成功していることででパスが通っていることを確認できました。

$ rustc --version
rustc 1.60.0 (7737e0b5c 2022-04-04)
$ cargo --version
cargo 1.60.0 (d1fd9fe2c 2022-03-01)