使用Rustup快速无缝升级Rust

rust update 升级

Rustup 是 Rust 官方的跨平台 Rust 安装工具。我们可以使用rustup升级rust版本

rustup update

rustup is not installed at ‘E:\cargo’

意思是说’E:\argo’未安装rustup
将原来C:\Users\用户名\.cargo\bin下的文件复制到新的E:\cargo\bin

$ rustup update
info: syncing channel updates for 'stable-x86_64-pc-windows-msvc'
error: rustup is not installed at 'E:\cargo'

再试一次

$ rustup update
info: syncing channel updates for 'stable-x86_64-pc-windows-msvc'
info: checking for self-updates
info: downloading self-update

  stable-x86_64-pc-windows-msvc unchanged - rustc 1.81.0 (2024-09-04)

info: cleaning up downloads & tmp directories

warning: tool `rustfmt` is already installed, 
remove it from `E:\cargo\bin`, then run `rustup update` to have rustup manage this tool.

warning: tool `cargo-fmt` is already installed, 
remove it from `E:\cargo\bin`, then run `rustup update` to have rustup manage this tool.

升级rustup 自己

rustup self update

改变rustup默认安装目录

默认情况下,rustup安装的Rust在用户目录下,对于Windows用户就是C盘。假如你的C盘比较小,这样长期使用的结果就是C盘被挤爆。还好rustup可以通过修改环境变量来改变安装目录。这两个环境变量分别是RUSTUP_HOMECARGO_HOME

  • RUSTUP_HOME:存储工具链和配置文件
  • CARGO_HOME:存储cargo的缓存

你需要在rustup运行之前修改好这两个环境变量。对于Linux用户也是这两个环境变量。

Windows

此电脑->属性->高级系统设置->环境变量,新建两个系统变量,变量名分别为RUSTUP_HOMECARGO_HOME,变量值指向你希望的安装目录,比如说D:\rust-toolchainD:\cargo-cache,之后运行rustup就可以安装了。

Linux

打开终端,设定环境变量

export RUSTUP_HOME=[你希望的安装位置]
export CARGO_HOME=[你希望的安装位置]

之后在这个终端窗口运行rustup就好了。

参考资料

修改/移动 rustup 和 cargo 位置
rust update 升级
Rustup清华镜像

config配置

$ cargo -V
warning: both `E:\cargo\config` and `E:\cargo\config.toml` exist. Using `E:\cargo\config`
cargo 1.81.0 (2024-08-20)

如果正在使用 cargo 1.68 及以上版本,在 $CARGO_HOME/config.toml 中添加如下内容即可:

[source.crates-io]
replace-with = 'ustc'

[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"

如果 cargo 版本低于 1.68,则必须设置为完整克隆仓库,[source.ustc] 里的 registry 需要修改为:

[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

# 或者如果无法使用 git 协议
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index/"

完整克隆仓库速度远慢于新版的稀疏索引,因此强烈建议升级 cargo 版本。详见相关镜像

如果正在使用的 cargo 版本低于 1.38,则需要修改的文件为 config 文件,而不是 config.toml 文件。

config文件

# 放到 `$HOME/.cargo/config` 文件中
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"

# 替换成你偏好的镜像源
replace-with = 'sjtu'

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"

# rustcc社区
[source.rustcc]
registry = "git://crates.rustcc.cn/crates.io-index"

[net]
git-fetch-with-cli=true

Rustup

Rustup 是 Rust 官方的跨平台 Rust 安装工具。

镜像站只会保留一段时间的 nightly,如果在安装时出现错误,请用 RUSTUP_DIST_SERVER= rustup ... 来使用官方源。

使用 rustup 安装 rust 时,若要启用镜像源,执行:

# for bash
RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup rustup install stable # for stable
# for fish
env RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup rustup install stable # for stable
# for bash
RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup rustup install nightly # for nightly
# for fish
env RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup rustup install nightly # for nightly
# for bash
RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup rustup install nightly-YYYY-mm-dd
# for fish
env RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup rustup install nightly-YYYY-mm-dd

若要长期启用镜像源,执行:

# for bash
echo 'export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup' >> ~/.bash_profile
echo 'export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup' >> ~/.bash_profile
# for fish
echo 'set -x RUSTUP_UPDATE_ROOT https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup' >> ~/.config/fish/config.fish
echo 'set -x RUSTUP_DIST_SERVER https://mirrors.tuna.tsinghua.edu.cn/rustup' >> ~/.config/fish/config.fish

注:rustup 在判断是否需要更新时依赖于 toml 的 sha256,由于 toml 内容中相关链接被替换为镜像源,第一次切换到镜像源时各个 channel 会被认为需要更新。

RustupRustup 是一个命令行应用,能够下载并在不同版本的 Rust 工具链中进行切换 —— 如编译器 rustc 和标准库,该应用所支持的平台数量不少。事实上,rustc 本身就支持大约 56 个平台,而 rustup 实际上能够为其中14个平台管理编译器,为30个平台管理标准库。Rust 1.8 中引入的 Rustup,是一个针对 Rust 语言的工具链管理器(toolchain manager),其目标是让交叉编译 Rust 代码更加简单。Mozilla 工程师 Brian Anderson 近期与我们分享了关于此的更多细节。此外,rustup 能够追踪工具链的具体版本,包括 Rust 的 nightly 版本、beta 版本和发行版本。举个例子,你可以用 rustup 检查程序在下一个 Rust 发行版下的行为。但是之前,你需要安装当前平台下的 Rust beta 版本的工具链,然后利用该工具链运行单元测试。使用 rustup 之后,可以通过执行类似下面的代码完成:$ rustup install beta $ rustup run beta cargo test再举一个例子,Anderson 介绍了如何使用 rustup 为使用 musl 标准库(而非大家常用的glibc标准库)的 Linux 版本创建静态二进制文件:$ rustup target add x86_64-unknown-linux-musl $ cargo run --target=x86_64-unknown-linux-muslrustup 还是一个正在开发中的产品,将致力于扩充支持平台的数量。特别要注意,rustup 目前还无法针对 Android 平台进行无缝交叉编译。这要求开发者手动下载 Android NDK,并针对性地创建一个“独立的工具链”。Anderson 表示,rustup 将在未来的版本中解决这个问题,增加获取并配置所要求的连接器和C语言工具链的能。另外,rustup 还计划通过 Emscripten 支持Web开发rustup 是 Anderson 开发的 multirust 的后继者,并取代了其位置。rustup 仍被看作处于 beta 阶段,但是目前已经可以安装并试用。 标签:Rustup
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值