如何在 Rust 工具链之间切换?

Pal*_*gam 36 rust rustup

rustup help toolchain 列出以下子命令

SUBCOMMANDS:
    list         List installed toolchains
    install      Install or update a given toolchain
    uninstall    Uninstall a toolchain
    link         Create a custom toolchain by symlinking to a directory
    help         Prints this message or the help of the given subcommand(s)
Run Code Online (Sandbox Code Playgroud)

我安装了以下工具链

stable-x86_64-unknown-linux-gnu (default)
nightly-2019-09-05-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu
master
Run Code Online (Sandbox Code Playgroud)

我试图解决 rust-clippy 的问题,所以我不得不安装主工具链。尽管将稳定设置为我的默认工具链,但我当前的工具链是主工具链,我想切换回稳定。如何在不卸载主工具链的情况下执行此操作?

没有 switch 子命令吗?

STE*_*EEL 45

rustup default stable命令运行良好,但最简单的方法是将rust-toolchain文件保存在项目根文件夹中。这类似于.nvmNodeJS 项目的文件。

Rust 工具链

nightly
Run Code Online (Sandbox Code Playgroud)

或者

stable
Run Code Online (Sandbox Code Playgroud)

Rust 工具链

  • 为什么这个设置会出现在一个我从未听说过的奇怪的额外文件中,而不是 Cargo.toml 中? (3认同)
  • 这似乎是更传统/稳健的方法,因此受到好评。 (2认同)

Fra*_*gné 39

使用rustup default <toolchain>更改默认的工具链。您可以使用全名(例如rustup default stable-x86_64-unknown-linux-gnu)或短别名(例如rustup default stable)。

rustup 还具有以更广泛的方式覆盖默认值的方法。请参阅rustup 书中的Overrides

  • 我找到了答案:https://github.com/rust-lang/rustup#toolchain-override-shorthand。在上面的场景中,我可以做 `cargo +stable Clippy` (2认同)

Rob*_*123 18

要在 repo 中在夜间和稳定配置之间切换,请使用:

rustup override set nightly
Run Code Online (Sandbox Code Playgroud)

或者:

rustup override set stable
Run Code Online (Sandbox Code Playgroud)


Har*_*far 12

rustup default stable应该管用。这将设置stable为全局默认工具链。

stable仅将其设置为一个目录/项目的默认工具链,请改用rustup override set stable命令。要取消设置,请使用rustup override unset.