sotrh
sotrh

Reputation: 406

How can I update the stable toolchain when I get the error "some components unavailable for target i386-apple-ios/armv7s-apple-ios"?

I try to run

rustup update stable

and I get the following output.

info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2020-05-07, rust version 1.43.1 (8d69840ab 2020-05-04)
error: some components unavailable for download for channel stable: 'rust-std' for target 'i386-apple-ios', 'rust-std' for target 'armv7s-apple-ios', 'rust-std' for target 'armv7-apple-ios'
If you require these components, please install and use the latest successful build version,
which you can find at <https://rust-lang.github.io/rustup-components-history>.

After determining the correct date, install it with a command such as:

    rustup toolchain install nightly-2018-12-27

Then you can use the toolchain with commands such as:

    cargo +nightly-2018-12-27 build

While I can install the latest stable toolchain using

rustup toolchain install stable-2020-05-07

That creates a separate toolchain.

rustup toolchain list
stable-2020-05-07-x86_64-unknown-linux-gnu (default)
stable-x86_64-unknown-linux-gnu
nightly-2020-05-07-x86_64-unknown-linux-gnu

I can use this new toolchain as the default (as I am now), but it's going to be a pain moving forward as I can't just use rustup update.

Running rustup toolchain install stable yields the same error.

How can I get the stable Rust toolchain to update via rustup update run?

Upvotes: 3

Views: 4428

Answers (1)

Shepmaster
Shepmaster

Reputation: 430663

The Rust team regrets to announce that Rust 1.41.0 (to be released on January 30th, 2020) will be the last release with the current level of support for 32-bit Apple targets. Starting from Rust 1.42.0, those targets will be demoted to Tier 3.

Reducing support for 32-bit Apple targets

You will need to remove those components using rustup component remove. I can't test the exact invocation, but something like:

rustup component remove --toolchain stable --target i386-apple-ios rust-std
rustup component remove --toolchain stable --target armv7s-apple-ios rust-std
rustup component remove --toolchain stable --target armv7-apple-ios rust-std

Once removed, you can update your compiler.

Upvotes: 11

Related Questions