Гид по технологиям

Установка и управление Rust на Ubuntu 22.04

9 min read Development Обновлено 26 Nov 2025
Установка Rust на Ubuntu 22.04 с rustup и Cargo
Установка Rust на Ubuntu 22.04 с rustup и Cargo

логотип Rust и пример установки

О чём этот материал

Это руководство описывает два основных подхода к установке Rust на Ubuntu 22.04:

  • Простой и быстрый — установка rustc из репозиториев APT. Подходит для однопроектных сборок или если вам не нужны разные версии инструментария.
  • Рекомендуемый для разработки — установка через rustup. Позволяет управлять версиями (stable/beta/nightly), профилями и компонентами, а также обеспечивает удобную интеграцию в пользовательскую среду.

Также в статье вы найдёте:

  • пошаговые команды и примеры создания проекта с Cargo;
  • как переключать тулчейны и профили;
  • чек‑листы для разработчика, CI-инженера и администратора;
  • решение распространённых проблем и сценарии отката;
  • краткий глоссарий и рекомендованные практики безопасности.

Important: все команды выполняйте под непустым пользователем с sudo‑правами, если явным образом не указано иное.


Пререквизиты

Вам потребуется машина с Ubuntu 22.04 (Server или Desktop) и ненулевой пользователь с правами sudo/root.

Если вы планируете кросс‑компиляцию или сборку нативных расширений, заранее установите пакет build-essential и компиляторы.

Установка Rust через APT (быстро)

Установка из Ubuntu‑репозитория — самый быстрый путь, но версии там могут быть устаревшими. На момент исходной статьи в репозитории был rustc v1.61. Это подходит, если вам нужно просто скомпилировать одно приложение и нет требований к современным возможностям компилятора.

Обновите индекс пакетов и установите rustc:

sudo apt update
sudo apt install rustc

Подтвердите установку, введя y при запросе.

установка rust через apt

Проверьте расположение бинарника и версию:

which rustc
rustc -Vv

Ожидаемый вывод — путь к /usr/bin/rustc и версия компилятора (в репозитории Ubuntu это может быть более старая версия, например v1.61.0).

проверка версии rust

Создание простого файла и компиляция (демонстрация):

sudo nano hello-world.rs

Вставьте:

fn main() {
    println!("Hello World, welcome to Rust.");
}

Сохраните и выполните:

rustc hello-world.rs
./hello-world

После успешного запуска вы увидите сообщение “Hello World, welcome to Rust.”.

создание hello-world

Удаление через APT:

sudo apt remove rustc
sudo apt autoremove -y

удаление rust

Note: удаление системного rustc не затрагивает установку через rustup (если она есть) и наоборот.


Установка Rust через rustup (рекомендуется для разработчиков)

rustup — это менеджер тулчейнов (toolchain multiplexer). Он позволяет иметь несколько версий компилятора и компонентов, управлять профилями установки и безопасно изолировать пользовательскую среду. По функционалу rustup аналогичен rbenv, nvm или pyenv.

Установка делается на уровне пользователя и не требует root; всё хранится в ~/.cargo и ~/.rustup.

Подготовка окружения

Выполните под обычным пользователем (в примере используется alice):

su - alice
sudo apt install curl build-essential gcc make

установка зависимостей

Затем запустите официальный скрипт установки rustup:

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

В интерактивном установщике можно выбрать профиль (minimal/default/complete) и дефолтный тулчейн (stable/beta/nightly). Для старта безопасно выбрать опцию 1 (default).

установка rustup и rust

После завершения следуйте подсказке и загрузите переменные окружения:

source "$HOME/.cargo/env"

Проверьте версию и путь:

rustc -Vv
which rustc
which cargo
which rustup
cargo --version
rustup --version

В выводе вы увидите, что rust установлен в ~/.cargo/bin (например, rustc v1.66 в примере) и доступен только для текущего пользователя.

проверка компонентов

