Установка Rust на Debian 13, 12, 11: полное руководство

Rust — это современный язык системного программирования, разработанный компанией Mozilla. Он сочетает высокую производительность C++ с безопасностью памяти и отсутствием гонок данных, достигаемыми на этапе компиляции. В последние годы Rust стабильно входит в число самых любимых языков программирования среди разработчиков.

В отличие от многих других языков, Rust не устанавливается в Debian по умолчанию. В этом руководстве я покажу два способа установки Rust на Debian 13, 12 и 11:

  1. APT — из официальных репозиториев Debian (просто, но очень старые версии на Debian 11 и 12)
  2. rustup — официальный установщик от команды Rust (рекомендуемый, всегда свежая версия)
МетодКаналВерсияОбновленияДля кого
Debian APTРепозитории
Debian
Debian 13: 1.85.x;
Debian 12: 1.63.x;
Debian 11: 1.48.x
Через
apt upgrade
Системная
интеграция,
устаревшие
проекты
rustup
рекомендуемый
rustup.rsТекущая
стабильная
rustup updateАктивная
разработка,
современные
проекты

⚠️ Важно: Для большинства разработчиков rustup — лучший выбор, так как он даёт актуальную версию компилятора и документацию, соответствующую вашей версии. APT подойдёт, если вам нужна именно версия из Debian для совместимости с пакетами дистрибутива.


Предварительные требования

Перед установкой Rust убедитесь, что:

  • Подключение к интернету
  • Вы имеете права sudo (администратора)

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.

Ожидаемый вывод в терминале:

root

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.


Сравнение версий Rust в репозиториях Debian

Релиз DebianВерсия Rust в APTРекомендация
Debian 13 (Trixie)1.85.x✅ Ещё актуальна
Debian 12 (Bookworm)1.63.x⚠️ Сильно устарела
(более 2 лет)
Debian 11 (Bullseye)1.48.x❌ Безнадёжно устарела
(более 3 лет)

На новых версиях Rust появляются важные возможности и исправления, поэтому на Debian 11 и 12 настоятельно рекомендуется устанавливать Rust через rustup.


Способ 1: Установка Rust из APT

Этот способ подойдёт, если вам нужна именно версия, поставляемая с Debian, или вы не хотите использовать сторонние инструменты.

Шаг 1: Обновите систему

sudo apt update && sudo apt upgrade -y

Шаг 2: Установите Rust и Cargo

sudo apt install -y rustc cargo

Что делает: Устанавливает компилятор Rust (rustc) и менеджер пакетов Cargo.

Шаг 3: Проверьте установку

rustc --version && cargo --version

Ожидаемый вывод (Debian 13):

rustc 1.85.0 (4d91de4e4 2025-02-17) (built from a source tarball)
cargo 1.85.0 (d73d2caf9 2024-12-31)

На Debian 12 будет rustc 1.63.0 и cargo 1.65.0, на Debian 11 — rustc 1.48.0 и cargo 1.46.0.


Способ 2: Установка Rust с rustup (рекомендуемый)

rustup — официальный инструмент управления версиями Rust от команды языка. Он устанавливает компилятор в домашнюю директорию пользователя, не требует sudo (кроме установки зависимостей) и позволяет легко обновляться до свежих версий.

Шаг 1: Установите зависимости

sudo apt update
sudo apt install -y curl ca-certificates build-essential

Что делает:

  • curl — для скачивания установщика
  • ca-certificates — для проверки SSL-сертификатов
  • build-essential — компиляторы C/C++ (нужны для многих крейтов, которые компилируют нативный код)

Шаг 2: Скачайте и запустите установщик rustup

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

Что делает: Скачивает и запускает официальный скрипт установки rustup.

При первом запуске появится меню:

  • Нажмите Enter (или введите 1) для установки стабильной версии по умолчанию
  • Введите 2 для настройки параметров установки (профиль, компоненты)
  • Введите 3 для отмены

Ожидаемый вывод в конце:

info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'
  stable-x86_64-unknown-linux-gnu installed - rustc 1.x.x (build-hash yyyy-mm-dd)

Rust is installed now. Great!

Шаг 3: Загрузите переменные окружения в текущий терминал

