rustup commands deal with toolchains, a single installation of the
rustup supports multiple types of toolchains. The most basic
track the official release channels: stable, beta and nightly; but
rustup can also install toolchains from the official archives, for alternate
host platforms, and from local builds.
Standard release channel toolchain names have the following form:
<channel>[-<date>][-<host>] <channel> = stable|beta|nightly|<major.minor>|<major.minor.patch> <date> = YYYY-MM-DD <host> = <target-triple>
'channel' is a named release channel, a major and minor version number such as
1.42, or a fully specified version number, such as
1.42.0. Channel names
can be optionally appended with an archive date, as in
which case the toolchain is downloaded from the archive for that date.
Finally, the host may be specified as a target triple. This is most useful for installing a 32-bit compiler on a 64-bit platform, or for installing the MSVC-based toolchain on Windows. For example:
$ rustup toolchain install stable-x86_64-pc-windows-msvc
For convenience, elements of the target triple that are omitted will be inferred, so the above could be written:
$ rustup toolchain install stable-msvc
Toolchain names that don't name a channel instead can be used to name custom toolchains.
For convenience of developers working on Rust itself,
rustup can manage
local builds of the Rust toolchain. To teach
rustup about your build, run:
$ rustup toolchain link my-toolchain path/to/my/toolchain/sysroot
For example, on Ubuntu you might clone
it, and then run:
$ rustup toolchain link my-toolchain ~/rust/build/x86_64-unknown-linux-gnu/stage2/ $ rustup default my-toolchain
Now you can name
my-toolchain as any other
rustup toolchain. Create a
rustup toolchain for each of your
rust-lang/rust workspaces and test them
rustup run my-toolchain rustc.
rust-lang/rust tree does not include Cargo, when
invoked for a custom toolchain and it is not available,
rustup will attempt
cargo from one of the release channels, preferring 'nightly', then
'beta' or 'stable'.