将 Cargo 更新到最新版本:Rust 开发者教程

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

引言:为什么你的 Cargo 可能过时了?



你是否曾经运行过 cargo build,却收到一个奇怪的错误?或者,你期待已久的 Rust 新功能就是无法正常工作?熟悉的情况:你打开 Stack Overflow,寻找解决方案,那里建议你更新 Cargo。但该怎么做呢?因为 Rust 中没有 cargo update --self 命令(老实说,那也太简单了)。



在本文中,我们将解析一个拥有数千浏览量的真实问题:"Is there a command to update Cargo to the latest official release?"。我们不仅会给出一个干巴巴的命令——我们将走完从问题到解决方案的整个过程,包括代码示例、技巧和典型错误。如果你至少写了一周的 Rust,这些信息将为你节省数小时的搜索时间。



我们开始吧!🚀



什么是 Cargo,为什么需要更新它?



Cargo 不仅仅是一个包管理器。它是 Rust 生态系统的核心。它负责构建、测试、发布 crate,当然还有管理依赖项。每个新的 Cargo 版本都会带来改进:更快的编译、新的命令、安全修复。



例如,在 Cargo 1.70 版本中,内置了对 cargo info 的支持,而在 1.75 版本中,改进了错误输出。如果你停留在旧版本,你就无法获得这些功能。此外,某些 crate 开始需要最新的 Cargo,你的项目将无法构建。



但有一个细微差别:Cargo 不会自行更新。它绑定到编译器 rustc,而 rustc 又绑定到工具 Rustup。记住这个链条:Rustup → rustc → Cargo。更新其中一个,你就更新了全部。



为什么没有 cargo update --self 命令?



这是 Stack Overflow 上的一个常见问题。原因是 Cargo 不是一个独立的程序,而是 Rust 包的一部分。当你通过 Rustup 安装 Rust 时,你会获得同一版本的 rustc、cargo 和其他工具。因此,cargo update 命令确实存在,但它更新的是你项目的依赖项,而不是 Cargo 本身。



这是新手的一个典型错误:



# 这不会更新 Cargocargo update# 这只会更新 Cargo.lock 中的依赖项


要更新 Cargo 本身,需要另一种方法。而且很简单——使用 Rustup。



主要方法:通过 Rustup 更新



Rustup 是官方的 Rust 安装程序和版本管理器。如果你通过 rustup.rs 安装了 Rust,那么你已经拥有了这个工具。如果没有——现在是时候安装了:



curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh


安装后,检查当前版本:



rustc --versioncargo --version


现在,要将所有内容更新到最新的稳定版本,请执行一个命令:



rustup update


此命令会将 rustc、cargo 和所有相关工具更新到最新的稳定版本。输出将类似于:



info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'info: latest update on 2024-01-25, rust version 1.75.0 (8e3999b4e 2024-01-25)info: downloading component 'cargo'info: installing component 'cargo'


完成!现在你的 Cargo 是最新版本了。



更新后检查



确认更新是否成功总是有好处的。编写一个简单的 Rust 程序并构建它:



// main.rsfn main() {    println!("Cargo version: {}", env!("CARGO_PKG_VERSION"));        // 检查新功能是否工作    #[cfg(version_ge(1, 75))]    println!("你正在使用 Cargo 1.75+!");}


构建并运行:



cargo run


如果一切正常,你就准备好了。如果没有——请检

博客

书籍推荐