source ~/.cargo/env

Что делает: Добавляет директорию ~/.cargo/bin (где находятся rustc и cargo) в переменную PATH текущей сессии.

Зачем: Установщик автоматически добавляет строку source ~/.cargo/env в ~/.profile, но для текущего терминала нужно выполнить её вручную.

Шаг 4: Проверьте установку

rustc --version && cargo --version

Ожидаемый вывод:

rustc 1.x.x (build-hash yyyy-mm-dd)
cargo 1.x.x (build-hash yyyy-mm-dd)

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

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

cargo new hello-rust --bin
cd hello-rust
cargo run

Что делает:

  • cargo new hello-rust --bin — создаёт новый бинарный проект в папке hello-rust
  • cd hello-rust — переходит в папку проекта
  • cargo run — собирает и запускает проект

Ожидаемый вывод:

    Creating binary (application) `hello-rust` package
   Compiling hello-rust v0.1.0 (/home/your-user/hello-rust)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in x.xxs
     Running `target/debug/hello-rust`
Hello, world!

Обновление Rust

Обновление APT-версии

sudo apt update
sudo apt install --only-upgrade rustc cargo

Что делает: Обновляет пакеты rustc и cargo, только если они уже установлены.

Обновление rustup-версии

rustup update

Что делает: Обновляет стабильную версию Rust до последней.

Ожидаемый вывод:

info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: checking for self-update
info: cleaning up downloads & tmp directories
  stable-x86_64-unknown-linux-gnu unchanged - rustc 1.x.x (build-hash yyyy-mm-dd)

Удаление Rust

Удаление APT-версии

sudo apt purge rustc cargo
sudo apt autoremove

Что делает: Удаляет пакеты Rust и Cargo. Будьте осторожны — autoremove может удалить компиляторы C/C++, если они больше не нужны другим программам.

Удаление rustup-версии

rustup self uninstall

Что делает: Запускает встроенный скрипт удаления rustup.

При запросе введите y:

Continue? (y/N) y
info: removing rustup home
info: removing cargo home
info: removing rustup binaries
info: rustup is uninstalled

Что остаётся: Проекты вроде ~/hello-rust не удаляются. Их нужно удалить вручную, если они больше не нужны.

Проверьте, что директории удалены:

for path in ~/.cargo ~/.rustup; do
  [ -e "$path" ] && echo "still present: $path" || echo "removed: $path"
done

Ожидаемый вывод:

removed: /home/your-user/.cargo
removed: /home/your-user/.rustup

Решение типичных проблем

8.1 Ошибка: rustc: command not found после установки rustup

Симптом: После установки rustup команды rustc или cargo не работают:

bash: rustc: command not found

Причина: Директория ~/.cargo/bin не добавлена в PATH в текущей сессии.

Пошаговое решение:

Шаг 1: Проверьте, есть ли ~/.cargo/bin в PATH:

echo "$PATH" | tr ':' '\n' | grep -Fx "$HOME/.cargo/bin"

Шаг 2: Если нет вывода — загрузите окружение вручную:

source ~/.cargo/env

Шаг 3: Проверьте, что команды работают:

rustc --version && cargo --version

Шаг 4: Чтобы изменения сохранились для новых терминалов, убедитесь, что в файле ~/.profile есть строка:

grep -q '.cargo/env' ~/.profile || echo 'source ~/.cargo/env' >> ~/.profile

(Обычно rustup добавляет её автоматически, но перепроверить не помешает.)


8.2 Ошибка: SSL certificate problem при установке rustup

Симптом: При запуске установщика появляется ошибка:

curl: (60) SSL certificate problem: unable to get local issuer certificate

Причина: Отсутствуют или устарели сертификаты CA (часто на минимальных установках Debian).

Пошаговое решение:

Шаг 1: Переустановите пакет сертификатов:

sudo apt update && sudo apt install --reinstall ca-certificates

Шаг 2: Проверьте, что HTTPS-запросы работают:

curl -fsSI https://sh.rustup.rs | head -n 1

Ожидаемый вывод: HTTP/1.1 200 OK

Шаг 3: Повторите установку rustup:

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

8.3 Ошибка: linker ‘cc’ not found

