Other Rust Installation Methods

Which installer should you use?

Rust runs on many platforms, and there are many ways to install Rust. If you want to install Rust in the most straightforward, recommended way, then follow the instructions on the main installation page.

That page describes installation via rustup, a tool that manages multiple Rust toolchains in a consistent way across all platforms Rust supports. Why might one not want to install using those instructions?

Rust’s platform support is defined in three tiers, which correspond closely with the installation methods available: in general, the Rust project provides binary builds for all tier 1 and tier 2 platforms, and they are all installable via rustup. Some tier 2 platforms though have only the standard library available, not the compiler itself; that is, they are cross-compilation targets only; Rust code can run on those platforms, but they do not run the compiler itself. Such targets can be installed with the rustup target add command.

Other ways to install rustup

The way to install rustup differs by platform:

rustup-init can be configured interactively, and all options can additionally be controlled by command-line arguments, which can be passed through the shell script. Pass --help to rustup-init as follows to display the arguments rustup-init accepts:

curl https://sh.rustup.rs -sSf | sh -s -- --help

If you prefer not to use the shell script, you may directly download rustup-init for the platform of your choice:

aarch64-unknown-linux-gnu arm-unknown-linux-gnueabi arm-unknown-linux-gnueabihf i686-apple-darwin i686-pc-windows-gnu i686-pc-windows-msvc i686-unknown-linux-gnu
powerpc-unknown-linux-gnu powerpc64-unknown-linux-gnu powerpc64le-unknown-linux-gnu x86_64-apple-darwin x86_64-pc-windows-gnu x86_64-pc-windows-msvc x86_64-unknown-freebsd x86_64-unknown-linux-gnu x86_64-unknown-netbsd

Standalone installers

The official Rust standalone installers contain a single release of Rust, and are suitable for offline installation. They come in three forms: tarballs (extension .tar.gz), that work in any Unix-like environment, Windows installers (.msi), and Mac installers (.pkg). These installers come with rustc, cargo, rustdoc, the standard library, and the standard documentation, but do not provide access to additional cross-targets like rustup does.

The most common reasons to use these are:

Each of these binaries is signed with the Rust signing key, which is available on keybase.io, by the Rust build infrastructure, with GPG. In the tables below, the .asc files are the signatures.

Past releases can be found in the archives.

Stable (1.16.0)

aarch64-unknown-linux-gnu .tar.gz .asc
arm-unknown-linux-gnueabi .tar.gz .asc
arm-unknown-linux-gnueabihf .tar.gz .asc
i686-apple-darwin .tar.gz .asc
i686-apple-darwin .pkg .asc
i686-pc-windows-gnu .tar.gz .asc
i686-pc-windows-gnu .msi .asc
i686-pc-windows-msvc .tar.gz .asc
i686-pc-windows-msvc .msi .asc
i686-unknown-linux-gnu .tar.gz .asc
mips-unknown-linux-gnu .tar.gz .asc
mipsel-unknown-linux-gnu .tar.gz .asc
mips64-unknown-linux-gnuabi64 .tar.gz .asc
powerpc-unknown-linux-gnu .tar.gz .asc
powerpc64-unknown-linux-gnu .tar.gz .asc
powerpc64le-unknown-linux-gnu .tar.gz .asc
s390x-unknown-linux-gnu .tar.gz .asc
x86_64-apple-darwin .tar.gz .asc
x86_64-apple-darwin .pkg .asc
x86_64-pc-windows-gnu .tar.gz .asc
x86_64-pc-windows-gnu .msi .asc
x86_64-pc-windows-msvc .tar.gz .asc
x86_64-pc-windows-msvc .msi .asc
x86_64-unknown-freebsd .tar.gz .asc
x86_64-unknown-linux-gnu .tar.gz .asc
x86_64-unknown-netbsd .tar.gz .asc

Beta (1.17)

aarch64-unknown-linux-gnu .tar.gz .asc
arm-unknown-linux-gnueabi .tar.gz .asc
arm-unknown-linux-gnueabihf .tar.gz .asc
i686-apple-darwin .tar.gz .asc
i686-apple-darwin .pkg .asc
i686-pc-windows-gnu .tar.gz .asc
i686-pc-windows-gnu .msi .asc
i686-pc-windows-msvc .tar.gz .asc
i686-pc-windows-msvc .msi .asc
i686-unknown-linux-gnu .tar.gz .asc
mips-unknown-linux-gnu .tar.gz .asc
mipsel-unknown-linux-gnu .tar.gz .asc
mips64-unknown-linux-gnuabi64 .tar.gz .asc
powerpc-unknown-linux-gnu .tar.gz .asc
powerpc64-unknown-linux-gnu .tar.gz .asc
powerpc64le-unknown-linux-gnu .tar.gz .asc
s390x-unknown-linux-gnu .tar.gz .asc
x86_64-apple-darwin .tar.gz .asc
x86_64-apple-darwin .pkg .asc
x86_64-pc-windows-gnu .tar.gz .asc
x86_64-pc-windows-gnu .msi .asc
x86_64-pc-windows-msvc .tar.gz .asc
x86_64-pc-windows-msvc .msi .asc
x86_64-unknown-freebsd .tar.gz .asc
x86_64-unknown-linux-gnu .tar.gz .asc
x86_64-unknown-netbsd .tar.gz .asc

Nightly (1.18)

aarch64-unknown-linux-gnu .tar.gz .asc
arm-unknown-linux-gnueabi .tar.gz .asc
arm-unknown-linux-gnueabihf .tar.gz .asc
i686-apple-darwin .tar.gz .asc
i686-apple-darwin .pkg .asc
i686-pc-windows-gnu .tar.gz .asc
i686-pc-windows-gnu .msi .asc
i686-pc-windows-msvc .tar.gz .asc
i686-pc-windows-msvc .msi .asc
i686-unknown-linux-gnu .tar.gz .asc
mips-unknown-linux-gnu .tar.gz .asc
mipsel-unknown-linux-gnu .tar.gz .asc
mips64-unknown-linux-gnuabi64 .tar.gz .asc
powerpc-unknown-linux-gnu .tar.gz .asc
powerpc64-unknown-linux-gnu .tar.gz .asc
powerpc64le-unknown-linux-gnu .tar.gz .asc
s390x-unknown-linux-gnu .tar.gz .asc
x86_64-apple-darwin .tar.gz .asc
x86_64-apple-darwin .pkg .asc
x86_64-pc-windows-gnu .tar.gz .asc
x86_64-pc-windows-gnu .msi .asc
x86_64-pc-windows-msvc .tar.gz .asc
x86_64-pc-windows-msvc .msi .asc
x86_64-unknown-freebsd .tar.gz .asc
x86_64-unknown-linux-gnu .tar.gz .asc
x86_64-unknown-netbsd .tar.gz .asc

Source code

Stable .tar.gz .asc
Beta .tar.gz .asc
Nightly .tar.gz .asc