发布 Rustup 1.28.0

2025 年 3 月 2 日 · Rustup 团队

Rustup 团队很高兴宣布 Rustup 版本 1.28.0 发布。Rustup 是安装 Rust 的推荐工具,Rust 是一种赋能每个人构建可靠且高效软件的编程语言。

Rustup 1.28.0 有哪些新变化

Rustup 的这个新版本酝酿已久,带来了实质性的变化。

在深入探讨细节之前,值得一提的是 Chris Denton 已加入团队。Chris 在贡献 Rust 项目中与 Windows 相关部分方面拥有丰富的经验——这是我们之前欠缺的专业知识——因此我们很高兴他加入团队,帮助解决 Windows 特有的问题。

以下改进可能需要改变您使用 Rustup 的方式

  • 如果活动工具链未安装,Rustup 将不再自动安装它。

    • 为了确保其安装,请运行不带参数的 rustup toolchain install
    • 在更改之前和之后,以下命令都会安装活动工具链
      rustup show active-toolchain || rustup toolchain install
      # Or, on older versions of PowerShell:
      rustup show active-toolchain; if ($LASTEXITCODE -ne 0) { rustup toolchain install }
      
  • 现在,通过 rustup toolchain installrustup default 安装与主机不兼容的工具链将被拒绝,除非您明确添加 --force-non-host 标志。

Rustup 现在正式支持以下主机平台

  • aarch64-pc-windows-msvc
  • loongarch64-unknown-linux-musl

此版本还带来各种易用性改进,举例如下

  • rustup show 的输出格式已得到清理,使您可以更轻松地了解您的工具链状态。
  • rustup doc 现在同时接受一个标志和一个主题,从而可以快速导航到更多书籍的特定部分。
  • Rustup 的 remove 子命令现在支持更多别名,例如 rmdel
  • 已添加对 nushell 的基本支持。

我们还进行了以下内部更改

  • 默认下载后端已从使用 native-tls 的 reqwest 更改为使用 rustls 的 reqwest。
    • 如果新后端导致问题,仍然可以使用 RUSTUP_USE_CURLRUSTUP_USE_RUSTLS 来更改下载后端。如果确实发生问题,请告知我们
    • 默认后端现在使用 rustls-platform-verifier 来验证服务器证书,利用支持该功能的平台上的证书存储。
  • 创建代理链接时,Rustup 现在将优先尝试符号链接,然后回退到硬链接,而不是先尝试硬链接。
  • 可以使用新的 RUSTUP_LOG 环境变量来控制 Rustup 二进制文件中的基于 tracing 的日志记录。有关更多详细信息,请参阅开发指南

最后,我们的官方网站也有一些值得注意的更改

  • 网站的整体设计已更新,以更好地与 Rust 项目的品牌形象保持一致。
  • 现在可以通过 https://win.rustup.rs/aarch64 下载适用于 aarch64-pc-windows-msvc 主机平台的预构建 rustup-init.sh 安装程序。

更多详细信息可在更新日志中找到!

如何更新

如果您已安装 Rustup 的先前版本,获取 Rustup 1.28.0 非常简单,只需停止任何可能正在使用 Rustup 的程序(例如关闭您的 IDE)并运行

$ rustup self update

Rustup 也会在常规工具链更新结束时自动更新自身

$ rustup update

如果您还没有安装它,可以从我们网站上的相应页面获取 Rustup

Rustup 的文档也可在Rustup 书籍中找到。

注意事项

Rustup 的发布可能会带来一些问题,这些问题并非由 Rustup 本身引起,而是由于有了新版本。因此,我们特别建议关注以下潜在问题

  • 反恶意软件扫描程序可能会阻止 Rustup 或阻止它创建或复制文件(尤其是在安装 rust-docs 时,因为它包含许多小文件)。

  • 在您的 CI 环境中,Rustup 在尝试执行自更新时可能会失败。

    这是一个已知问题,如果确实发生此问题,我们建议在工作流程开始时应用以下变通方法

    $ rustup set auto-self-update disable
    

    此外,从 1.28.0 版本开始,Rustup 将不再尝试在 CI 环境中进行自更新,因此将来应该不再需要此变通方法。

当反恶意软件扫描程序更新以识别新的 Rustup 版本,并且托管版本在所有 CI 运行器上更新后,这些问题应在几周内自动解决。

致谢

再次感谢所有为 Rustup 1.28.0 的发布做出贡献的贡献者