我想使用 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
然后项目构建正常,但默认值仍然是“稳定”。
我也有类似的问题。
$ 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?
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)
如果您使用的是 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
输出版本.
执行
rustup update
,这应该有效。