Установка Rust на Debian 11 (Bullseye) через rustup

Rust используется компаниями в продакшене для браузеров, облачных сервисов и встраиваемых устройств. rustup — официальный инструмент для установки и управления версиями Rust. Он упрощает переключение между stable, beta и nightly, а также облегчает кросс-компиляцию.
Что вы узнаете
- Как подготовить Debian 11 к установке Rust.
- Как установить rustup системно в /opt/rust.
- Как настроить окружение и автодополнение команд.
- Как создать, скомпилировать и запустить простой проект.
- Как управлять toolchain’ами и целями кросс-компиляции.
- Как безопасно удалить Rust и откатить изменения.
Требования
- Операционная система: Debian 11 (Bullseye)
- Права root (или sudo)
- Подключение к Интернету
Важно: для системной установки используются каталоги под /opt, поэтому требуются права администратора.
Подготовка зависимостей
Установим утилиты и инструменты для сборки, которые понадобятся rustc и cargo при компиляции нативного кода.
- Получите права root и обновите индекс пакетов:
sudo su
sudo apt update- Установите необходимые пакеты:
sudo apt install curl build-essential gcc make -yПояснение: build-essential обеспечивает компилятор и базовые заголовки, curl — для загрузки установщика rustup.
Установка Rust с помощью rustup (системная установка в /opt/rust)
rustup предоставляет установщик как для Unix-подобных систем, так и для Windows. В этом руководстве мы делаем системную установку в /opt/rust, чтобы Rust был доступен всем пользователям.
- Загрузите и запустите установщик rustup, передав RUSTUP_HOME и CARGO_HOME в /opt/rust:
wget -qO - https://sh.rustup.rs | sudo RUSTUP_HOME=/opt/rust CARGO_HOME=/opt/rust sh -s -- --no-modify-path -yОписание: ключ –no-modify-path предотвращает автоматическое изменение пользовательских профилей. Мы явно помещаем файлы в /opt/rust для централизованного управления.
Если установка прошла успешно, в конце вы увидите сообщение вроде «Rust is installed now. Great!». На некоторых системах вывод может отличаться в локализации.

- Добавьте постоянные переменные окружения для всех пользователей, чтобы rustup и cargo были в PATH. Создадим скрипт в /etc/profile.d:
echo 'export RUSTUP_HOME=/opt/rust' | sudo tee -a /etc/profile.d/rust.sh
echo 'export CARGO_HOME=/opt/rust' | sudo tee -a /etc/profile.d/rust.sh
echo 'export PATH=$PATH:/opt/rust/bin' | sudo tee -a /etc/profile.d/rust.shПримечание: мы также экспортируем CARGO_HOME, чтобы cargo использовал тот же каталог.
- Примените изменения текущей сессии оболочки:
source /etc/profileПроверьте переменные:
echo $RUSTUP_HOME
echo $PATHОжидаемый вывод покажет /opt/rust и путь, содержащий /opt/rust/bin.

- Проверьте версию компилятора:
rustc --versionПример вывода:
rustc 1.56.1 (59eed8a2a 2021-11-01)Пояснение: версия будет отличаться в зависимости от того, какой toolchain установлен по умолчанию.
- Выполните проверку от имени обычного пользователя, чтобы убедиться, что системная установка доступна без прав root:
su - username
rustc --versionЕсли всё настроено верно, команда вернёт ту же версию rustc.

Автодополнение команд rustup для bash
rustup умеет генерировать автодополнения для разных оболочек. Для bash выполните:
rustup completions bash > /usr/share/bash-completion/completions/rustupЗатем перезагрузите профиль автодополнения:
source /etc/profile.d/bash_completion.shПроверьте автодополнение, введя «rustup» и нажав TAB.
rustup TAB
Создание и запуск простого проекта Rust
Системная установка позволяет всем пользователям компилировать и запускать Rust-приложения.
- Войдите под обычным пользователем:
su - username- Создайте директорию проекта и перейдите в неё:
mkdir -p ~/project; cd ~/project- Создайте файл hello-world.rs в любом редакторе (например, nano):
nano hello-world.rsВставьте код:
fn main() {
println!("Hello World, welcome to Rust.");
}Сохраните файл.
- Скомпилируйте программу:
rustc hello-world.rsКоманда создаст исполняемый файл hello-world в текущей директории.
- Запустите исполняемый файл:
./hello-worldВы увидите вывод «Hello World, welcome to Rust.»

