Ubuntu 20.04 安装 Rust 编程语言:完整指南与最佳实践
引言
Rust编程语言,又称rust-lang,是一种功能强大的通用编程语言。Rust在语法上与C++相似,广泛应用于各种软件开发项目,包括浏览器组件、游戏引擎和操作系统。
本教程将指导您在Ubuntu 20.04上安装最新版本的Rust,并创建一个、编译并运行一个测试程序。教程中的示例基于Rust 1.66版本。
注意:本教程同样适用于Ubuntu 22.04。然而,在运行apt upgrade
时,可能会出现各种交互式对话框。例如,系统可能会询问是否需要在必要时自动重启服务,或者是否要替换您修改过的配置文件。这些问题的答案取决于您的软件配置和个人偏好,超出了本教程的范围。
先决条件
完成本教程,您需要一台配置了非root用户(已启用sudo权限)和防火墙的Ubuntu 20.04服务器。您可以参考我们的《使用Ubuntu 20.04进行初始服务器设置》教程进行配置。
第一步:使用Rustup工具在Ubuntu上安装Rust
尽管在Linux上安装Rust有多种方法,但推荐的方式是使用Rustup命令行工具。
运行以下命令以下载Rustup工具并安装最新稳定版本的Rust:
- curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh
系统会提示您选择安装类型:
输出sammy@ubuntu:~$ curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh
info: downloading installer
Welcome to Rust!
This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.
Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:
/home/sammy/.rustup
This can be modified with the RUSTUP_HOME environment variable.
The Cargo home directory is located at:
/home/sammy/.cargo
This can be modified with the CARGO_HOME environment variable.
The cargo, rustc, rustup and other commands will be added to
Cargo's bin directory, located at:
/home/sammy/.cargo/bin
This path will then be added to your PATH environment variable by
modifying the profile files located at:
/home/sammy/.profile
/home/sammy/.bashrc
You can uninstall at any time with rustup self uninstall and
these changes will be reverted.
Current installation options:
default host triple: x86_64-unknown-linux-gnu
default toolchain: stable (default)
profile: default
modify PATH variable: yes
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>
本教程将使用默认选项1。如果您熟悉Rustup安装程序并希望自定义安装,可以选择选项2。输入您的选择并按回车键。
选择选项1后的输出结果如下:
输出info: profile set to 'default'
info: default host triple is x86_64-unknown-linux-gnu
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2023-01-10, rust version 1.66.1 (90743e729 2023-01-10)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-std'
info: downloading component 'rustc'
67.4 MiB / 67.4 MiB (100 %) 40.9 MiB/s in 1s ETA: 0s
info: downloading component 'rustfmt'
info: installing component 'cargo'
6.6 MiB / 6.6 MiB (100 %) 5.5 MiB/s in 1s ETA: 0s
info: installing component 'clippy'
info: installing component 'rust-docs'
19.1 MiB / 19.1 MiB (100 %) 2.4 MiB/s in 7s ETA: 0s
info: installing component 'rust-std'
30.0 MiB / 30.0 MiB (100 %) 5.6 MiB/s in 5s ETA: 0s
info: installing component 'rustc'
67.4 MiB / 67.4 MiB (100 %) 5.9 MiB/s in 11s ETA: 0s
info: installing component 'rustfmt'
info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'
stable-x86_64-unknown-linux-gnu installed - rustc 1.66.1 (90743e729 2023-01-10)
Rust is installed now. Great!
To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).
To configure your current shell, run:
source "$HOME/.cargo/env"
sammy@ubuntu:~
接下来,运行以下命令将Rust工具链目录添加到PATH环境变量中:
- source $HOME/.cargo/env
第二步:验证安装
通过查询Rust版本来验证安装是否成功:
- rustc --version
rustc --version
命令将返回您系统上安装的Rust编程语言的版本。例如:
输出sammy@ubuntu:~$ rustc --version
rustc 1.66.1 (90743e729 2023-01-10)
sammy@ubuntu:~
第三步:安装编译器
Rust需要一个链接器程序来将编译输出合并成一个可执行文件。GNU编译器集合(GCC)中的build-essential
软件包包含一个链接器。如果您没有安装GCC,尝试编译时可能会遇到以下错误:
error: linker `cc` not found
|
= note: No such file or directory (os error 2)
error: aborting due to previous error
您可以使用apt
安装build-essential
软件包。
首先,更新APT软件包索引。
这是文章《如何在Ubuntu 20.04上安装Rust》的第2部分(共3部分)。
- sudo apt update
如果需要,请输入密码继续。apt update
命令会输出可升级的软件包列表。例如:
输出sammy@ubuntu:~$ sudo apt update
[sudo] password for sammy:
Hit:1 http://mirrors.digitalocean.com/ubuntu focal InRelease
Get:2 http://mirrors.digitalocean.com/ubuntu focal-updates InRelease [114 kB]
Hit:3 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
Get:4 http://mirrors.digitalocean.com/ubuntu focal-backports InRelease [108 kB]
Get:5 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:6 http://mirrors.digitalocean.com/ubuntu focal-updates/main amd64 Packages [2336 kB]
Get:7 http://mirrors.digitalocean.com/ubuntu focal-updates/main Translation-en [403 kB]
Get:8 http://mirrors.digitalocean.com/ubuntu focal-updates/main amd64 c-n-f Metadata [16.2 kB]
Get:9 http://mirrors.digitalocean.com/ubuntu focal-updates/restricted amd64 Packages [1560 kB]
Get:10 http://mirrors.digitalocean.com/ubuntu focal-updates/restricted Translation-en [220 kB]
Get:11 http://mirrors.digitalocean.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [620 B]
Get:12 http://mirrors.digitalocean.com/ubuntu focal-updates/universe amd64 Packages [1017 kB]
Get:13 http://mirrors.digitalocean.com/ubuntu focal-updates/universe Translation-en [236 kB]
Get:14 http://mirrors.digitalocean.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [23.2 kB]
Get:15 http://mirrors.digitalocean.com/ubuntu focal-updates/multiverse amd64 Packages [25.2 kB]
Get:16 http://mirrors.digitalocean.com/ubuntu focal-updates/multiverse Translation-en [7408 B]
Get:17 http://mirrors.digitalocean.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [604 B]
Get:18 http://mirrors.digitalocean.com/ubuntu focal-backports/main amd64 Packages [45.7 kB]
Get:19 http://mirrors.digitalocean.com/ubuntu focal-backports/main Translation-en [16.3 kB]
Get:20 http://mirrors.digitalocean.com/ubuntu focal-backports/main amd64 c-n-f Metadata [1420 B]
Get:21 http://mirrors.digitalocean.com/ubuntu focal-backports/universe amd64 Packages [24.9 kB]
Get:22 http://mirrors.digitalocean.com/ubuntu focal-backports/universe Translation-en [16.3 kB]
Get:23 http://mirrors.digitalocean.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [880 B]
Get:24 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1960 kB]
Get:25 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [320 kB]
Get:26 http://security.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [11.7 kB]
Get:27 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [1463 kB]
Get:28 http://security.ubuntu.com/ubuntu focal-security/restricted Translation-en [207 kB]
Get:29 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 c-n-f Metadata [624 B]
Get:30 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [786 kB]
Get:31 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [152 kB]
Get:32 http://security.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [16.9 kB]
Get:33 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [22.2 kB]
Get:34 http://security.ubuntu.com/ubuntu focal-security/multiverse Translation-en [5464 B]
Get:35 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [516 B]
Fetched 11.2 MB in 5s (2131 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
103 packages can be upgraded. Run 'apt list --upgradable' to see them.
sammy@ubuntu:~$
接下来,升级任何过时的软件包。
- sudo apt upgrade
如果提示继续升级,请输入 Y
。
当升级完成后,安装 build-essential
软件包。
- sudo apt install build-essential
在提示时输入 Y
以继续安装。当您的终端返回到命令提示符且没有错误消息时,表示安装已完成。
第四步 – 创建、编译和运行测试程序。
在这一步中,您将创建一个测试程序来尝试使用 Rust,并验证其是否正常工作。
首先,创建一些存储测试脚本的目录。
- mkdir ~/rustprojects
- cd ~/rustprojects
- mkdir testdir
- cd testdir
使用 Nano 或者您喜欢的文本编辑器,在 testdir
中创建一个文件来存储您的 Rust 代码。
这是文章《如何在Ubuntu 20.04上安装Rust》的第3部分(共3部分)。
- nano test.rs
所有 Rust 程序都应使用 .rs
后缀。
将以下代码复制到 test.rs
文件中并保存。
test.rs
fn main() {
println!("恭喜!您的 Rust 程序运行成功。");
}
使用 rustc
命令编译代码。
- rustc test.rs
运行生成的可执行文件。
- ./test
程序在终端打印输出:
输出
sammy@ubuntu:~/rustprojects/testdir$ ./test
恭喜!您的 Rust 程序运行成功。
sammy@ubuntu:~/rustprojects/testdir$
其他常用的 Rust 命令
定期更新您在 Ubuntu 上安装的 Rust 是个好习惯。
输入以下命令以更新 Rust:
- rustup update
您也可以从系统中删除 Rust 及其相关的代码库。
输入以下命令以卸载 Rust:
- rustup self uninstall
您需要输入 Y
来继续卸载过程。
输出
sammy@ubuntu:~/rustprojects/testdir$ rustup self uninstall
感谢您使用 Rust 进行编程!
这将卸载所有 Rust 工具链和数据,并从您的 PATH 环境变量中移除
$HOME/.cargo/bin。
继续? (y/N)
请按 Y
键继续:
输出
继续? (y/N) y
信息:正在移除 rustup 主目录
信息:正在移除 cargo 主目录
信息:正在移除 rustup 二进制文件
信息:rustup 已卸载
sammy@ubuntu:~/rustprojects/testdir$
您的系统中已清除 Rust。
结论
既然您已在 Ubuntu 上安装并测试过 Rust,那就继续通过更多的 Ubuntu 教程来深入学习吧。