Rust — это современный язык системного программирования, разработанный компанией Mozilla. Он сочетает высокую производительность C++ с безопасностью памяти и отсутствием гонок данных, достигаемыми на этапе компиляции. В последние годы Rust стабильно входит в число самых любимых языков программирования среди разработчиков.
В отличие от многих других языков, Rust не устанавливается в Debian по умолчанию. В этом руководстве я покажу два способа установки Rust на Debian 13, 12 и 11:
- APT — из официальных репозиториев Debian (просто, но очень старые версии на Debian 11 и 12)
- 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-rustcd 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 для управления зависимостями и сборкой
- Разрабатывать современные системные приложения
Что дальше?
- Изучите официальное пособие «The Rust Programming Language»
- Установите Git для контроля версий
- Настройте Visual Studio Code с расширением rust-analyzer для удобной разработки
- Установите CMake, если ваши крейты используют нативные библиотеки