Can't update toolchain

I think I'm going crazy trying to update my rust installation. I'm stuck at 1.83.0 and don't see a path forward. I tried:

  • rustup toolchain default stable
  • rustup override set stable
  • complete uninstall and reinstall using official install scripts
  • creating blank projects with overrides
  • uninstalling 1.83.0
  • manually deleting all cargo/rustup files
Here is a log of my reinstall
derdilla@dilladesk /tmp/temptest (git)-[main] % l
drwxr-xr-x  - derdilla 12 Jul 10:07 .git
.rw-r--r--  8 derdilla 12 Jul 10:07 .gitignore
.rw-r--r-- 79 derdilla 12 Jul 10:07 Cargo.toml
drwxr-xr-x  - derdilla 12 Jul 10:07 src
derdilla@dilladesk /tmp/temptest (git)-[main] % rustc --version
rustc 1.83.0 (90b35a623 2024-11-26)
derdilla@dilladesk /tmp/temptest (git)-[main] % rustup toolchain list
stable-x86_64-unknown-linux-gnu (default)
beta-x86_64-unknown-linux-gnu
1.83.0-x86_64-unknown-linux-gnu (active)
derdilla@dilladesk /tmp/temptest (git)-[main] % rustup update
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: syncing channel updates for 'beta-x86_64-unknown-linux-gnu'
info: checking for self-update

  stable-x86_64-unknown-linux-gnu unchanged - rustc 1.88.0 (6b00bc388 2025-06-23)
    beta-x86_64-unknown-linux-gnu unchanged - rustc 1.89.0-beta.4 (b1237106c 2025-07-11)

info: cleaning up downloads & tmp directories
derdilla@dilladesk /tmp/temptest (git)-[main] % rustup default stable
info: using existing install for 'stable-x86_64-unknown-linux-gnu'
info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'

  stable-x86_64-unknown-linux-gnu unchanged - rustc 1.88.0 (6b00bc388 2025-06-23)

info: note that the toolchain '1.83.0-x86_64-unknown-linux-gnu' is currently in use (overridden by environment variable RUSTUP_TOOLCHAIN)
derdilla@dilladesk /tmp/temptest (git)-[main] % rustc --version
rustc 1.83.0 (90b35a623 2024-11-26)
derdilla@dilladesk /tmp/temptest (git)-[main] % rustup overrice unset
error: unrecognized subcommand 'unset'

  tip: a similar subcommand exists: 'uninstall'

Usage: rustup[EXE] [OPTIONS] [+toolchain] [COMMAND]

For more information, try '--help'.
1 derdilla@dilladesk /tmp/temptest (git)-[main] % rustup override unset
info: no override toolchain for '/tmp/temptest'
info: you may use `--path <path>` option to remove override toolchain for a specific path
derdilla@dilladesk /tmp/temptest (git)-[main] % rustc --version
rustc 1.83.0 (90b35a623 2024-11-26)
derdilla@dilladesk /tmp/temptest (git)-[main] % rustup override set stable
info: override toolchain for '/tmp/temptest' set to 'stable-x86_64-unknown-linux-gnu'
derdilla@dilladesk /tmp/temptest (git)-[main] % rustc --version
rustc 1.83.0 (90b35a623 2024-11-26)
derdilla@dilladesk /tmp/temptest (git)-[main] % which rustc
/home/derdilla/.cargo/bin/rustc
derdilla@dilladesk /tmp/temptest (git)-[main] % which rustup
/home/derdilla/.cargo/bin/rustup
derdilla@dilladesk /tmp/temptest (git)-[main] % rustup self uninstall


Thanks for hacking in Rust!

This will uninstall all Rust toolchains and data, and remove
$HOME/.cargo/bin from your PATH environment variable.

Continue? (y/N) y

