Как установить Rust на Ubuntu 20.04
Введение
Язык программирования Rust, также известный как rust-lang, является мощным языком программирования общего назначения. Rust синтаксически похож на C++ и используется для широкого круга проектов по разработке программного обеспечения, включая компоненты браузера, игровые движки и операционные системы.
В этом руководстве вы установите последнюю версию Rust на Ubuntu 20.04, а затем создадите, скомпилируете и запустите тестовую программу. Примеры в этом руководстве показывают установку Rust версии 1.66.
Примечание. Этот учебник также работает для Ubuntu 22.04, однако при запуске apt upgrade
вам могут быть представлены интерактивные диалоговые окна для различных вопросов. Например, вас могут спросить, хотите ли вы автоматически перезапускать службы при необходимости или хотите ли вы заменить файл конфигурации, который вы изменили. Ответы на эти вопросы зависят от вашего программного обеспечения и предпочтений и выходят за рамки данного руководства.
Предпосылки
Для выполнения этого руководства вам понадобится сервер Ubuntu 20.04 с пользователем без полномочий root с поддержкой sudo и брандмауэром. Вы можете настроить это, следуя нашему руководству Initial Server Setup with Ubuntu 20.04.
Шаг 1 — Установка Rust на Ubuntu с помощью инструмента rustup
Хотя существует несколько различных способов установки Rust в Linux, рекомендуемый способ — использовать инструмент командной строки rustup
.
Запустите команду, чтобы загрузить инструмент rustup
и установить последнюю стабильную версию Rust:
- curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh
Вам будет предложено выбрать тип установки:
Outputsammy@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. Введите свой выбор и нажмите Enter
.
Выход для варианта 1:
Outputinfo: 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
Шаг 2 — Проверка установки
Проверьте установку Rust, запросив версию:
- rustc --version
Команда rustc --version
возвращает версию языка программирования Rust, установленную в вашей системе. Например:
Outputsammy@ubuntu:~$ rustc --version
rustc 1.66.1 (90743e729 2023-01-10)
sammy@ubuntu:~$
Шаг 3 — Установка компилятора
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:
- sudo apt update
Введите свой пароль, чтобы продолжить, если будет предложено. Команда apt update
выводит список пакетов, которые можно обновить. Например:
Outputsammy@ubuntu:~$ sudo apt update
[sudo] password for sammy:
Hit:1 http://mirrors.linux-console.net/ubuntu focal InRelease
Get:2 http://mirrors.linux-console.net/ubuntu focal-updates InRelease [114 kB]
Hit:3 https://repos-droplet.linux-console.net/apt/droplet-agent main InRelease
Get:4 http://mirrors.linux-console.net/ubuntu focal-backports InRelease [108 kB]
Get:5 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:6 http://mirrors.linux-console.net/ubuntu focal-updates/main amd64 Packages [2336 kB]
Get:7 http://mirrors.linux-console.net/ubuntu focal-updates/main Translation-en [403 kB]
Get:8 http://mirrors.linux-console.net/ubuntu focal-updates/main amd64 c-n-f Metadata [16.2 kB]
Get:9 http://mirrors.linux-console.net/ubuntu focal-updates/restricted amd64 Packages [1560 kB]
Get:10 http://mirrors.linux-console.net/ubuntu focal-updates/restricted Translation-en [220 kB]
Get:11 http://mirrors.linux-console.net/ubuntu focal-updates/restricted amd64 c-n-f Metadata [620 B]
Get:12 http://mirrors.linux-console.net/ubuntu focal-updates/universe amd64 Packages [1017 kB]
Get:13 http://mirrors.linux-console.net/ubuntu focal-updates/universe Translation-en [236 kB]
Get:14 http://mirrors.linux-console.net/ubuntu focal-updates/universe amd64 c-n-f Metadata [23.2 kB]
Get:15 http://mirrors.linux-console.net/ubuntu focal-updates/multiverse amd64 Packages [25.2 kB]
Get:16 http://mirrors.linux-console.net/ubuntu focal-updates/multiverse Translation-en [7408 B]
Get:17 http://mirrors.linux-console.net/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [604 B]
Get:18 http://mirrors.linux-console.net/ubuntu focal-backports/main amd64 Packages [45.7 kB]
Get:19 http://mirrors.linux-console.net/ubuntu focal-backports/main Translation-en [16.3 kB]
Get:20 http://mirrors.linux-console.net/ubuntu focal-backports/main amd64 c-n-f Metadata [1420 B]
Get:21 http://mirrors.linux-console.net/ubuntu focal-backports/universe amd64 Packages [24.9 kB]
Get:22 http://mirrors.linux-console.net/ubuntu focal-backports/universe Translation-en [16.3 kB]
Get:23 http://mirrors.linux-console.net/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
, когда будет предложено продолжить установку. Установка завершена, когда ваш терминал возвращается к командной строке без сообщений об ошибках.
Шаг 4 — Создание, компиляция и запуск тестовой программы
На этом шаге вы создадите тестовую программу, чтобы опробовать Rust и убедиться, что она работает правильно.
Начните с создания нескольких каталогов для хранения тестового сценария:
- mkdir ~/rustprojects
- cd ~/rustprojects
- mkdir testdir
- cd testdir
Используйте nano
или ваш любимый текстовый редактор, чтобы создать файл в testdir
для хранения кода Rust:
- nano test.rs
Вам нужно использовать расширение .rs
для всех ваших программ на Rust.
Скопируйте следующий код в test.rs
и сохраните файл:
fn main() {
println!("Congratulations! Your Rust program works.");
}
Скомпилируйте код с помощью команды rustc
:
- rustc test.rs
Запустите полученный исполняемый файл:
- ./test
Программа выводит на терминал:
Outputsammy@ubuntu:~/rustprojects/testdir$ ./test
Congratulations! Your Rust program works.
sammy@ubuntu:~/rustprojects/testdir$
Другие часто используемые команды Rust
Рекомендуется регулярно обновлять установку Rust на Ubuntu.
Введите следующую команду для обновления Rust:
- rustup update
Вы также можете удалить Rust из своей системы вместе со связанными с ним репозиториями.
Введите следующую команду, чтобы удалить Rust:
- rustup self uninstall
Вам будет предложено ввести Y
, чтобы продолжить процесс удаления:
Outputammy@ubuntu:~/rustprojects/testdir$ rustup self uninstall
Thanks for hacking in Rust!
This will uninstall all Rust toolchains and data, and remove
$HOME/.cargo/bin from your PATH environment variable.
Continue? (y/N)
Введите Y
, чтобы продолжить:
OutputContinue? (y/N) y
info: removing rustup home
info: removing cargo home
info: removing rustup binaries
info: rustup is uninstalled
sammy@ubuntu:~/rustprojects/testdir$
Rust удален из вашей системы.
Заключение
Теперь, когда вы установили и протестировали Rust на Ubuntu, продолжайте обучение с помощью дополнительных руководств по Ubuntu.