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

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

6 min read Developer Обновлено 27 Nov 2025
Установка Rust на Debian 11 через rustup
Установка Rust на Debian 11 через rustup

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

Rust используется компаниями в продакшене для браузеров, облачных сервисов и встраиваемых устройств. rustup — официальный инструмент для установки и управления версиями Rust. Он упрощает переключение между stable, beta и nightly, а также облегчает кросс-компиляцию.

Что вы узнаете

  • Как подготовить Debian 11 к установке Rust.
  • Как установить rustup системно в /opt/rust.
  • Как настроить окружение и автодополнение команд.
  • Как создать, скомпилировать и запустить простой проект.
  • Как управлять toolchain’ами и целями кросс-компиляции.
  • Как безопасно удалить Rust и откатить изменения.

Требования

  • Операционная система: Debian 11 (Bullseye)
  • Права root (или sudo)
  • Подключение к Интернету

Важно: для системной установки используются каталоги под /opt, поэтому требуются права администратора.

Подготовка зависимостей

Установим утилиты и инструменты для сборки, которые понадобятся rustc и cargo при компиляции нативного кода.

  1. Получите права root и обновите индекс пакетов:
sudo su
sudo apt update
  1. Установите необходимые пакеты:
sudo apt install curl build-essential gcc make -y

Пояснение: build-essential обеспечивает компилятор и базовые заголовки, curl — для загрузки установщика rustup.

Установка Rust с помощью rustup (системная установка в /opt/rust)

rustup предоставляет установщик как для Unix-подобных систем, так и для Windows. В этом руководстве мы делаем системную установку в /opt/rust, чтобы Rust был доступен всем пользователям.

  1. Загрузите и запустите установщик 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 и вывод успешного завершения

  1. Добавьте постоянные переменные окружения для всех пользователей, чтобы 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 использовал тот же каталог.

  1. Примените изменения текущей сессии оболочки:
source /etc/profile

Проверьте переменные:

echo $RUSTUP_HOME
echo $PATH

Ожидаемый вывод покажет /opt/rust и путь, содержащий /opt/rust/bin.

Проверка переменных RUSTUP_HOME и PATH после установки

  1. Проверьте версию компилятора:
rustc --version

Пример вывода:

rustc 1.56.1 (59eed8a2a 2021-11-01)

Пояснение: версия будет отличаться в зависимости от того, какой toolchain установлен по умолчанию.

  1. Выполните проверку от имени обычного пользователя, чтобы убедиться, что системная установка доступна без прав root:
su - username
rustc --version

Если всё настроено верно, команда вернёт ту же версию rustc.

Проверка rustc от имени не-root пользователя

Автодополнение команд rustup для bash

rustup умеет генерировать автодополнения для разных оболочек. Для bash выполните:

rustup completions bash > /usr/share/bash-completion/completions/rustup

Затем перезагрузите профиль автодополнения:

source /etc/profile.d/bash_completion.sh

Проверьте автодополнение, введя «rustup» и нажав TAB.

rustup TAB

Пример автодополнения команды rustup в bash

Создание и запуск простого проекта Rust

Системная установка позволяет всем пользователям компилировать и запускать Rust-приложения.

  1. Войдите под обычным пользователем:
su - username
  1. Создайте директорию проекта и перейдите в неё:
mkdir -p ~/project; cd ~/project
  1. Создайте файл hello-world.rs в любом редакторе (например, nano):
nano hello-world.rs

Вставьте код:

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

Сохраните файл.

  1. Скомпилируйте программу:
rustc hello-world.rs

Команда создаст исполняемый файл hello-world в текущей директории.

  1. Запустите исполняемый файл:
./hello-world

Вы увидите вывод «Hello World, welcome to Rust.»

Запуск простого 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

Чтобы полностью удалить системную установку и вернуть систему к состоянию до установки:

  1. Удалите каталог установки и скрипт профиля:
sudo rm -rf /opt/rust
sudo rm -rf /etc/profile.d/rust.sh
  1. Дополнительно удалите пользовательские кэши и автодополнение, если они остались:
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 nightly

Decision 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. Удачной разработки!

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

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

Стрелки не работают в Excel — быстрое решение
Excel

Стрелки не работают в Excel — быстрое решение

Шифрование USB‑накопителя с VeraCrypt
Безопасность

Шифрование USB‑накопителя с VeraCrypt

PowerShell: история команд — просмотр и сохранение
PowerShell

PowerShell: история команд — просмотр и сохранение

Nandroid — полная резервная копия Android
Android.

Nandroid — полная резервная копия Android

Ошибка 0x800f0806 в Windows 11 22H2
Windows 11

Ошибка 0x800f0806 в Windows 11 22H2

Извлечь ссылки с веб‑страницы PowerShell
Automation

Извлечь ссылки с веб‑страницы PowerShell