Je voudrais mettre à jour un package que j'ai utilisé cargo install
pour installer globalement des packages, tels que rustfmt ou racer. Je ne trouve pas de moyen de mettre à jour un package installé sans le supprimer au préalable (via cargo uninstall
), puis exécutez à nouveau la commande d'installation. Existe-t-il une commande de mise à jour?
Depuis Cargo 1.36.0, vous pouvez désormais utiliser les commandes suivantes sur une chaîne d'outils nocturne au lieu d'utiliser le cargo-update
crate pour mettre à jour les caisses à leur dernière version:
rustup install nightly
cargo +nightly install -Z install-upgrade <crate>
Cela venait de la demande de tirage # 6798 (Ajouter une installation-mise à niveau) .
Au lieu d'échouer lorsque cargo install
détecte qu'un paquet est déjà installé, il se mettra à niveau si les versions ne correspondent pas, ou ne fera rien (exit 0) s'il est considéré comme "à jour".
La commande suivante ( désinstallera, téléchargera et compilera toujours la dernière version de la caisse, même si aucune version plus récente n'est disponible. Dans des circonstances normales, le install-upgrade
la fonctionnalité devrait être préférée car elle permet d'économiser du temps et de la bande passante s'il n'y a pas de nouvelle version de la caisse.
cargo install --force <crate>
De plus amples informations peuvent être trouvées dans le problème GitHub Rust-lang/cargo # 6797 et dans le chapitre de la documentation officielle nstable Features -> install-upgrade .
Il n'y a pas une telle commande dans Vanilla cargo
(enfin, il y a cargo install
mais c'est pour les dépendances), mais puisque cargo
supporte sous-commandes tierces il y a une réponse: le cargo-update
caisse .
Installez comme d'habitude avec cargo install cargo-update
, puis utilisez cargo install-update -a
pour mettre à jour tous les packages installés, pour plus d'informations sur l'utilisation et des exemples, voir cargo install-update
page de manuel .
Avertissement: suis l'auteur
Une solution que j'ai trouvée consiste à ajouter le --force
drapeau à la commande d'installation. Par exemple cargo install --force clippy
. Cela réinstalle efficacement la dernière version.
Nan. Vous pouvez en discuter dans this issue.