【Rust】リリースチャネルとツールチェーン


リリースチャンネル

リリースチャンネル 説明
nightly master ブランチから毎晩リリース
beta 6週間ごとに master ブランチから beta ブランチに枝分かれ
stable 6週間ごとに beta ブランチから stable ブランチに枝分かれ

標準では、安定版(stable)のRustがインストールされる。

ナイトリ(nightly)をインストールする場合は以下

rustup install nightly

ベータ(beta)をインストールする場合は以下

rustup install nightly

特定のツールチェーンを以下のように指定することもできる

rustup toolchain install 1.58.1-x86_64-pc-windows-msvc

rustupでインストールしたツールチェーンは以下で確認できる

rustup toolchain list

特定のツールチェーンをアンインストールする場合は以下

rustup toolchain uninstall nightly


ツールチェーンの指定

使用するツールチェーンは以下の順で決定(上部が優先)される

  1. cargo +beta のようなツールチェーン オーバーライド省略記法
  2. 環境変数 RUSTUP_TOOLCHAIN
  3. rustup override によるディレクトリオーバーライド
  4. rust-toolchain.toml ファイルによる指定
  5. デフォルトツールチェーン

ツールチェーン オーバーライド省略記法

ツールチェーン オーバーライド省略記法(Toolchain override shorthand)では、cargorustc などのコマンドの最初の引数が + で始まる場合、その値がツールチェーン名として解釈される。

cargo +nightly test

環境変数 RUSTUP_TOOLCHAIN

環境変数 RUSTUP_TOOLCHAIN の指定でツールチェーンを指定できる。

RUSTUP_TOOLCHAIN=nightly

ディレクトリオーバーライド

プロジェクトのディレクトリ内で rustup override を実行することで、対象プロジェクトで利用するツールチェーンを変更できる。

rustup override set nightly

ディレクトリごとのオーバーライド設定は、 ホーム ディレクトリの構成ファイルに保存される。

アクティブなツールチェーンを確認するには rustup show、デフォルトのツールチェーンに戻すには rustup override unset を使用する。

rust-toolchain.toml

プロジェクトディレクトリに rust-toolchain.toml ファイルを置くことで、ツールチェーンを固定できる(過去バージョンでは rust-toolchain)。

[toolchain]
channel = "nightly"

rust-toolchain.toml には以下の指定が可能。 * channel : <channel>[-<date>] の形式で指定 * path : カスタム ツールチェーンを使用する場合に、そのパスを絶対パスで指定 * profile : インストールするコンポーネントのグループに名前を付ける(minimal, default, complete) * components : インストールする追加コンポーネントのリストを指定 * targets : クロスコンパイル用にインストールするプラットフォームのリストを指定

例えば以下のようになる。

[toolchain]
channel = "nightly-2020-07-10"
components = [ "rustfmt", "rustc-dev" ]
targets = [ "wasm32-unknown-unknown", "thumbv2-none-eabi" ]
profile = "minimal"