【问题标题】:How to switch between Rust toolchains?如何在 Rust 工具链之间切换?
【发布时间】:2019-10-03 20:36:43
【问题描述】:

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)

我安装了以下工具链

stable-x86_64-unknown-linux-gnu (default)
nightly-2019-09-05-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu
master

我试图解决 rust-clippy 的问题,所以我必须安装主工具链。尽管将 stable 设置为我的默认工具链,但我当前的工具链是 master,我想切换回 stable。不卸载主工具链怎么办?

没有switch子命令吗?

【问题讨论】:

  • AFAIK,除非您设置环境变量,否则没有“当前”工具链。您要么像cargo +nightly clippy 一样运行它,要么使用默认工具链。
  • @PitaJ,运行 rustup default 将告诉您默认情况下将使用默认工具链货物,除非在 .toml 配置文件中另有指定。

标签: rust rustup


【解决方案1】:

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

rust-toolchain

nightly

stable

【讨论】:

  • 这似乎是更传统/更强大的方法,因此受到了好评。
【解决方案2】:

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

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

【讨论】:

  • 如果我只想暂时使用 switch 工具链怎么办,例如当我的默认工具链是 nightly 时,也可以使用 cargo clippy
  • 我找到了答案:github.com/rust-lang/rustup#toolchain-override-shorthand。在上述场景中,我可以做到cargo +stable clippy
  • 有没有最小的工具链?我只对运行一些命令感兴趣,例如 cargo generate-lockfilecargo tree
【解决方案3】:

要在您的 repo 中使用 nightly 和 stable 配置:

rustup override set nightly

或:

rustup override set stable

【讨论】:

    【解决方案4】:

    rustup default stable 应该可以工作。这会将stable 设置为全局默认工具链。

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

    【讨论】:

      猜你喜欢
      • 2019-01-09
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多