web-dev-qa-db-fra.com

erreur: la chaîne d'outils 'stable-x86_64-Apple-darwin' n'a pas le binaire `rustfmt`

J'ai exécuté rustup update pour mettre à jour ma chaîne d'outils et j'ai vu deux avertissements:

warning: tool `rustfmt` is already installed, remove it from `/Users/<username>/.cargo/bin`, then run `rustup update` to have rustup manage this tool.
warning: tool `cargo-fmt` is already installed, remove it from `/Users/<username>/.cargo/bin`, then run `rustup update` to have rustup manage this tool.

J'ai suivi les instructions dans les messages d'avertissement, puis j'ai essayé à nouveau d'exécuter rustfmt. J'ai eu l'erreur

error: toolchain 'stable-x86_64-Apple-darwin' does not have the binary rustfmt`

Qu'est-ce qui ne va pas et comment puis-je résoudre ce problème?

21
dvnguyen

Avec les étapes que vous avez effectuées, Rustup est déjà configuré pour gérer vos fichiers binaires rustfmt. Cela signifie qu'ils peuvent être automatiquement mis à jour avec vos chaînes d'outils au lieu de s'appuyer sur cargo install. Ce qui manque ici, c'est le composant rustfmt que Rustup a tenté d'exécuter.

Pour laisser Rustup gérer rustfmt, procédez comme suit:

  1. Une fois que vous avez mis à jour Rustup vers la dernière version, vous pouvez recevoir le message warning: tool rustfmt is already installed. Supprimez les fichiers binaires du dossier binaire de Cargo, comme suggéré. cargo uninstall rustfmt (ou rustfmt-nightly si vous l'avez installé) fonctionne bien.
  2. Exécutez rustup update pour lui permettre de renseigner les fichiers binaires supprimés avec ses propres variables rustfmt et cargo-fmt gérées.
  3. Ceci fait, vous devez toujours installer le composant rustfmt-preview pour chaque chaîne d’outils avec laquelle vous allez travailler. Toutes les chaînes d'outils ne fournissent pas ce composant pour le moment, mais les dernières chaînes stable en sont sûres. Par conséquent, assurez-vous que cette chaîne d’outils est installée, puis:
$ rustup component add rustfmt-preview

Ceci fait, appeler rustfmt à l'aide de cette chaîne d'outils devrait fonctionner:

$ rustup run stable rustfmt --version

rustfmt 0.99.4-stable (1c40881 2018-08-27)

L'état actuel d'utilisation de rustfmt géré par Rustup peut être un peu déroutant. Il existe quelques problèmes et RP pertinents sur le sujet ( # 1305 et # 1310 ), et les suivre fournit les indications nécessaires pour que cela fonctionne correctement.

20
E_net4

L'erreur vous indique que le rustfmt-preview n'est pas installé sur le *-Apple-darwin actuel.

ce que vous devez faire c'est:

rustup component add rustfmt-preview --toolchain stable-x86_64-Apple-darwin

après tu seras prêt à partir :)

18
cooljl86
$ rustup run stable rustfmt --version
error: `toolchain 'stable-x86_64-pc-windows-msvc' does not have th`e binary `rustfmt.exe`

$ rustup component remove rustfmt-preview --toolchain=stable-x86_64-pc-windows-msvc
info: removing component 'rustfmt-preview'
warning: during uninstall component rustfmt-preview-x86_64-pc-windows-msvc was not found

$ rustup component add rustfmt-preview --toolchain=stable-x86_64-pc-windows-msvc
info: downloading component 'rustfmt-preview'
info: installing component 'rustfmt-preview'

$ rustup run stable rustfmt --version
rustfmt 0.99.1-stable (da17b689 2018-08-04)

https://users.Rust-lang.org/t/problem-with-rustfmt-on-stable/15165/7

1
rofrol