如何在 Ubuntu 20.04 上安装 Rust

介绍

Rust 编程语言,也被称为 rust-lang,是一个强大的通用编程语言. Rust 语法类似于 C++,用于广泛的软件开发项目,包括浏览器组件,游戏引擎和操作系统。

在本教程中,您将在Ubuntu 20.04上安装最新版本的Rust,然后创建,编译和运行测试程序。

<$>[注] **注:**本教程也适用于Ubuntu 22.04,但在运行apt upgrade时,您可能会收到交互式对话对各种问题。例如,您可能会被问及在需要时是否想要自动重新启动服务,或者是否想要更换您已修改的配置文件。

前提条件

要完成本教程,您需要一个 Ubuntu 20.04 服务器,具有 sudo 允许的非根用户和防火墙。

步骤 1 — 使用rustup工具在Ubuntu上安装Rust

虽然在 Linux 上安装 Rust 有几种不同的方法,但建议的方法是使用rustup命令行工具。

运行命令来下载rustup工具并安装 Rust 的最新稳定版本:

1curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh

请您选择安装的类型:

 1[secondary_label Output]
 2sammy@ubuntu:~$ curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh
 3info: downloading installer
 4
 5Welcome to Rust!
 6
 7This will download and install the official compiler for the Rust
 8programming language, and its package manager, Cargo.
 9
10Rustup metadata and toolchains will be installed into the Rustup
11home directory, located at:
12
13  /home/sammy/.rustup
14
15This can be modified with the RUSTUP_HOME environment variable.
16
17The Cargo home directory is located at:
18
19  /home/sammy/.cargo
20
21This can be modified with the CARGO_HOME environment variable.
22
23The cargo, rustc, rustup and other commands will be added to
24Cargo's bin directory, located at:
25
26  /home/sammy/.cargo/bin
27
28This path will then be added to your PATH environment variable by
29modifying the profile files located at:
30
31  /home/sammy/.profile
32  /home/sammy/.bashrc
33
34You can uninstall at any time with rustup self uninstall and
35these changes will be reverted.
36
37Current installation options:
38
39   default host triple: x86_64-unknown-linux-gnu
40     default toolchain: stable (default)
41               profile: default
42  modify PATH variable: yes
43
441) Proceed with installation (default)
452) Customize installation
463) Cancel installation
47>

本教程使用了默认选项1. 但是,如果您熟悉rustup安装程序并希望定制您的安装,您可以选择选项2. 输入您的选择并按Enter

选择1的输出是:

 1[secondary_label Output]
 2info: profile set to 'default'
 3info: default host triple is x86_64-unknown-linux-gnu
 4info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
 5info: latest update on 2023-01-10, rust version 1.66.1 (90743e729 2023-01-10)
 6info: downloading component 'cargo'
 7info: downloading component 'clippy'
 8info: downloading component 'rust-docs'
 9info: downloading component 'rust-std'
10info: downloading component 'rustc'
11 67.4 MiB /  67.4 MiB (100 %)  40.9 MiB/s in 1s ETA:  0s
12info: downloading component 'rustfmt'
13info: installing component 'cargo'
14  6.6 MiB /   6.6 MiB (100 %)   5.5 MiB/s in 1s ETA:  0s
15info: installing component 'clippy'
16info: installing component 'rust-docs'
17 19.1 MiB /  19.1 MiB (100 %)   2.4 MiB/s in 7s ETA:  0s
18info: installing component 'rust-std'
19 30.0 MiB /  30.0 MiB (100 %)   5.6 MiB/s in 5s ETA:  0s
20info: installing component 'rustc'
21 67.4 MiB /  67.4 MiB (100 %)   5.9 MiB/s in 11s ETA:  0s
22info: installing component 'rustfmt'
23info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'
24
25  stable-x86_64-unknown-linux-gnu installed - rustc 1.66.1 (90743e729 2023-01-10)
26
27Rust is installed now. Great!
28
29To get started you may need to restart your current shell.
30This would reload your PATH environment variable to include
31Cargo's bin directory ($HOME/.cargo/bin).
32
33To configure your current shell, run:
34source "$HOME/.cargo/env"
35sammy@ubuntu:~$

接下来,运行以下命令,将 Rust 工具链目录添加到 PATH 环境变量:

1source $HOME/.cargo/env

步骤 2 – 检查安装

通过请求版本来验证 Rust 安装:

1rustc --version

「rustc --version」命令返回您系统上安装的 Rust 编程语言的版本。

1[secondary_label Output]
2sammy@ubuntu:~$ rustc --version
3rustc 1.66.1 (90743e729 2023-01-10)
4sammy@ubuntu:~$

步骤 3 – 安装编译器

Rust 需要一个链接程序来将编译的输出连接到一个文件中。 GNU 编译器集合(‘gcc’)在‘build-essential’包中包含一个链接器。

1error: linker `cc` not found
2  |
3  = note: No such file or directory (os error 2)
4
5error: aborting due to previous error

您将使用apt来安装build-essential包。

首先,更新 Apt 包索引:

1sudo apt update

如果被提示,请输入密码以继续使用。apt update命令输出可升级的包列表。

 1[secondary_label Output]
 2sammy@ubuntu:~$ sudo apt update
 3[sudo] password for sammy: 
 4Hit:1 http://mirrors.digitalocean.com/ubuntu focal InRelease
 5Get:2 http://mirrors.digitalocean.com/ubuntu focal-updates InRelease [114 kB]                                   
 6Hit:3 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease                                   
 7Get:4 http://mirrors.digitalocean.com/ubuntu focal-backports InRelease [108 kB]                               
 8Get:5 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
 9Get:6 http://mirrors.digitalocean.com/ubuntu focal-updates/main amd64 Packages [2336 kB]
