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

fxnxkyjh  于 2023-11-19  发布在  其他
关注(0)|答案(4)|浏览(148)

我想使用Rust的“nightly”构建来使用Arrow和Datafrons。根据this post和rustup的书,我应该能够在项目的主目录中放置一个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


那么项目构建成功,但是默认值仍然是“稳定”。

kadbb459

kadbb4591#

我也有类似的问题。

$ 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,所以我不知道为什么它不适合你,但它似乎可能有一些怪癖。
也许你可以用rust-toolchain文件试试TOML语法?
编辑:看起来.toml扩展是recent development,也许这本书的更新是在工具更新之前发布的。
编辑2:最新的rustup版本是20201202的1.23.1,这是我运行的版本,所以我的问题可能就在这里。你运行的是什么版本的rustup?
https://github.com/rust-lang/rustup/releases

pbpqsu0x

pbpqsu0x2#

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 工具链改为nightly。要更改全局默认值,您可以运行default命令:

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

mf98qq94

mf98qq943#

如果您在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输出版本。

vbkedwbf

vbkedwbf4#

做一个rustup update,这应该可以工作。

相关问题