Если вы ранее устанавливали rustc через APT, убедитесь, что в PATH приоритет у ~/.cargo/bin, чтобы вызывался нужный бинарник.


Управление окружением Rust с помощью rustup

rustup позволяет:

  • устанавливать и удалять тулчейны (stable, beta, nightly и дополнительные);
  • переключать дефолтный тулчейн;
  • управлять профилями установки компонентов;
  • обновлять все тулчейны командой rustup update.

Настройка автодополнения для rustup

Для удобства можно подключить автодополнение bash:

mkdir -p ~/.local/share/bash-completion/completions/
rustup completions bash > ~/.local/share/bash-completion/completions/rustup
source ~/.local/share/bash-completion/completions/rustup

Теперь при вводе rustup и нажатии TAB появится список опций.

автодополнение rustup

Установка и переключение тулчейнов

Просмотр установленных тулчейнов:

rustup toolchain list

Установка nightly:

rustup toolchain install nightly

Установив несколько тулчейнов, можно поменять дефолтный:

rustup default nightly
rustc -Vv

Или запустить конкретный тулчейн для одной команды:

rustup run nightly rustc -Vv

установка nightly

Профили установки

Профиль в rustup задаёт набор компонентов, которые будут установлены по умолчанию: minimal, default, complete.

  • minimal — самый лёгкий набор (rustc, cargo, rust-std).
  • default — минимальный плюс документация, rustfmt, clippy.
  • complete — все доступные компоненты (обычно не нужен большинству пользователей).

Проверить текущий профиль и переключиться:

rustup show profile
rustup set profile minimal
rustup show profile
rustup set profile default

профили rustup

Обновление

Обновление всех тулчейнов и компонентов:

rustup update

rustup автоматически подтянет новые версии для установленных тулчейнов.

обновление rust


Работа с Cargo: создание, сборка и тестирование проекта

Cargo — пакетный менеджер и инструмент сборки для Rust. Он создаёт структуру проекта, управляет зависимостями и выполняет сборку, тестирование и запуск.

Создадим проект hello-world:

cargo new hello-world
cd hello-world/
tree .

В файле src/main.rs можно заменить код на:

fn main() {
    println!("Hello World, Rust with rustup and cargo.");
}

Сборка и тестирование:

cargo build
cargo test
cargo run

Cargo создаёт каталог target/ с результатами сборки. Для релизной сборки используйте cargo build –release.

создание проекта cargo

сборка проекта cargo

запуск тестов cargo

запуск приложения cargo run


Удаление rustup и Rust, установленного через rustup

Rust, установленный через rustup, живёт в ~/.cargo и ~/.rustup. Для полного удаления пользователя выполните:

rm -rf ~/.cargo ~/.rustup
rm -f ~/.local/share/bash-completion/completions/rustup

Это удалит тулчейны, компоненты и локальные бинарники.


Миграция с APT‑rustc на rustup: шаги и примечания

Когда вы решаете перейти с системного rustc (APT) на rustup, выполните следующие действия:

  1. Проверьте, установлен ли системный rustc: which rustc. Если путь /usr/bin/rustc — это APT.
  2. Установите rustup и загрузите среду: source “$HOME/.cargo/env”.
  3. Убедитесь, что which rustc указывает на ~/.cargo/bin/rustc. Если нет, поправьте PATH в ~/.profile или ~/.bashrc.
  4. Удалите системный rustc, если он мешает: sudo apt remove rustc. Но сначала убедитесь, что все системные пакеты (зависящие от rustc) не пострадают.

Совет: не удаляйте системный rustc на Box‑CI серверах без проверки зависимостей. Лучше сначала настроить PATH и убедиться в корректности приложений.


Безопасность и рекомендации для продакшна

  • Подписывайте артефакты сборки и храните повторяемые сборки в артефакт‑репозитории (например, Artifactory/Nexus).
  • Для CI используйте фиксированные тулчейны (rustup override или rust-toolchain файл), чтобы сборки были детерминированы.
  • Минимизируйте профиль в контейнерах: устанавливайте только необходимые компоненты (обычно minimal) для сборки и избегайте полного набора инструментов в прод‑имидже.
  • Регулярно обновляйте зависимости, но тестируйте после обновлений.

