我已经运行rustup update
来更新我的工具链并看到两个警告:
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.
我按照警告消息中的说明操作,然后再次尝试运行rustfmt
。我收到了错误
error: toolchain 'stable-x86_64-apple-darwin' does not have the binary rustfmt`
出了什么问题,我该如何解决?
答案 0 :(得分:21)
根据您执行的步骤,Rustup已配置为管理您的rustfmt
二进制文件。这意味着它们可以与您的工具链一起自动更新,而不是依赖cargo install
。这里缺少的是Rustup试图执行的实际rustfmt
组件。
为了让Rustup管理rustfmt
,请参阅以下步骤:
warning: tool rustfmt is already installed
。按照建议从Cargo的二进制文件夹中删除二进制文件。 cargo uninstall rustfmt
(如果您安装了rustfmt-nightly
,则效果良好。rustup update
,让它用自己的托管rustfmt
和cargo-fmt
填写已删除的二进制文件。rustfmt-preview
组件。并非所有工具链都会暂时提供此组件,但最新的stable
工具链肯定会拥有它。因此,请确保已安装此工具链,然后:$ rustup component add rustfmt-preview
完成后,使用该工具链调用rustfmt
应该有效:
$ rustup run stable rustfmt --version
rustfmt 0.99.4-stable (1c40881 2018-08-27)
使用Rustup管理的rustfmt
的当前状态可能有点令人困惑。关于这个主题有一些相关的问题和PR(#1305和#1310),并且它们之后提供了使这项工作正常运行的必要线索。
答案 1 :(得分:18)
错误告诉您,实际rustfmt-preview
上没有安装*-apple-darwin
。
您需要做的是:
rustup component add rustfmt-preview --toolchain stable-x86_64-apple-darwin
在你好好去之后:)
答案 2 :(得分:1)
$ 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