Не паникуй: «No default toolchain configured» в Rust — решение

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Вступление: Знакомая боль каждого новичка в Rust

Вы только что установили Rust, следуя инструкции с официального сайта, открываете терминал и с замиранием сердца вводите rustc --version. И тут — бац! — вместо красивой строчки с номером версии вы видите холодный, пугающий текст: «No default toolchain configured after installing rustup».

Знакомо? Если да, то вы не одиноки. Этот вопрос на Stack Overflow собрал тысячи просмотров и десятки комментариев. Но не спешите паниковать и удалять всё подряд. В этой статье мы разберём, что такое toolchain, почему rustup не может его найти, и, самое главное, как это исправить раз и навсегда. Мы пройдём путь от полного нуля до работающей среды разработки на Rust.

Готовы? Поехали!

Что такое toolchain и почему rustup о нём «забывает»?

Прежде чем лезть в дебри, давайте разберёмся с понятиями. Toolchain (инструментальная цепочка) — это набор инструментов, необходимых для компиляции и сборки кода на Rust. В него входят:

  • rustc — сам компилятор;
  • cargo — менеджер пакетов и система сборки;
  • rust-std — стандартная библиотека;
  • И другие компоненты (например, clippy для линтинга).

Rustup — это официальный установщик и менеджер версий Rust. Он позволяет переключаться между разными версиями компилятора: стабильной (stable), ночной (nightly) и тестовой (beta). Когда вы вводите rustup install stable, rustup скачивает соответствующий toolchain и сохраняет его на диск.

Ошибка «No default toolchain configured» возникает, когда rustup не может определить, какую версию toolchain использовать по умолчанию. Это похоже на ситуацию, когда вы пришли в библиотеку, но не знаете, какую книгу читать первой. Rustup просто не знает, какой компилятор ему запускать.

Причины могут быть разными:

  • Вы только что установили rustup, но не установили ни один toolchain;
  • Установка прервалась из-за проблем с сетью;
  • Вы удалили toolchain вручную;
  • Проблемы с правами доступа к папке ~/.rustup.

Диагностика: проверяем текущее состояние

Прежде чем что-то исправлять, давайте посмотрим, что у нас есть. Откройте терминал и выполните команду:

rustup show

Вы должны увидеть что-то вроде этого (если всё плохо):

Default host: x86_64-unknown-linux-gnu
rustup home:  /home/user/.rustup

installed toolchains
--------------------

active toolchain
----------------
(no active toolchain)

Обратите внимание на строчку «no active toolchain». Это и есть корень зла. Давайте это исправим.

Решение №1: Установка и настройка default toolchain

Самый простой и распространённый способ — явно установить стабильный toolchain и назначить его версией по умолчанию.

Выполните в терминале:

rustup install stable

Эта команда загрузит и установит последнюю стабильную версию Rust. Процесс может занять некоторое время (обычно 1-3 минуты, зависит от скорости интернета).

После завершения установки нужно «привязать» этот toolchain как версию по умолчанию:

rustup default stable

Теперь проверяем результат:

rustup show

Вы должны увидеть активный toolchain. Также можно проверить компилятор:

rustc --version

Если вы видите что-то вроде rustc 1.78.0 (9b00956e5 2024-04-29) — поздравляю, проблема решена!

Решение №2: Использование nightly toolchain (для экспериментаторов)

Иногда вам может понадобиться ночная версия компилятора, например, для работы с новыми, ещё не стабилизированными фичами. Процесс аналогичен:

rustup install nightly
rustup default nightly

После этого rustc --version покажет что-то вроде rustc 1.80.0-nightly (c2e0e5c9e 2024-06-15).

Вы также можете переключаться между версиями «на лету» для конкретного проекта с помощью файла rust-toolchain.toml в корне проекта. Это удобно, когда вы работаете над несколькими проектами с разными требованиями.

Решение №3: Если ничего не помогает — чистая переустановка

Бывают ситуации, когда rustup «сломался» из-за битых файлов или проблем с правами доступа. В этом случае проще всего удалить всё и начать заново.

Удалите rustup и все установленные toolchain:

rustup self uninstall

Затем удалите вручную остатки (на всякий случай):

rm -rf ~/.rustup ~/.cargo

Теперь установите rustup заново. На Linux и macOS:

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

На Windows — скачайте установщик с rustup.rs.

После установки следуйте инструкциям в терминале. Обычно установщик сам предлагает установить stable toolchain и сделать его версией по умолчанию. Если нет — повторите шаги из Решения №1.

Пример: создаём первый проект на Rust

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

rustup default stable
rustc --version

Теперь создадим новый проект через Cargo:

cargo new hello_rust
cd hello_rust

Откройте файл src/main.rs и замените его содержимое на:

fn main() {
    println!("Привет, Rust! Toolchain работает как часы.");
}

Соберите и запустите проект:

cargo run

Вы должны увидеть в консоли:

   Compiling hello_rust v0.1.0 (/home/user/hello_rust)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.23s
     Running `target/debug/hello_rust`
Привет, Rust! Toolchain работает как часы.

Всё работает! Если бы toolchain не был настроен, вы бы получили ту самую ошибку «no default toolchain configured» ещё на этапе cargo new.

Блоги

Рекомендаций по книгам