info: removing rustup home
info: removing cargo home
info: removing rustup binaries
info: rustup is uninstalled
rustup self uninstall  0.19s user 6.21s system 73% cpu 8.715 total
derdilla@dilladesk /tmp/temptest (git)-[main] % rustc --version
zsh: command not found: rustc
127 derdilla@dilladesk /tmp/temptest (git)-[main] % curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installer

Welcome to Rust!

This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.

Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:

  /home/derdilla/.rustup

This can be modified with the RUSTUP_HOME environment variable.

The Cargo home directory is located at:

  /home/derdilla/.cargo

This can be modified with the CARGO_HOME environment variable.

The cargo, rustc, rustup and other commands will be added to
Cargo's bin directory, located at:

  /home/derdilla/.cargo/bin

This path will then be added to your PATH environment variable by
modifying the profile files located at:

  /home/derdilla/.profile
  /home/derdilla/.bashrc
  /home/derdilla/.zshenv

You can uninstall at any time with rustup self uninstall and
these changes will be reverted.

Current installation options:


   default host triple: x86_64-unknown-linux-gnu
     default toolchain: stable (default)
               profile: default
  modify PATH variable: yes

1) Proceed with standard installation (default - just press enter)
2) Customize installation
3) Cancel installation
>

info: profile set to 'default'
info: default host triple is x86_64-unknown-linux-gnu
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2025-06-26, rust version 1.88.0 (6b00bc388 2025-06-23)
info: downloading component 'cargo'
  9.5 MiB /   9.5 MiB (100 %)   5.8 MiB/s in  1s
info: downloading component 'clippy'
info: downloading component 'rust-docs'
 20.1 MiB /  20.1 MiB (100 %)   5.9 MiB/s in  3s
info: downloading component 'rust-std'
 29.5 MiB /  29.5 MiB (100 %)   5.9 MiB/s in  5s
info: downloading component 'rustc'
 76.3 MiB /  76.3 MiB (100 %)   5.9 MiB/s in 13s
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
 20.1 MiB /  20.1 MiB (100 %)  14.4 MiB/s in  1s
info: installing component 'rust-std'
 29.5 MiB /  29.5 MiB (100 %)  17.0 MiB/s in  1s
info: installing component 'rustc'
 76.3 MiB /  76.3 MiB (100 %)  18.3 MiB/s in  4s
info: installing component 'rustfmt'
info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'

  stable-x86_64-unknown-linux-gnu installed - rustc 1.88.0 (6b00bc388 2025-06-23)


Rust is installed now. Great!

To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).

To configure your current shell, you need to source
the corresponding env file under $HOME/.cargo.

This is usually done by running one of the following (note the leading DOT):
. "$HOME/.cargo/env"            # For sh/bash/zsh/ash/dash/pdksh
source "$HOME/.cargo/env.fish"  # For fish
source $"($nu.home-path)/.cargo/env.nu"  # For nushell
derdilla@dilladesk /tmp/temptest (git)-[main] % . "$HOME/.cargo/env"
derdilla@dilladesk /tmp/temptest (git)-[main] % rustc --version
info: syncing channel updates for '1.83.0-x86_64-unknown-linux-gnu'
info: latest update on 2024-11-28, rust version 1.83.0 (90b35a623 2024-11-26)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
rustc 1.83.0 (90b35a623 2024-11-26)
rustc --version  7.77s user 2.78s system 34% cpu 30.694 total
derdilla@dilladesk /tmp/temptest (git)-[main] % cd ..
derdilla@dilladesk /tmp % cargo new blanktst
    Creating binary (application) `blanktst` package
note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
derdilla@dilladesk /tmp % cd blanktst
derdilla@dilladesk /tmp/blanktst (git)-[main] % rustc --version
rustc 1.83.0 (90b35a623 2024-11-26)

It looks like you have the RUSTUP_TOOLCHAIN environment variable set, which is overriding your toolchain version. Try clearing that environment variable, and figure out where it's being set to 1.83.0 to stop it being reset to that.

1 Like

That was it, thanks! Sorry for not reading that myself.

The environment variable was set by an old, overly eager, development environment.

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.