Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rustup component remove component-NOT-TOOLCHAIN-TARGET errors #3166

Closed
kadiwa4 opened this issue Jan 16, 2023 · 9 comments · Fixed by #3601
Closed

rustup component remove component-NOT-TOOLCHAIN-TARGET errors #3166

kadiwa4 opened this issue Jan 16, 2023 · 9 comments · Fixed by #3601
Assignees
Milestone

Comments

@kadiwa4
Copy link

kadiwa4 commented Jan 16, 2023

Problem you are trying to solve

I ran rustup component list --installed and saw that I had the component rust-std-wasm32-unknown-unknown installed, which I wanted to delete. I thought that I could simply copy-paste the component name into the remove command like this:

rustup component remove rust-std-wasm32-unknown-unknown

However, this doesn't work with remove. I got the following unhelpful error message:

error: toolchain 'nightly-x86_64-apple-darwin' does not contain component 'rust-std-wasm32-unknown-unknown' for target 'x86_64-apple-darwin'
note: not all platforms have the standard library pre-compiled: https://doc.rust-lang.org/nightly/rustc/platform-support.html
help: consider using `cargo build -Z build-std` instead

(Also the last line doesn't make sense because I'm trying to uninstall something here, not install it.)

Solution you'd like

The command that actually works is:

rustup component remove --target wasm32-unknown-unknown rust-std

I would like it if rustup told me that. You could assume that the component names which are output by list can also be passed back into rustup as a component name.

Notes

Version 1.25.1

@rbtcollins
Copy link
Contributor

hmm so I totally agree with the motivation here; a path to fixing it would be to parse the target from the output, and infer target when not supplied.

@rbtcollins rbtcollins changed the title rustup components should hint towards using --target rustup component remove component-NOT-NATIVE-TARGET errors Feb 22, 2023
@rbtcollins rbtcollins changed the title rustup component remove component-NOT-NATIVE-TARGET errors rustup component remove component-NOT-TOOLCHAIN-TARGET errors Feb 22, 2023
@SummerGram
Copy link

SummerGram commented Mar 1, 2023

Is there a rule to infer the target from the list?

@rustbot claim

@SummerGram
Copy link

@rbtcollins ,

In the component remove function, it is supposed to handle rust-docs-x86_64-apple-darwin this case with function called Component::new_with_target. But in that function, it fails to identify the target from rust-docs-x86_64-apple-darwin and rust-std-wasm32-unknown-unknown.

@SummerGram
Copy link

home/bin/rustup component remove clippy rustfmt-x86_64-apple-darwin rust-docs-x86_64-apple-darwin rust-std-wasm32-unknown-unknown

Component { pkg: "clippy", target: Some(TargetTriple("x86_64-apple-darwin")), is_extension: true }
"rustfmt" "x86_64-apple-darwin"
"rustfmt" "x86_64-apple-darwin" PartialTargetTriple { arch: Some("x86_64"), os: Some("apple-darwin"), env: None }
"rustfmt-x86_64" "apple-darwin"
"rustfmt-x86_64" "apple-darwin" PartialTargetTriple { arch: None, os: Some("apple-darwin"), env: None }
"rustfmt-x86_64-apple" "darwin"
Component { pkg: "rustfmt-x86_64-apple-darwin", target: Some(TargetTriple("x86_64-apple-darwin")), is_extension: true }
"rust" "docs-x86_64-apple-darwin"
"rust-docs" "x86_64-apple-darwin"
"rust-docs" "x86_64-apple-darwin" PartialTargetTriple { arch: Some("x86_64"), os: Some("apple-darwin"), env: None }
"rust-docs-x86_64" "apple-darwin"
"rust-docs-x86_64" "apple-darwin" PartialTargetTriple { arch: None, os: Some("apple-darwin"), env: None }
"rust-docs-x86_64-apple" "darwin"
Component { pkg: "rust-docs-x86_64-apple-darwin", target: Some(TargetTriple("x86_64-apple-darwin")), is_extension: true }
"rust" "std-wasm32-unknown-unknown"
"rust-std" "wasm32-unknown-unknown"
"rust-std-wasm32" "unknown-unknown"
"rust-std-wasm32-unknown" "unknown"
Component { pkg: "rust-std-wasm32-unknown-unknown", target: Some(TargetTriple("x86_64-apple-darwin")), is_extension: true }

@cyqsimon
Copy link

cyqsimon commented Apr 8, 2024

Ran into the same thing; was very confused.

@rami3l
Copy link
Member

rami3l commented Apr 28, 2024

@kadiwa4 @cyqsimon A new beta release is available, would you mind trying it out?

@cyqsimon
Copy link

@kadiwa4 @cyqsimon A new beta release is available, would you mind trying it out?

All works as expected now as far as I can tell. Thank you for the great work!

@yangby-cryptape
Copy link

I saw the fix of this issue was added into milestone 1.27.1.
But I still met this bug with rustup 1.27.1.

Execute:

rustup component remove llvm-tools-x86_64-unknown-linux-gnu

Output:

error: toolchain 'stable-x86_64-unknown-linux-gnu' does not contain component 'llvm-tools-x86_64-unknown-linux-gnu' for target 'x86_64-unknown-linux-gnu'

But the following command works well:

rustup component remove --target x86_64-unknown-linux-gnu llvm-tools

@rami3l
Copy link
Member

rami3l commented Aug 14, 2024

I saw the fix of this issue was added into milestone 1.27.1. But I still met this bug with rustup 1.27.1.

Execute:

rustup component remove llvm-tools-x86_64-unknown-linux-gnu

Output:

error: toolchain 'stable-x86_64-unknown-linux-gnu' does not contain component 'llvm-tools-x86_64-unknown-linux-gnu' for target 'x86_64-unknown-linux-gnu'

But the following command works well:

rustup component remove --target x86_64-unknown-linux-gnu llvm-tools

@yangby-cryptape Your case is a bit particular since it's related to a renamed component (#3578). For the moment being, llvm-tools-preview-x86_64-unknown-linux-gnu seems to work.

I'll try to investigate further.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment