Avatar ·

Как обновить Cargo до последней стабильной версии? Команда для обновления менеджера пакетов Rust

Приветствую сообщество! Я только начал изучать Rust и столкнулся с непонятной ситуацией. Установил Rust через официальный установщик rustup, всё работает, но я заметил, что у меня версия Cargo 1.68.0, а на официальном сайте уже вышла 1.72.0. Я попытался обновить Cargo как обычный пакет, но ничего не вышло. Вот что я пробовал: ```rust // Я думал, что раз Cargo — это пакет, его можно обновить как-то так: // cargo update cargo // Но это не сработало // Потом попробовал через сам cargo: cargo install cargo // Выдало ошибку: "error: specified package has no binaries" // Думал, может через систему: // sudo apt update && sudo apt upgrade cargo // Но в репозиториях Ubuntu старая версия // Ещё пробовал: rustup update cargo // Но rustup не знает такой команды ``` Подскажите, пожалуйста, есть ли правильная команда для обновления Cargo до последнего официального релиза? Или может быть Cargo обновляется вместе с компилятором Rust? Я совсем запутался в этих инструментах. Заранее спасибо за помощь! P.S. Использую Ubuntu 22.04, если это важно. <<>>

Краткий ответ: Cargo обновляется вместе с Rust через rustup

Да, вы всё верно подметили — Cargo не обновляется отдельно от Rust. Это часть единого инструментария (toolchain). Поэтому правильная команда для обновления всего, включая Cargo, будет:

rustup update

Эта команда обновит стабильный канал Rust до последней версии, а вместе с ним — Cargo, rustc (компилятор) и другие утилиты (rustdoc, clippy, rustfmt и т.д.).

Почему так, а не иначе?

Cargo — это не самостоятельный пакет, а часть официального дистрибутива Rust, который управляется через rustup. Версии Cargo и Rust привязаны друг к другу, потому что:

  • Cargo использует внутренние API компилятора (например, для разрешения зависимостей и сборки кода)
  • Новые возможности Cargo часто требуют поддержки со стороны компилятора
  • Стабильность всего инструментария тестируется как единое целое

Проверка текущей версии

Чтобы убедиться, что обновление прошло успешно:

cargo --version
# Пример вывода:
# cargo 1.72.0 (103a7ff2e 2023-08-15)

rustc --version
# rustc 1.72.0 (5680fa18f 2023-08-16)

Что если нужно обновить только Cargo без Rust?

Технически это возможно, но крайне не рекомендуется. Вы можете установить Cargo из исходников или через менеджер пакетов вашей ОС, но это может привести к несовместимости версий. Лучший способ — всегда обновлять всё вместе через rustup update.

Дополнительные полезные команды rustup

  • rustup update stable — обновить только стабильный канал
  • rustup update nightly — обновить ночной канал (если он установлен)
  • rustup check — проверить, есть ли обновления (без установки)
  • rustup self update — обновить сам rustup (менеджер версий)

Если rustup не установлен

Возможно, вы устанавливали Rust через системный пакетный менеджер (apt, pacman и т.д.). В таком случае:

# Для Ubuntu/Debian
sudo apt update && sudo apt upgrade rustc cargo

# Но лучше перейти на rustup — он даёт больше контроля
# Установка rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

После установки rustup вы сможете легко переключаться между каналами (stable, beta, nightly) и всегда иметь свежие версии.

Итог: если вы используете rustup (рекомендованный способ), просто выполняйте rustup update время от времени — это обновит и Rust, и Cargo до последних стабильных версий.

<<>>

Альтернативный подход: использование пакетных менеджеров ОС

Если вы по каким-то причинам не хотите использовать rustup (например, на сервере с ограниченными правами), можно обновлять Cargo через системный пакетный менеджер. Но учтите: версии в репозиториях часто отстают от официальных.

Для разных ОС:

  • Ubuntu/Debian: sudo apt update && sudo apt upgrade cargo
  • Fedora/RHEL: sudo dnf upgrade cargo
  • Arch Linux: sudo pacman -Syu cargo
  • macOS (Homebrew): brew upgrade rust

Важное предостережение

Этот способ может привести к несоответствию версий Cargo и компилятора. Например, вы обновили Cargo, но rustc остался старым — некоторые функции могут не работать. Поэтому rustup остаётся рекомендованным инструментом.

Если вообще ничего не помогает

Можно скачать бинарные сборки с официального сайта и вручную заменить файлы Cargo. Но это сложный и небезопасный путь — лучше переустановить Rust через rustup.