为什么我的 rustup rust-toolchain 文件没有覆盖默认值?

问题描述 投票:0回答:4

我想使用 Rust“每晚”构建来与 Arrow 和 Datafusion 配合使用。根据 this post 和 rustup book,我应该能够将 rust-toolchain 文件放在项目的主目录中,仅包含单词“nightly”,这应该使其成为该项目的默认构建。然而,这不起作用。

对我缺少的东西有什么建议吗?

当我检查默认值时,我发现它正在使用“稳定”版本。

(base) Apples-MBP:data_fusion_tutorial Daniel$ rustup default
stable-x86_64-apple-darwin (default) 

这是我的项目目录:

(base) Apples-MBP:data_fusion_tutorial Daniel$ ls -a
.       ..      .git        .gitignore  Cargo.lock  Cargo.toml  rust-toolchain  src     target

如果我跑步

rustup override set nightly

然后项目构建正常,但默认值仍然是“稳定”。

rust toolchain nightly-build rustup
4个回答
4
投票

我也有类似的问题。

$ cat rust-toolchain.toml
[toolchain]
channel = "nightly"
$ rustup show
Default host: aarch64-apple-darwin
rustup home:  /Users/n8henrie/.rustup

installed toolchains
--------------------

stable-aarch64-apple-darwin (default)
nightly-aarch64-apple-darwin

active toolchain
----------------

stable-aarch64-apple-darwin (default)
rustc 1.50.0 (cb75ad5db 2021-02-10)

有趣的是,如果我删除

.toml
扩展,它就可以工作:

$ mv rust-toolchain{.toml,}
$ rustup show
Default host: aarch64-apple-darwin
rustup home:  /Users/n8henrie/.rustup

installed toolchains
--------------------

stable-aarch64-apple-darwin (default)
nightly-aarch64-apple-darwin

active toolchain
----------------

nightly-aarch64-apple-darwin (overridden by '/path/to/cwd/rust-toolchain')
rustc 1.52.0-nightly (3a5d45f68 2021-03-09)

看起来 toml 扩展应该没问题,但不知道为什么它不起作用:

在这些情况下,可以在项目目录中名为 rust-toolchain.toml 或 rust-toolchain 的文件中命名工具链。

https://rust-lang.github.io/rustup/overrides.html?#the-toolchain-file

它也适用于我,只需使用单词

nightly
,所以我不确定为什么它不适合你,但似乎这里可能有一些怪癖。

也许您可以尝试使用名为

TOML
的文件的
rust-toolchain
语法?

编辑:看起来

.toml
扩展是最近开发的,也许本书的更新是在工具更新之前发布的。

EDIT2:最新的 rustup 版本是 20201202 的 1.23.1,这就是我正在运行的版本,所以我的问题可能就在这里。您正在运行什么版本的 rustup?

https://github.com/rust-lang/rustup/releases


3
投票

rustup default
打印全局默认工具链。您可以运行
rustup show
来获取当前目录的活动工具链:

$ rustup show

installed toolchains
--------------------
stable-x86_64-unknown-linux-gnu (default)
nightly-x86_64-unknown-linux-gnu

active toolchain
----------------
rustc 1.48.0 (7eac88abb 2020-11-16)

设置目录覆盖将修改活动工具链:

$ rustup override set nightly
$ rustup show

installed toolchains
--------------------
stable-x86_64-unknown-linux-gnu (default)
nightly-x86_64-unknown-linux-gnu

active toolchain
----------------
nightly-x86_64-unknown-linux-gnu (directory override for '/currentproject')
rustc 1.50.0-nightly (e792288df 2020-12-05)

请注意,default 工具链仍然非常稳定,但 active 工具链已更改为每晚。要更改全局默认值,您可以运行

default
命令:

$ rustup default nightly
$ rustup default
nightly-x86_64-unknown-linux-gnu (default)

0
投票

如果您使用的是 macOS,请运行以下命令,确保未使用 Homebrew 安装的 rust:

which cargo

如果它输出类似

/opt/homebrew/bin/cargo
的内容,请尝试卸载 Homebrew rust (
brew uninstall rust
),然后再次运行
which cargo
- 它应该输出类似
/Users/jameshiew/.cargo/bin/cargo
的内容,并且
cargo --version
应该根据您的
rust-toolchain.toml
输出版本.


-2
投票

执行

rustup update
,这应该有效。

© www.soinside.com 2019 - 2024. All rights reserved.