rust-lang / rust-lang/rustup

[MSI] Figure out what to do about CARGO_HOME

Open
#662 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

(This only concerns the new MSI installer for Windows.)

When setting CARGO_HOME as a process-local environment variable for msiexec, it will not be visible. I couldn't find any documentation about this behavior, but I tried and couldn't get it to work. Setting it at the user-level works, though. The question is: Is CARGO_HOME only used for setting a mock path for testing, or is there any other use case? There is a better way in MSI to modify the desired install location, namely setting the TARGETDIR property from the command-line for msiexec.

When we continue to use CARGO_HOME to set the installation directory, we would have to somehow ensure that its value is the same when uninstalling, or save the path in the registry that was used for installing.

Some of this also applies to RUSTUP_HOME, but in general the situation is less critical here. Whenever the directory specified in RUSTUP_HOME does not exist, rustup will just create a new directory and use that one.

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

Review the MSI installer handling of CARGO_HOME and RUSTUP_HOME, along with msiexec's TARGETDIR behavior described in the issue. Determine the supported installation-path mechanism and ensure installation and uninstallation use the same path; done means the chosen behavior is documented and works consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
release
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.