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

О чём этот материал
Это руководство описывает два основных подхода к установке 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 при запросе.

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

Создание простого файла и компиляция (демонстрация):
sudo nano hello-world.rsВставьте:
fn main() {
println!("Hello World, welcome to Rust.");
}Сохраните и выполните:
rustc hello-world.rs
./hello-worldПосле успешного запуска вы увидите сообщение “Hello World, welcome to Rust.”.

Удаление через APT:
sudo apt remove rustc
sudo apt autoremove -y
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).

После завершения следуйте подсказке и загрузите переменные окружения:
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 toolchain listУстановка nightly:
rustup toolchain install nightlyУстановив несколько тулчейнов, можно поменять дефолтный:
rustup default nightly
rustc -VvИли запустить конкретный тулчейн для одной команды:
rustup run nightly rustc -Vv
Профили установки
Профиль в 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 updaterustup автоматически подтянет новые версии для установленных тулчейнов.

Работа с 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 runCargo создаёт каталог target/ с результатами сборки. Для релизной сборки используйте cargo build –release.




Удаление 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, выполните следующие действия:
- Проверьте, установлен ли системный rustc: which rustc. Если путь /usr/bin/rustc — это APT.
- Установите rustup и загрузите среду: source “$HOME/.cargo/env”.
- Убедитесь, что which rustc указывает на ~/.cargo/bin/rustc. Если нет, поправьте PATH в ~/.profile или ~/.bashrc.
- Удалите системный 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/ при необходимости.
Отладка и частые проблемы
rustc из APT вызывается вместо rustup версии:
- Проверьте PATH: echo $PATH. Убедитесь, что ~/.cargo/bin идёт раньше /usr/bin.
Не отображается автодополнение:
- Проверьте место сохранения файла completions и загрузите его через source.
Ошибки при сборке нативных зависимостей:
- Установите build-essential, pkg-config и соответствующие dev‑пакеты для библиотек (например, libssl-dev для сборок с OpenSSL).
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 и кешированием зависимостей.
Похожие материалы
Как открыть NEF в Windows 10 — инструкции и инструменты
Отключить подсказки «Повторяемые действия»
Опасные случаи в VR: мой опыт и как их избежать
Как удалить видео в TikTok быстро
Как исправить ошибки Totally Accurate Battle Simulator