Рабочая группа rustup рада сообщить о выпуске новой версии, 1.20.0. Rustup — рекомендуемая утилита для установки Rust, языка программирования, позволяющего каждому создавать надёжное и эффективное программное обеспечение.
Если у вас уже установлен rustup
, то для обновления до версии 1.20.0 вам достаточно выполнить следующую команду:
rustup self update
Также rustup
автоматически обновляется после обычного обновления набора инструментов:
rustup update
Если у вас ещё не установлен rustup
, вы можете установить его с соответствующей страницы нашего веб-сайта.
Изюминками данного выпуска являются поддержка профилей, возможность получить последний доступный nightly
выпуск, имеющий все необходимые вам компоненты, и улучшения в команде rustup doc
. Вы также можете посмотреть список изменений, чтобы узнать обо всех изменениях, включённых в этот выпуск.
Предыдущие версии rustup
устанавливали по умолчанию несколько компонентов вместе с каждым набором инструментов — это были компилятор (rustc
), менеджер пакетов (cargo
), стандартная библиотека (rust-std
) и локальная документация (rust-docs
). Не смотря на то, что данный подход удобен для разработки на локальном ПК, некоторые компоненты (как rust-docs
) замедляли установку. Например, документация обычно не нужна на сервере сборок, или замедляет инсталляцию на Windows из-за большого количества файлов.
Для решения данной проблемы, в rustup
1.20.0 ввели концепцию профилей ("profiles"). Они группируют компоненты, которые можно выбрать для загрузки во время установки нового набора инструментов. Доступными профилями в данный момент являются minimal
, default
и complete
:
rustc
, rust-std
и cargo
). Рекомендуется использовать для Windows, если локальная документация не используется, а также на CI серверах сборки.rustc
, rust-std
, cargo
и локальную документацию rust-docs
), плюс rustfmt
и clippy
. Данный профиль будет использован rustup
по умолчанию, и является рекомендованным для общего использования.rustup
, включая miri
и инструменты интеграции с IDE (rls
и rust-analysis
).Для изменения профиля rustup можно использовать команду rustup set profile
. Например, выбрать минимальный профиль для использования можно так:
rustup set profile minimal
Можно также выбрать профиль при первой установке rustup
, либо интерактивно при выборе опции "Customize installation", либо программно передав флаг --profile=<name>
. Профили повлияют только на новые устанавливаемые наборы инструментов, позже можно установить отдельные компоненты с помощью команд: rustup component add
.
nightly
версииВ то время как большинство компонентов гарантируют работу в стабильных выпусках на tier 1 платформах, эти же гарантии не применяются к ночным выпускам. Зачастую, утилиты, вроде rustfmt
, clippy
или rls
пропадают в последней nightly
сборке. Если вы зависите от этих утилит, то такое поведение может сделать трудным обновление nightly
, так как rustup
предотвращает обновление, если ранее установленные компоненты не доступны.
Начиная с rustup 1.20.0, если компонент, который вы ранее установили, не доступен в последней nightly
сборке, rustup update
пробежится назад во времени чтобы найти последний выпуск, имеющий все необходимые компоненты. Если же такого выпуска нет, то надо либо ждать, либо удалить некоторые из компонентов.
Вместе с этими изменениями, в rustup
1.20.0 для команды rustup toolchain install
появились флаги --component
/-c
и --target
/-t
, позволяющие вам добавить компоненты и целевые платформы во время установки набора инструментов. Эти флаги также ищут ближайшую подходящую nightly
сборку, если текущая не содержит запрашиваемых компонентов.
rustup doc
Команда rustup doc
открывает локально установленную документацию в вашем браузере, не требуя подключения к интернету. rustup
1.20.0 расширяет способности этой команды и позволяет вам открыть документацию API по конкретному элементу. Например, для того, чтобы посмотреть документацию по Iterator
вы можете использовать следующую команду:
rustup doc std::iter::Iterator
Это работает для типажей, структур и перечислений, макросов и модулей и может работать для пакетов std
, alloc
и core
. Однако обратите внимание, что данная функциональность работает только при наличии в вашем наборе инструментов компонента rust-docs
. Со временем мы улучшим UX команды и если у вас есть идеи, то дайте нам знать!
Спасибо всем участникам, работавшим над rustup
!
С любыми вопросами по языку Rust вам смогут помочь в русскоязычном Телеграм-чате или же в аналогичном чате для новичковых вопросов.
Данную статью совместными усилиями перевели andreevlex, funkill и blandger.
К сожалению, не доступен сервер mySQL