rust-lang / rust-lang/rustup

failed to set permissions on `rustup self update`

Open
#4,648 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug incomplete
Dominant language
Rust
Stars
7k
Forks
1.1k
Avg merge
22h 40m
Merged PRs (30d)
46

Description

Verification
Problem

I wanted to try out the new dev version, but the older version failed self-update:

$ RUSTUP_UPDATE_ROOT=https://dev-static.rust-lang.org/rustup rustup update
info: syncing channel updates for 'stable-aarch64-apple-darwin'
info: syncing channel updates for 'nightly-aarch64-apple-darwin'
info: checking for self-update
info: downloading self-update
error: failed to set permissions for '/Users/me/.cargo/bin/rustup-init'

Caused by:
    No such file or directory (os error 2)

$ RUSTUP_UPDATE_ROOT=https://dev-static.rust-lang.org/rustup rustup --version
rustup 1.28.2 (77863418e 2025-04-13)

I have ~/.cargo/bin/rustup, but not rustup-init.

Steps

RUSTUP_UPDATE_ROOT=https://dev-static.rust-lang.org/rustup rustup update

Rustup version
rustup 1.28.2 (77863418e 2025-04-13)
Installed toolchains
Default host: aarch64-apple-darwin
rustup home:  /Users/me/.rustup

installed toolchains
--------------------
stable-aarch64-apple-darwin
nightly-aarch64-apple-darwin (active, default)
nightly-2023-06-14-aarch64-apple-darwin
nightly-2024-06-24-aarch64-apple-darwin
nightly-2025-02-06-aarch64-apple-darwin
1.68.0-aarch64-apple-darwin
1.70.0-aarch64-apple-darwin
1.71.0-aarch64-apple-darwin
1.73.0-aarch64-apple-darwin
1.75.0-aarch64-apple-darwin
1.76.0-aarch64-apple-darwin
1.77.0-aarch64-apple-darwin
1.83.0-aarch64-apple-darwin
stage1
stage2
stage3

active toolchain
----------------
name: nightly-aarch64-apple-darwin
active because: it's the default toolchain
installed targets:
  aarch64-apple-darwin
  aarch64-apple-ios
  thumbv7em-none-eabihf
  wasm32-unknown-unknown
  x86_64-apple-darwin
  x86_64-unknown-linux-musl
OS version
macOS 15.7.3 (24G419)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the reported command with RUSTUP_UPDATE_ROOT set to the development URL, then trace the self-update path that sets permissions on ~/.cargo/bin/rustup-init. Compare the expected installed files with the reported state, and verify that self-update completes without the missing-file error.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.