Introduction : pourquoi votre Cargo peut-il être obsolète ?
Avez-vous déjà lancé cargo build et obtenu une étrange erreur en retour ? Ou peut-être la nouvelle fonctionnalité Rust que vous attendiez tant ne fonctionne tout simplement pas ? Situation familière : vous ouvrez Stack Overflow, cherchez une solution, et on vous conseille de mettre à jour Cargo. Mais comment faire ? Car dans Rust, il n'y a pas de commande cargo update --self (et, honnêtement, ce serait trop simple).
Dans cet article, nous allons décortiquer une question réelle avec des milliers de vues : "Is there a command to update Cargo to the latest official release?". Nous ne donnerons pas simplement une commande sèche — nous suivrons le chemin du problème à sa solution, avec des exemples de code, des astuces et des erreurs typiques. Si vous écrivez en Rust depuis au moins une semaine, cette information vous fera gagner des heures de recherche.
C'est parti ! 🚀
Qu'est-ce que Cargo et pourquoi faut-il le mettre à jour ?
Cargo n'est pas qu'un simple gestionnaire de paquets. C'est le cœur de l'écosystème Rust. Il est responsable de la compilation, des tests, de la publication des crates et, bien sûr, de la gestion des dépendances. Chaque nouvelle version de Cargo apporte des améliorations : compilation plus rapide, nouvelles commandes, correctifs de sécurité.
Par exemple, dans la version Cargo 1.70, le support intégré de cargo info est apparu, et dans la 1.75, un affichage amélioré des erreurs. Si vous êtes bloqué sur une ancienne version, vous ne bénéficiez tout simplement pas de ces fonctionnalités. De plus, certains crates commencent à exiger une version récente de Cargo, et votre projet ne se compile plus.
Mais il y a un détail : Cargo ne se met pas à jour tout seul. Il est lié au compilateur rustc, lui-même lié à l'outil Rustup. Retenez cette chaîne : Rustup → rustc → Cargo. En mettant à jour l'un, vous mettez à jour l'ensemble.
Pourquoi n'existe-t-il pas de commande cargo update --self ?
C'est une question fréquente sur Stack Overflow. En réalité, Cargo n'est pas un programme indépendant, mais une partie du paquet Rust. Lorsque vous installez Rust via Rustup, vous obtenez rustc, cargo et d'autres utilitaires de la même version. C'est pourquoi la commande cargo update existe, mais elle met à jour les dépendances de votre projet, pas Cargo lui-même.
Voici une erreur typique de débutant :
# Cela NE mettra PAS à jour Cargocargo update# Cela mettra à jour uniquement les dépendances dans Cargo.lockPour mettre à jour Cargo lui-même, une autre approche est nécessaire. Et elle est simple — utilisez Rustup.
Méthode principale : mise à jour via Rustup
Rustup est l'installateur officiel et le gestionnaire de versions de Rust. Si vous avez installé Rust via rustup.rs, vous avez déjà cet outil. Sinon, il est temps de l'installer :
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shAprès l'installation, vérifiez la version actuelle :
rustc --versioncargo --versionMaintenant, pour tout mettre à jour vers la dernière version stable, exécutez une seule commande :
rustup updateCette commande mettra à jour rustc, cargo et tous les outils associés vers la dernière version stable. Le résultat ressemblera à ceci :
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'info: latest update on 2024-01-25, rust version 1.75.0 (8e3999b4e 2024-01-25)info: downloading component 'cargo'info: installing component 'cargo'Terminé ! Votre Cargo est désormais à la dernière version.
Vérification après la mise à jour
Il est toujours utile de vérifier que la mise à jour s'est bien déroulée. Écrivez un petit programme Rust et compilez-le :
// main.rsfn main() { println!("Cargo version: {}", env!("CARGO_PKG_VERSION")); // Vérifions que la nouvelle fonctionnalité fonctionne #[cfg(version_ge(1, 75))] println!("Vous utilisez Cargo 1.75+ !");}Compilez et exécutez :
cargo runSi tout fonctionne, vous êtes opérationnel. Sinon, ch