推荐优先使用 rustup 官方安装器(方法一),适用于多数麒麟OS版本;其次可选系统包管理器安装(方法二);务必配置国内镜像源(方法三)并验证项目构建(方法四)。
如果您在麒麟操作系统上需要搭建 Rust 编程环境,但发现无法通过常规方式获取编译器与包管理工具,则可能是由于系统底层发行版差异、网络策略限制或软件源未启用所致。以下是针对麒麟OS不同版本的多种安装方法:
一、通过 rustup 官方安装器安装
rustup 是 Rust 官方维护的跨平台安装与版本管理工具,能自动获取 rustc、cargo、rust-docs 等核心组件,并支持多版本共存,适用于绝大多数麒麟OS用户,尤其推荐用于桌面版(Kylin Desktop)及服务器版(Kylin Server)中基于 Ubuntu/Debian 或 Anolis 的版本。
1、打开终端(Ctrl+Alt+T),确认网络连通性,务必使用国内镜像加速下载,否则易超时失败。
2、执行安装命令:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh(适用于 Kylin 基于 Ubuntu/Debian 的版本)。
3、若为 Kylin Server V10 SP1 及以后基于 Anolis OS 的版本,可先启用 epel 源后运行:sudo dnf install rust cargo(跳至方法二验证)。
4、安装过程中按提示输入 1 选择默认安装路径与配置,等待自动下载并部署工具链。
5、安装完成后关闭当前终端,重新打开新终端窗口,或手动加载环境变量:source $HOME/.cargo/env。
6、运行 rustc --version 和 cargo --version 验证是否成功输出版本信息。
二、使用系统包管理器安装
麒麟OS部分版本已将 Rust 工具链纳入官方软件源,适合网络受限、需快速部署或偏好系统级集成的用户,但所含版本可能滞后于 Rust 官方最新稳定版(如 1.75+),且不包含 rust-analyzer 或 rust-src 组件。
1、确认麒麟OS底层发行版:执行 cat /etc/os-release | grep -E "(ID|VERSION_ID)",若显示 ID=ubuntu 或 ID=kylin 且 VERSION_ID 含 22.04 或 20.04,则执行:sudo apt update && sudo apt install rustc cargo。
2、若显示 ID=anolis 或 ID=centos,则执行:sudo dnf install rust cargo(Anolis 8/23 及 Kylin Server V10 SP1+ 支持)。
3、安装后检查 cargo 是否可用,若提示 command not found,需确认 ~/.cargo/bin 是否已加入 PATH:编辑 ~/.bashrc 或 ~/.zshrc,添加 export PATH="$HOME/.cargo/bin:$PATH",然后执行 source ~/.bashrc。
三、配置国内镜像源加速(必选优化项)
未配置镜像源时,rustup 下载 toolchain 与 crates.io 包索引速度极低,常导致超时失败;配置国内镜像可将依赖拉取速度从 KB/s 提升至 MB/s。
1、进入 ~/.cargo/ 目录,创建或编辑 config 文件。
2、写入以下内容(以清华大学镜像为例):[source.crates-io]\nregistry = "https://github.com/rust-lang/crates.io-index"\nreplace-with = "tuna"\n\n[source.tuna]\nregistry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"。
3、保存文件后,执行 cargo search hello 测试镜像是否生效,响应时间应明显缩短。
四、验证环境可用性
完成任一安装方式后,必须通过实际项目构建验证环境完整性,避免仅依赖版本号输出造成误判。
1、执行 cargo new hello_rust --bin 创建新项目。
2、进入项目目录:cd hello_rust。
3、执行 cargo run,观察终端是否输出 Hello, world!。
4、若出现 error: could not compile `hello_rust`,需检查是否缺少 C 编译器:Ubuntu/Debian 用户执行 sudo apt install build-essential,Anolis/CentOS 用户执行 sudo dnf groupinstall "Development Tools"。