在CentOS上折腾Rust,第一步就得搞清楚:到底用什么工具来管理包和工具链?这个问题看似简单,但选错了路子,后续开发会非常别扭。下面把主流方案逐一拆开,看看它们各自在什么场景下最顺手。

1. rustup(官方推荐工具链管理工具)
rustup是Rust官方钦定的版本管理与工具链工具,在CentOS上玩Rust,它几乎是绕不开的选择。它不光负责安装 rustc 编译器和 cargo 包管理器,还能让你在稳定版、测试版、每日版之间自由切换,甚至可以为ARM架构添加目标平台支持。具体能做什么?
- 安装/卸载工具链:比如
rustup install stable装稳定版,rustup toolchain uninstall nightly卸掉每日版; - 切换默认工具链:
rustup default nightly一键切换到每日版,适合尝鲜新特性; - 管理目标平台:
rustup target add armv7-unknown-linux-gnueabihf就能添加ARM交叉编译支持; - 更新Rust到最新版:
rustup update搞定,不用手动下安装包。
安装方式也简单,一行命令搞定,而且不需要root权限:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env # 配置环境变量
装上之后,cargo 和 rustc 就自动就位了。可以说,这是最推荐、最灵活的路子。
2. yum/dnf(系统包管理器,提供基础Rust包)
如果你的CentOS版本比较老(比如CentOS 7),或者只是想快速跑个简单的Rust程序,系统自带的包管理器也能派上用场。CentOS 7用 yum,CentOS 8及以上用 dnf,命令如下:
- CentOS 7:
sudo yum install rust cargo -y - CentOS 8及以上:
sudo dnf install rust cargo -y
不过,这里有个明显的短板:系统源里的Rust版本通常滞后于官方最新版,而且无法灵活切换版本。对于需要最新特性或者多版本并行的项目,这条路就不太合适了。它更适合系统集成场景,比如你只是想在CentOS上跑一个现成的Rust工具,对版本要求不高。
3. Cargo(Rust官方包管理与构建工具)
Cargo是Rust生态里的“瑞士军刀”——项目依赖管理、代码编译、测试运行、打包发布,几乎全包了。无论你是通过rustup还是系统包管理器安装的Rust,Cargo都会默认附带。它的核心功能包括:
- 创建项目:
cargo new my_project一秒生成项目骨架; - 添加依赖:在
Cargo.toml里声明,比如rand = "0.8",然后cargo build自动下载; - 编译/运行:
cargo build编译,cargo run直接运行; - 更新依赖:
cargo update更新到符合语义化版本的最新版; - 查看依赖树:
cargo tree一目了然。
需要特别注意的是:Cargo本身不管理Rust工具链版本,它只负责项目层面的依赖和构建。所以,想实现多版本管理,还得靠rustup来打配合。
一句话总结:在CentOS上,最稳妥的搭配是 rustup + Cargo,前者管工具链,后者管项目;系统包管理器可以作为备选,但仅限于对版本要求不高的场景。