10Get:7 http://mirrors.digitalocean.com/ubuntu focal-updates/main Translation-en [403 kB]
11Get:8 http://mirrors.digitalocean.com/ubuntu focal-updates/main amd64 c-n-f Metadata [16.2 kB]
12Get:9 http://mirrors.digitalocean.com/ubuntu focal-updates/restricted amd64 Packages [1560 kB]
13Get:10 http://mirrors.digitalocean.com/ubuntu focal-updates/restricted Translation-en [220 kB]
14Get:11 http://mirrors.digitalocean.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [620 B]
15Get:12 http://mirrors.digitalocean.com/ubuntu focal-updates/universe amd64 Packages [1017 kB]
16Get:13 http://mirrors.digitalocean.com/ubuntu focal-updates/universe Translation-en [236 kB]
17Get:14 http://mirrors.digitalocean.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [23.2 kB]
18Get:15 http://mirrors.digitalocean.com/ubuntu focal-updates/multiverse amd64 Packages [25.2 kB]
19Get:16 http://mirrors.digitalocean.com/ubuntu focal-updates/multiverse Translation-en [7408 B]
20Get:17 http://mirrors.digitalocean.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [604 B]
21Get:18 http://mirrors.digitalocean.com/ubuntu focal-backports/main amd64 Packages [45.7 kB]
22Get:19 http://mirrors.digitalocean.com/ubuntu focal-backports/main Translation-en [16.3 kB]
23Get:20 http://mirrors.digitalocean.com/ubuntu focal-backports/main amd64 c-n-f Metadata [1420 B]
24Get:21 http://mirrors.digitalocean.com/ubuntu focal-backports/universe amd64 Packages [24.9 kB]
25Get:22 http://mirrors.digitalocean.com/ubuntu focal-backports/universe Translation-en [16.3 kB]
26Get:23 http://mirrors.digitalocean.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [880 B]
27Get:24 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1960 kB]
28Get:25 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [320 kB]
29Get:26 http://security.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [11.7 kB]
30Get:27 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [1463 kB]
31Get:28 http://security.ubuntu.com/ubuntu focal-security/restricted Translation-en [207 kB]
32Get:29 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 c-n-f Metadata [624 B]
33Get:30 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [786 kB]
34Get:31 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [152 kB]
35Get:32 http://security.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [16.9 kB]
36Get:33 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [22.2 kB]
37Get:34 http://security.ubuntu.com/ubuntu focal-security/multiverse Translation-en [5464 B]
38Get:35 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [516 B]
39Fetched 11.2 MB in 5s (2131 kB/s)                          
40Reading package lists... Done
41Building dependency tree       
42Reading state information... Done
43103 packages can be upgraded. Run 'apt list --upgradable' to see them.
44sammy@ubuntu:~$

接下来,升级任何过时的包:

1sudo apt upgrade

输入Y,如果被要求继续升级。

升级完成后,安装build-essential包:

1sudo apt install build-essential

当被要求继续安装时输入Y。当您的终端返回命令提示时,安装完成,没有错误消息。

步骤 4 – 创建、编译和运行测试程序

在此步骤中,您将创建一个测试程序来尝试Rust并验证它是否正常工作。

首先,创建一些目录来存储测试脚本:

1mkdir ~/rustprojects
2cd ~/rustprojects
3mkdir testdir
4cd testdir

使用nano,或您最喜欢的文本编辑器,在testdir中创建一个文件来存储您的Rust代码:

1nano test.rs

您需要为所有 Rust 程序使用 .rs 扩展。

将以下代码复制到 test.rs 并保存文件:

1[label test.rs]
2fn main() {
3    println!("Congratulations! Your Rust program works.");
4}

使用rustc命令编译代码:

1rustc test.rs

运行结果的可执行:

1./test

该程序打印到终端:

1[secondary_label Output]
2sammy@ubuntu:~/rustprojects/testdir$ ./test
3Congratulations! Your Rust program works.
4sammy@ubuntu:~/rustprojects/testdir$

其他常用的 Rust 命令

这是一个好主意,定期更新 Ubuntu 上的 Rust 安装。

输入以下命令来更新 Rust:

1rustup update

您也可以从您的系统中删除 Rust,以及其相关的存储库。

输入以下命令来卸载 Rust:

1rustup self uninstall

您被要求输入Y,以继续卸载过程:

1[secondary_label Output]
2ammy@ubuntu:~/rustprojects/testdir$ rustup self uninstall
3
4Thanks for hacking in Rust!
5
6This will uninstall all Rust toolchains and data, and remove
7$HOME/.cargo/bin from your PATH environment variable.
8
9Continue? (y/N)

输入Y以继续:

1[secondary_label Output]
2Continue? (y/N) y
3
4info: removing rustup home
5info: removing cargo home
6info: removing rustup binaries
7info: rustup is uninstalled
8sammy@ubuntu:~/rustprojects/testdir$

Rust 已从您的系统中删除。

结论

现在你已经在Ubuntu上安装并测试了Rust,继续学习更多 Ubuntu教程

Published At
Categories with 技术
Tagged with
comments powered by Disqus