我正在尝试使用
Rust
和 GitHub 的 Codespaces
构建一个示例“马可波罗”游戏。我正在遵循 Coursera 的“Rust 数据工程”课程第一周的示例。然而,该版本
我的 rustc
中的 codespaces
不再足以满足当前版本的 clap_builder
,这似乎是必需的。我的Cargo.toml
文件如下:
[package]
name = "hello_marco"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
clap = {version="4.0.32", features=["derive"]}
与课程中给出的相符。但是,当我运行它时,我收到此错误:
error: package `clap_derive v4.5.0` cannot be built because it requires rustc 1.74 or newer, while the currently active rustc version is 1.70.0
Either upgrade to rustc 1.74 or newer, or use
cargo update -p [email protected] --precise ver
where `ver` is the latest version of `clap_derive` supporting rustc 1.70.0
我似乎无法更新我的 rustc 版本:
@me ➜ /workspaces/MarcoPolo2/hello_marco (main) $ rustup update
info: no updatable toolchains installed
info: checking for self-update
info: downloading self-update
info: cleaning up downloads & tmp directories
@me ➜ /workspaces/MarcoPolo2/hello_marco (main) $ rustc --version
rustc 1.70.0 (90c541806 2023-05-31)
当我查看 Clap ChangeLog 时,似乎 v 4.3.24 是第一个支持我当前的 rust 编译器的版本(假设这就是
msrv
[最低支持的 rust 版本] 的含义])。我能够(我相信)成功降级我的 clap 版本
@me ➜ /workspaces/MarcoPolo2/hello_marco (main) $ cargo update -p [email protected] --precise 4.3.24
但是,我仍然想知道如何强制我的
codespaces
环境使用更新的 rustc
。
我也遇到了同样的问题,选了同样的课程。我通过更改 Dockerfile 中提取 rust 镜像的行来解决这个问题
FROM mcr.microsoft.com/devcontainers/rust:latest
我假设你有
FROM mcr.microsoft.com/devcontainers/rust:0-1-bullseye
如果您使用 VSCODE 重建镜像,请按照建议进行操作