Управление Rust с помощью rustup
Основные команды rustup для повседневной работы:
- Установить дефолтный toolchain:
rustup default nightly- Установить профиль установки (minimal, default, complete):
rustup set profile minimal- Скомпилировать с конкретным toolchain:
rustup run nightly rustc hello-world.rs- Показать текущее состояние rustup и активные toolchain’ы:
rustup show- Список доступных целей (targets) для кросс-компиляции:
rustup target list- Удалить toolchain:
rustup toolchain uninstall nightly- Просмотреть справку для подкоманд:
rustup toolchain help- Показать man-страницу для инструментов Cargo или rustc:
rustup man cargoТонкости системной установки и альтернативы
Когда имеет смысл системная установка в /opt/rust:
- Несколько пользователей должны использовать одну и ту же установку.
- Желательно централизованно управлять обновлениями и правами доступа.
Когда лучше ставить rustup per-user (в домашний каталог):
- Каждый разработчик хочет свою версию toolchain и собственные расширения.
- Отсутствует необходимость прав администратора.
Альтернативы:
- Установка через apt (пакеты Debian). Плюсы: простота. Минусы: часто устаревшие версии.
- Использование контейнеров (Docker) для изоляции окружения.
Совет: для разработки чаще всего удобнее ставить rustup в домашний каталог пользователя. Для серверов и CI выгодна системная установка.
Безопасность и права доступа
- Каталог /opt/rust должен принадлежать root и иметь права, исключающие запись для обычных пользователей.
- При желании можно сделать отдельную группу (например, rustdev) и дать доступ на чтение/запуск членам группы.
- AppArmor/SELinux: на Debian обычно используется AppArmor. Проверьте профили, если у вас возникают проблемы с исполнением бинарников.
Пример установки прав:
sudo chown -R root:root /opt/rust
sudo chmod -R 755 /opt/rustЕсли вы хотите, чтобы группа пользователей имела доступ на запись в /opt/rust (редкие случаи):
sudo groupadd rustdev
sudo usermod -aG rustdev username
sudo chown -R root:rustdev /opt/rust
sudo chmod -R 775 /opt/rustУдаление Rust и rustup
Чтобы полностью удалить системную установку и вернуть систему к состоянию до установки:
- Удалите каталог установки и скрипт профиля:
sudo rm -rf /opt/rust
sudo rm -rf /etc/profile.d/rust.sh- Дополнительно удалите пользовательские кэши и автодополнение, если они остались:
rm -rf ~/.cargo
rm -f /usr/share/bash-completion/completions/rustupПосле удаления перезагрузите сессию.
Критерии приёмки
- Команда rustc –version возвращает версию компилятора без ошибок.
- Переменные RUSTUP_HOME и CARGO_HOME установлены и указывают на /opt/rust.
- /opt/rust/bin присутствует в PATH для всех пользователей.
- Обычный пользователь может скомпилировать и запустить простой бинарник.
- Автодополнение rustup работает в bash.
Типичные проблемы и их решение
Проблема: rustc не найден под обычным пользователем. Решение: проверьте, что /etc/profile.d/rust.sh загружается. Вы можете добавить строки экспорта в ~/.profile для конкретного пользователя.
Проблема: ошибки при выполнении rustup как root. Решение: rustup предпочитает запуск в контексте пользователя. Для управления системной установкой используйте sudo только для запуска инсталлятора.
Проблема: автодополнение не работает. Решение: убедитесь, что пакет bash-completion установлен и файл /usr/share/bash-completion/completions/rustup существует.
Быстрые решения и чек-листы по ролям
Чек-лист для системного администратора:
- Установить /opt/rust через rustup в режиме sudo.
- Настроить /etc/profile.d/rust.sh с RUSTUP_HOME и CARGO_HOME.
- Проверить права доступа и при необходимости создать группу rustdev.
- Настроить автодополнение для bash.
- Документировать политику обновлений и бэкапы.
Чек-лист для разработчика:
- Убедиться, что PATH содержит /opt/rust/bin.
- Проверить rustc и cargo.
- Настроить per-project rust-toolchain файл при необходимости фиксирования версии.
- Использовать rustup override или rust-toolchain для конкретных папок.
Чек-лист для команды безопасности:
- Проверить права на /opt/rust.
- Оценить необходимость выделения группы.
- Проверить, не добавляет ли установка уязвимости в цепочку поставок зависимостей.
Примеры команд и подсказки (cheat sheet)
- Показать установленные toolchain’ы:
rustup toolchain list- Добавить target для кросс-компиляции:
rustup target add x86_64-unknown-linux-musl- Скомпилировать для target:
rustup run stable rustc --target x86_64-unknown-linux-musl hello-world.rs- Быстро переключиться на nightly:
rustup default nightlyDecision tree: выбрать тип установки
graph TD
A[Нужно ли централизованно управлять Rust на сервере?] -->|Да| B[Системная установка /opt/rust]
A -->|Нет, разработчики хотят разные версии| C[Per-user rustup в ~/ .cargo]
B --> D{Нужны ли права записи для разработчиков?}
D -->|Да| E[Создать группу rustdev и дать права]
D -->|Нет| F[Оставить root:root и 755]
C --> G[Каждый разработчик запускает rustup самостоятельно]Когда подход не сработает
- На старых версиях Debian пакетные менеджеры могут отсутствовать curl или wget. Установите их сначала.
- Если требуется максимально свежая версия Rust в контролируемых корпоративных окружениях, рассмотрите CI-образ с предустановленным Rust вместо системной установки.
- На системах с жесткой политикой безопасности запись в /opt может быть запрещена — тогда используйте контейнеры.
Краткое резюме
- rustup — рекомендованный способ установки и управления Rust.
- Системная установка в /opt/rust делает Rust доступным всем пользователям.
- Всегда проверяйте PATH и переменные RUSTUP_HOME/CARGO_HOME.
- Для индивидуальной разработки удобнее per-user установка.
Важное: перед массовым развертыванием обсудите политику обновлений и права доступа с командой безопасности.
Часто задаваемые вопросы
Q: Можно ли обновлять Rust через apt после установки rustup?
A: Не рекомендуется. apt и rustup управляют разными наборами пакетов и могут конфликтовать. Используйте rustup для обновлений toolchain.
Q: Как установить Rust только для одного пользователя?
A: Запустите инсталлятор без sudo. По умолчанию rustup установит файлы в ~/.cargo и ~/.rustup.
Q: Как зафиксировать версию Rust для проекта?
A: Создайте файл rust-toolchain в корне проекта с указанием desired-toolchain, например “stable” или конкретной версии.
Спасибо — теперь у вас есть полное руководство по установке и сопровождению Rust на Debian 11 с использованием rustup. Удачной разработки!
Похожие материалы
Стрелки не работают в Excel — быстрое решение
Шифрование USB‑накопителя с VeraCrypt
PowerShell: история команд — просмотр и сохранение
Nandroid — полная резервная копия Android
Ошибка 0x800f0806 в Windows 11 22H2