Короткая команда для установки определённой версии в проекте: создайте файл rust-toolchain с содержимым, например “stable” или конкретной версией — тогда rustup будет использовать её автоматически для директории проекта.


Чек‑листы по ролям

Разделён на три типичных роли: разработчик, CI-инженер, системный администратор.

Разработчик

  • Установить rustup и cargo в пользовательской директории.
  • Определить rust-toolchain в корне проекта.
  • Настроить форматирование и статическую аналитику (rustfmt, clippy).
  • Покрыть ключевые модули тестами и добавить CI‑триггеры.

CI / DevOps

  • Фиксировать тулчейн в rust-toolchain или через rustup toolchain install в pipeline.
  • Кешировать ~/.cargo/registry и ~/.cargo/git между сборками.
  • Использовать cargo audit или аналог для проверки уязвимостей зависимостей.
  • Строить артефакты в reproducible режиме (release, с контрольными суммами).

Системный администратор

  • Обеспечить наличие build-essential и необходимых компиляторов для нативных бибилиотек.
  • Решить стратегию установки: системный пакет для простых сборок или rustup для разработчиков.
  • Настроить политики обновления и бэкапы ~/.cargo/ и ~/.rustup/ при необходимости.

Отладка и частые проблемы

  1. rustc из APT вызывается вместо rustup версии:

    • Проверьте PATH: echo $PATH. Убедитесь, что ~/.cargo/bin идёт раньше /usr/bin.
  2. Не отображается автодополнение:

    • Проверьте место сохранения файла completions и загрузите его через source.
  3. Ошибки при сборке нативных зависимостей:

    • Установите build-essential, pkg-config и соответствующие dev‑пакеты для библиотек (например, libssl-dev для сборок с OpenSSL).
  4. CI падает из‑за обновлённого тулчейна:

    • Используйте rust-toolchain для фиксирования версии в проекте; обновляйте тулчейн вручную после тестов.

Edge-case gallery (кратко):

  • сборка на Alpine — требует musl‑целевой тулчейн и компилятора для musl; лучше собирать в контейнере с соответствующими зависимостями;
  • много тулчейнов в одном CI — кешируйте ~/.rustup и ~/.cargo, чтобы ускорить повторные сборки.

Примеры полезных команд (чек‑шит)

  • Установить stable: rustup default stable
  • Установить nightly: rustup toolchain install nightly
  • Запустить конкретный тулчейн: rustup run nightly cargo build
  • Добавить компонент: rustup component add rustfmt –toolchain stable
  • Удалить тулчейн: rustup toolchain uninstall nightly
  • Показать профиль: rustup show profile
  • Синхронизировать: rustup update

Совместимость и миграционные замечания

  • Системный пакет rustc может отличаться по версии от rustup: проверяйте интерфейс команд и поведение компонентов.
  • Если проект использует nightly‑only фичи, APT‑rustc не подойдёт — нужен rustup с nightly.
  • Для кросс‑компиляции на другие ОС используйте rustup target add и установите нужный linker/кросс‑компилятор.

Пример для добавления таргета и кросс‑линкера:

rustup target add x86_64-unknown-linux-musl
sudo apt install musl-tools

Ментальные модели и рекомендации

  • Если вы собираете одно бинарное приложение и не нуждаетесь в новых фичах — apt‑rustc может быть достаточен.
  • Если вы разрабатываете библиотеки, поддерживаете несколько проектов или используете nightly‑фичи — rustup необходим.
  • Всегда фиксируйте тулчейн для проекта (rust-toolchain), чтобы сборки везде были одинаковыми.

Decision flow: Как выбрать способ установки

