使用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_HOME
和CARGO_HOME
。
RUSTUP_HOME
:存储工具链和配置文件CARGO_HOME
:存储cargo的缓存
你需要在rustup运行之前修改好这两个环境变量。对于Linux用户也是这两个环境变量。
Windows
此电脑->属性->高级系统设置->环境变量,新建两个系统变量,变量名分别为RUSTUP_HOME
和CARGO_HOME
,变量值指向你希望的安装目录,比如说D:\rust-toolchain
和D:\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 会被认为需要更新。