Установка и настройка Rust в Ubuntu

Rust (также называют rust-lang) — мощный язык программирования общего назначения. Синтаксически Rust похож на C++ и используется для разработки широкого спектра программного обеспечения: компонентов браузеров, игровых движков и операционных систем.

В этом туториале мы установим последнюю версию Rust в Ubuntu, а затем создадим, скомпилируем и запустим тестовую программу. Мы используем Rust версии 1.66.

Примечание: этот туториал подойдет для разных версий Ubuntu. Однако Ubuntu 22.04 при запуске apt upgrade может предложить вам ответить на различные вопросы в интерактивном режиме. Например, она может запросить разрешение на автоматический перезапуск служб при необходимости или замену отредактированного файла конфигурации. Ответы на эти вопросы зависят от программного обеспечения и ваших предпочтений, но это выходит за рамки данного мануала.

Требования

Для выполнения этого туториала вам понадобится сервер Ubuntu с пользователем sudo и брандмауэром. Все это настроить вам поможет этот мануал.

1: Установка Rust в Ubuntu с помощью rustup

Есть несколько разных способов установки Rust в Linux, но рекомендуемый метод — с помощью инструмента командной строки rustup.

Чтобы загрузить инструмент rustup и поставить последнюю стабильную версию Rust, выполните следующую команду:

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

Вам будет предложено выбрать тип установки:

8host@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/8host/.rustup

This can be modified with the RUSTUP_HOME environment variable.

The Cargo home directory is located at:

  /home/8host/.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/8host/.cargo/bin

This path will then be added to your PATH environment variable by
modifying the profile files located at:

  /home/8host/.profile
  /home/8host/.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 (default). Но если вы знакомы с инсталлятором rustup и хотите кастомизировать установку, то можете выбрать вариант 2. Сделайте выбор и нажмите Enter.

Вывод для варианта 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"
8host@ubuntu:~$

Чтобы добавить каталог утилит Rust в переменную окружения PATH, выполните следующую команду:

source $HOME/.cargo/env

2: Проверка установки

Чтобы убедиться, что Rust успешно установлен, мы запросим его версию:

rustc --version

Команда rustc –version выведет установленную  версию языка программирования Rust. Например:

8host@ubuntu:~$ rustc --version

rustc 1.66.1 (90743e729 2023-01-10)
8host@ubuntu:~$

3: Установка компилятора

Rust требует наличия программы-компоновщика для объединения скомпилированных результатов в один файл. GNU Compiler Collection (gcc) в пакете build-essential включает компоновщик. Если gcc не установлен, то при попытке компиляции может возникнуть следующая ошибка:

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

Устанавливать пакет build-essential мы будем с помощью apt.

Сначала обновите индекс пакета Apt:

sudo apt update

Если появится запрос, введите пароль для продолжения. Команда apt update выводит список пакетов, которые можно обновить. Например:

8host@ubuntu:~$ sudo apt update

[sudo] password for 8host: 
Hit:1 http://mirrors.8host.com/ubuntu focal InRelease
Get:2 http://mirrors.8host.com/ubuntu focal-updates InRelease [114 kB]                                   
Hit:3 https://repos-droplet.8host.com/apt/droplet-agent main InRelease                                   
Get:4 http://mirrors.8host.com/ubuntu focal-backports InRelease [108 kB]                               
Get:5 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:6 http://mirrors.8host.com/ubuntu focal-updates/main amd64 Packages [2336 kB]
Get:7 http://mirrors.8host.com/ubuntu focal-updates/main Translation-en [403 kB]
Get:8 http://mirrors.8host.com/ubuntu focal-updates/main amd64 c-n-f Metadata [16.2 kB]
Get:9 http://mirrors.8host.com/ubuntu focal-updates/restricted amd64 Packages [1560 kB]
Get:10 http://mirrors.8host.com/ubuntu focal-updates/restricted Translation-en [220 kB]
Get:11 http://mirrors.8host.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [620 B]
Get:12 http://mirrors.8host.com/ubuntu focal-updates/universe amd64 Packages [1017 kB]
Get:13 http://mirrors.8host.com/ubuntu focal-updates/universe Translation-en [236 kB]
Get:14 http://mirrors.8host.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [23.2 kB]
Get:15 http://mirrors.8host.com/ubuntu focal-updates/multiverse amd64 Packages [25.2 kB]
Get:16 http://mirrors.8host.com/ubuntu focal-updates/multiverse Translation-en [7408 B]
Get:17 http://mirrors.8host.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [604 B]
Get:18 http://mirrors.8host.com/ubuntu focal-backports/main amd64 Packages [45.7 kB]
Get:19 http://mirrors.8host.com/ubuntu focal-backports/main Translation-en [16.3 kB]
Get:20 http://mirrors.8host.com/ubuntu focal-backports/main amd64 c-n-f Metadata [1420 B]
Get:21 http://mirrors.8host.com/ubuntu focal-backports/universe amd64 Packages [24.9 kB]
Get:22 http://mirrors.8host.com/ubuntu focal-backports/universe Translation-en [16.3 kB]
Get:23 http://mirrors.8host.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.
8host@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

Для всех программ Rust нужно использовать расширение .rs.

Скопируйте следующий код в test.rs и сохраните файл:

fn main() {
    println!("Congratulations! Your Rust program works.");
}

Скомпилируйте код с помощью команды rustc:

rustc test.rs

Запустите полученный исполняемый файл:

./test

Программа выведет в терминал:

8host@ubuntu:~/rustprojects/testdir$ ./test

Congratulations! Your Rust program works.
8host@ubuntu:~/rustprojects/testdir$

Популярные команды Rust

Рекомендуем регулярно обновлять Rust в Ubuntu.

Чтобы обновить Rust, введите следующую команду:

rustup update

Вы можете удалить Rust из системы вместе с его связанными репозиториями.

Чтобы удалить Rust, введите следующую команду:

rustup self uninstall

Когда появится запрос, введите Y, чтобы продолжить процесс деинсталляции:

8host@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, чтобы продолжить:

Continue? (y/N) y

info: removing rustup home
info: removing cargo home
info: removing rustup binaries
info: rustup is uninstalled
8host@ubuntu:~/rustprojects/testdir$

Rust удален из системы.

Заключение

Установив и протестировав язык программирования Rust в Ubuntu, вы можете продолжить обучение самостоятельно: к примеру, попробуйте собрать более сложную программу.

Добавить комментарий