Симптом: При попытке собрать проект (cargo build или cargo run) появляется ошибка:

error: linker `cc` not found

Причина: Отсутствуют компиляторы C/C++, которые Rust использует для линковки.

Пошаговое решение:

Шаг 1: Установите build-essential:

sudo apt install -y build-essential

Шаг 2: Повторите сборку проекта:

cargo clean && cargo build

8.4 Ошибка: version mismatch между APT и rustup

Симптом: Вы установили Rust через APT, затем решили перейти на rustup, но rustc --version всё ещё показывает старую версию.

Причина: Директория с APT-версией (/usr/bin/rustc) находится в PATH раньше, чем ~/.cargo/bin.

Пошаговое решение:

Шаг 1: Удалите APT-версию Rust:

sudo apt purge rustc cargo

Шаг 2: Проверьте, что старые команды исчезли:

which rustc

Шаг 3: Перезагрузите терминал или выполните:

hash -r

Шаг 4: Установите rustup заново и проверьте версию.


8.5 Не хватает памяти при компиляции больших крейтов

Симптом: При сборке проекта компилятор падает с ошибкой нехватки памяти.

Причина: Rust компилятор требователен к памяти, особенно при оптимизированной сборке.

Пошаговое решение:

Шаг 1: Создайте файл конфигурации Cargo для увеличения лимита памяти:

mkdir -p ~/.cargo
cat >> ~/.cargo/config.toml << EOF
[build]
rustflags = ["-C", "link-args=-Wl,--no-keep-memory"]

[target.x86_64-unknown-linux-gnu]
linker = "cc"
rustflags = ["-C", "link-args=-Wl,--no-keep-memory"]
EOF

Примечание: Флаг --no-keep-memory действительно может помочь снизить использование памяти линкером. Но он не всегда решает проблему полностью. На ваше усмотрение т.к. это решение не является панацеей.

Шаг 2: Если проблема остаётся, временно отключите параллельную компиляцию:

CARGO_BUILD_JOBS=1 cargo build

Чек-лист: что проверить после установки

  • [ ] Rust установлен: rustc --version показывает версию
  • [ ] Cargo установлен: cargo --version показывает версию
  • [ ] Можно создать проект: cargo new test --bin && cd test && cargo run выводит «Hello, world!»
  • [ ] Для rustup: ~/.cargo/bin в PATH (проверьте через echo $PATH)
  • [ ] Для rustup: после перезапуска терминала rustc --version всё ещё работает
  • [ ] Установлены зависимости: build-essential (для линковки)

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

Вопрос: Rust уже есть в Debian. Зачем мне rustup?
Ответ: Да, но версии в Debian 11 и 12 очень старые (более 2-3 лет). rustup даёт последнюю стабильную версию, поддержку новых фич и легкое переключение между тулчейнами.

Вопрос: Нужно ли удалять APT-версию перед установкой rustup?
Ответ: Не обязательно, но рекомендуется — чтобы случайно не использовать старый компилятор. Если оставите, убедитесь, что ~/.cargo/bin идёт в PATH раньше /usr/bin.

Вопрос: Устанавливает ли rustup Cargo?
Ответ: Да, Cargo — неотъемлемая часть Rust, rustup устанавливает и его, и документацию, и другие компоненты.

Вопрос: Могу ли я установить несколько версий Rust (стабильную, nightly)?
Ответ: Да! Это одна из главных фич rustup. Устанавливайте rustup install nightly, а переключайтесь rustup default nightly.

Вопрос: Нужны ли мне административные права для установки через rustup?
Ответ: Нет, rustup устанавливает всё в домашнюю директорию (~/.cargo, ~/.rustup). sudo нужен только для установки build-essential (один раз).

Вопрос: Как узнать, что у меня установлено: APT или rustup?
Ответ: Выполните which rustc. Если путь /usr/bin/rustc — это APT. Если /home/пользователь/.cargo/bin/rustc — rustup.


Заключение

Теперь Rust установлен на вашем Debian. Вы можете:

  • Писать и компилировать программы на Rust
  • Использовать Cargo для управления зависимостями и сборкой
  • Разрабатывать современные системные приложения

Что дальше?