flowchart TD
  A[Нужно быстро скомпилировать один проект?] -->|Да| B[Установить rustc через apt]
  A -->|Нет — я разработчик или нужен контроль версий| C[Установить rustup]
  C --> D{Нужны nightly‑фичи?}
  D -->|Да| E[Установить nightly и прописать rust-toolchain]
  D -->|Нет| F[Оставить stable, установить дополнительные компоненты по необходимости]
  B --> G[Проверить версию и использовать системный rustc]
  E --> H[Тестировать и закрепить версию в CI]
  F --> H

Критерии приёмки

  • Rust установлен и доступен в PATH (which rustc указывает на ожидаемый бинарник).
  • Cargo может создавать, тестировать и запускать проект (cargo build, cargo test, cargo run работают без ошибок).
  • Для проектов с фиксацией версии — rust-toolchain присутствует и обеспечивает одну и ту же версию в локальной среде и CI.

Краткий глоссарий (1‑строчные определения)

  • rustc — компилятор языка Rust.
  • cargo — инструмент управления пакетами и сборки для Rust.
  • rustup — менеджер тулчейнов, устанавливает и переключает версии rustc и компонентов.
  • тулчейн (toolchain) — набор rustc и сопутствующих компонентов (cargo, std и т. п.).
  • профиль (profile) — набор компонентов, устанавливаемых rustup по умолчанию.

Часто задаваемые вопросы

Q: Чем rustup лучше системного rustc?
A: rustup обеспечивает управление версиями, профили компонентов и изоляцию на уровне пользователя; подходит для разработки и CI.

Q: Если я установил rustc через APT, нужно ли удалять его перед установкой rustup?
A: Нет, но рекомендуется убедиться, что PATH настроен так, чтобы вызывался нужный rustc. Удаление APT‑пакета можно выполнить после проверки работоспособности rustup.

Q: Как закрепить версию Rust для проекта?
A: Создайте файл rust-toolchain в корне проекта с названием версии (например, “stable” или “1.66.0”). rustup автоматически использует эту версию для каталога проекта.


Резюме

  • Для простых задач на одной машине можно использовать rustc из APT, но версия может быть устаревшей.
  • Для разработки и поддержки нескольких проектов предпочтителен rustup: он даёт гибкость, управление версиями и компоненты.
  • Используйте cargo для управления проектами; фиксируйте тулчейн в проектах и настраивайте CI для стабильных сборок.

Extras: Настройте автодополнение, кешируйте каталоги ~/.cargo между сборками в CI, используйте rustfmt и clippy для единого стиля и выявления ошибок на ранней стадии.


Социальные заметки и короткое объявление

Если вы публикуете на командном канале: “Установил Rust на Ubuntu 22.04. Рекомендую rustup для разработки — он управляет версиями и компонентами, делает сборки воспроизводимыми. В инструкции есть чек‑листы и советы по CI.” (100–200 слов — используйте эту форму как анонс.)


FAQ (коротко)

  • Как удалить rustup? rm -rf ~/.cargo ~/.rustup и удалить автодополнение.
  • Можно ли использовать nightly в CI? Да, но фиксируйте версию и тестируйте.
  • Нужен ли musl для статической сборки? Да, для статической сборки на Linux обычно добавляют musl‑таргет.

Спасибо за прочтение. Если нужно, могу подготовить отдельную инструкцию для настройки контейнерной сборки (Dockerfile) с rustup и кешированием зависимостей.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как открыть NEF в Windows 10 — инструкции и инструменты
Фото

Как открыть NEF в Windows 10 — инструкции и инструменты

Отключить подсказки «Повторяемые действия»
Android.

Отключить подсказки «Повторяемые действия»

Опасные случаи в VR: мой опыт и как их избежать
VR безопасность

Опасные случаи в VR: мой опыт и как их избежать

Как удалить видео в TikTok быстро
Социальные сети

Как удалить видео в TikTok быстро

Как исправить ошибки Totally Accurate Battle Simulator
Игры

Как исправить ошибки Totally Accurate Battle Simulator

Как использовать спойлеры на Reddit
Социальные сети

Как использовать спойлеры на Reddit