Skip to content

Commit ec0a5d7

Browse files
authored
Merge pull request #176 from rust-lang-nursery/move-other-install
feat(content): move other installation methods doc from website
2 parents baad560 + 8327548 commit ec0a5d7

File tree

5 files changed

+324
-0
lines changed

5 files changed

+324
-0
lines changed

_config.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,18 @@
11
name: The Rust Programming Language
2+
stable: "1.30.1"
3+
stable_date: "2018-11-08"
4+
stable_blog: "https://blog.rust-lang.org/2018/11/08/Rust-1.30.1.html"
5+
stable_full_version: "rustc 1.30.1 (1433507eb 2018-11-07)"
6+
beta: "1.31"
7+
beta_date: "2018-12-06"
8+
nightly: "1.32"
9+
channels:
10+
- name: "stable"
11+
vers: "1.30.1"
12+
package: "1.30.1"
13+
- name: "beta"
14+
vers: "1.31"
15+
package: "beta"
16+
- name: "nightly"
17+
vers: "1.32"
18+
package: "nightly"

_data/platforms.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
rustup:
2+
-
3+
- aarch64-unknown-linux-gnu
4+
- arm-unknown-linux-gnueabi
5+
- arm-unknown-linux-gnueabihf
6+
- i686-apple-darwin
7+
- i686-pc-windows-gnu
8+
- i686-pc-windows-msvc
9+
- i686-unknown-linux-gnu
10+
- mips-unknown-linux-gnu
11+
- mipsel-unknown-linux-gnu
12+
- mips64-unknown-linux-gnuabi64
13+
- mips64el-unknown-linux-gnuabi64
14+
-
15+
- powerpc-unknown-linux-gnu
16+
- powerpc64-unknown-linux-gnu
17+
- powerpc64le-unknown-linux-gnu
18+
- x86_64-apple-darwin
19+
- x86_64-pc-windows-gnu
20+
- x86_64-pc-windows-msvc
21+
- x86_64-unknown-freebsd
22+
- x86_64-unknown-linux-gnu
23+
- x86_64-unknown-netbsd
24+
25+
stable:
26+
-
27+
- aarch64-unknown-linux-gnu
28+
- arm-unknown-linux-gnueabi
29+
- arm-unknown-linux-gnueabihf
30+
- i686-apple-darwin
31+
- i686-pc-windows-gnu
32+
- i686-pc-windows-msvc
33+
- i686-unknown-linux-gnu
34+
- mips-unknown-linux-gnu
35+
- mipsel-unknown-linux-gnu
36+
- mips64-unknown-linux-gnuabi64
37+
- mips64el-unknown-linux-gnuabi64
38+
-
39+
- powerpc-unknown-linux-gnu
40+
- powerpc64-unknown-linux-gnu
41+
- powerpc64le-unknown-linux-gnu
42+
- s390x-unknown-linux-gnu
43+
- x86_64-apple-darwin
44+
- x86_64-pc-windows-gnu
45+
- x86_64-pc-windows-msvc
46+
- x86_64-unknown-freebsd
47+
- x86_64-unknown-linux-gnu
48+
- x86_64-unknown-netbsd
49+
50+
beta:
51+
-
52+
- aarch64-unknown-linux-gnu
53+
- arm-unknown-linux-gnueabi
54+
- arm-unknown-linux-gnueabihf
55+
- i686-apple-darwin
56+
- i686-pc-windows-gnu
57+
- i686-pc-windows-msvc
58+
- i686-unknown-linux-gnu
59+
- mips-unknown-linux-gnu
60+
- mipsel-unknown-linux-gnu
61+
- mips64-unknown-linux-gnuabi64
62+
-
63+
- powerpc-unknown-linux-gnu
64+
- powerpc64-unknown-linux-gnu
65+
- powerpc64le-unknown-linux-gnu
66+
- s390x-unknown-linux-gnu
67+
- x86_64-apple-darwin
68+
- x86_64-pc-windows-gnu
69+
- x86_64-pc-windows-msvc
70+
- x86_64-unknown-freebsd
71+
- x86_64-unknown-linux-gnu
72+
- x86_64-unknown-netbsd
73+
74+
nightly:
75+
-
76+
- aarch64-unknown-linux-gnu
77+
- arm-unknown-linux-gnueabi
78+
- arm-unknown-linux-gnueabihf
79+
- i686-apple-darwin
80+
- i686-pc-windows-gnu
81+
- i686-pc-windows-msvc
82+
- i686-unknown-linux-gnu
83+
- mips-unknown-linux-gnu
84+
- mipsel-unknown-linux-gnu
85+
- mips64-unknown-linux-gnuabi64
86+
- mips64el-unknown-linux-gnuabi64
87+
-
88+
- powerpc-unknown-linux-gnu
89+
- powerpc64-unknown-linux-gnu
90+
- powerpc64le-unknown-linux-gnu
91+
- s390x-unknown-linux-gnu
92+
- x86_64-apple-darwin
93+
- x86_64-pc-windows-gnu
94+
- x86_64-pc-windows-msvc
95+
- x86_64-unknown-freebsd
96+
- x86_64-unknown-linux-gnu
97+
- x86_64-unknown-netbsd

css/style.css

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,3 +501,25 @@ ul.laundry-list {
501501
margin: 0 0 0 2rem;
502502
padding: 0;
503503
}
504+
505+
.installer-table {
506+
display: flex;
507+
margin: 2rem;
508+
justify-content: space-around;
509+
}
510+
511+
.installer-table > div > div > span {
512+
float: left;
513+
margin-left: 1em;
514+
margin-right: 1em;
515+
}
516+
517+
.rustup-init-table {
518+
display: flex;
519+
margin: 2rem;
520+
justify-content: space-around;
521+
}
522+
523+
.rustup-init-table > div > a {
524+
display: block;
525+
}

index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ PRs against [rust-lang-nursery/rust-forge].
5050
* [Friend of the Tree archives](fott.html).
5151
* [Bibliography](bibliography.html). Research papers and other links to projects that influenced Rust. Papers about Rust.
5252
* [Cross compilation resources](cross-compilation/index.html)
53+
* [Other Rust Installation Methods](other-installation-methods.html)
5354

5455
<script>
5556

other-installation-methods.md

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
---
2+
layout: default
3+
title: Other Installation Methods &middot; The Rust Programming Language
4+
---
5+
6+
# Other Rust Installation Methods
7+
8+
- [Which installer should you use?](#which)
9+
- [Other ways to install `rustup`](#more-rustup)
10+
- [Standalone installers](#standalone)
11+
- [Source code](#source)
12+
13+
## Which installer should you use?
14+
<span id="which"></span>
15+
16+
Rust runs on many platforms, and there are many ways to install Rust. If you
17+
want to install Rust in the most straightforward, recommended way, then follow
18+
the instructions on the main [installation page].
19+
20+
That page describes installation via [`rustup`], a tool that manages multiple
21+
Rust toolchains in a consistent way across all platforms Rust supports. Why
22+
might one _not_ want to install using those instructions?
23+
24+
- Offline installation. `rustup` downloads components from the internet on
25+
demand. If you need to install Rust without access to the internet, `rustup`
26+
is not suitable.
27+
- Preference for the system package manager. On Linux in particular, but also on
28+
macOS with [Homebrew], and Windows with [Chocolatey], developers sometimes
29+
prefer to install Rust with their platform's package manager.
30+
- Preference against `curl | sh`. On Unix, we usually install `rustup` by
31+
running a shell script via `curl`. Some have concerns about the security of
32+
this arrangement and would prefer to download and run the installer
33+
themselves.
34+
- Validating signatures. Although `rustup` performs its downloads over HTTPS,
35+
the only way to verify the signatures of Rust installers today is to do so
36+
manually with the standalone installers.
37+
- GUI installation and integration with "Add/Remove Programs" on
38+
Windows. `rustup` runs in the console and does not register its installation
39+
like typical Windows programs. If you prefer a more typical GUI installation
40+
on Windows there are standalone `.msi` installers. In the future
41+
`rustup` will also have a GUI installer on Windows.
42+
43+
Rust's platform support is defined in [three tiers], which correspond closely
44+
with the installation methods available: in general, the Rust project provides
45+
binary builds for all tier 1 and tier 2 platforms, and they are all installable
46+
via `rustup`. Some tier 2 platforms though have only the standard library
47+
available, not the compiler itself; that is, they are cross-compilation targets
48+
only; Rust code can run on those platforms, but they do not run the compiler
49+
itself. Such targets can be installed with the `rustup target add` command.
50+
51+
## Other ways to install `rustup`
52+
<span id="rustup"></span>
53+
54+
The way to install `rustup` differs by platform:
55+
56+
* On Unix, run `curl https://sh.rustup.rs -sSf | sh` in your
57+
shell. This downloads and runs [`rustup-init.sh`], which in turn
58+
downloads and runs the correct version of the `rustup-init`
59+
executable for your platform.
60+
* On Windows, download and run [`rustup-init.exe`].
61+
62+
`rustup-init` can be configured interactively, and all options can additionally
63+
be controlled by command-line arguments, which can be passed through the shell
64+
script. Pass `--help` to `rustup-init` as follows to display the arguments
65+
`rustup-init` accepts:
66+
67+
```
68+
curl https://sh.rustup.rs -sSf | sh -s -- --help
69+
```
70+
71+
If you prefer not to use the shell script, you may directly download
72+
`rustup-init` for the platform of your choice:
73+
74+
<div class="rustup-init-table">
75+
{% for column in site.data.platforms.rustup %}
76+
<div>
77+
{% for target in column %}
78+
{% if target contains 'windows' %}
79+
<a href="https://static.rust-lang.org/rustup/dist/{{ target }}/rustup-init.exe">
80+
{{ target }}
81+
</a>
82+
{% else %}
83+
<a href="https://static.rust-lang.org/rustup/dist/{{ target }}/rustup-init">
84+
{{ target }}
85+
</a>
86+
{% endif %}
87+
{% endfor %}
88+
</div>
89+
{% endfor %}
90+
</div>
91+
92+
## Standalone installers
93+
<span id="standalone"></span>
94+
95+
The official Rust standalone installers contain a single release of Rust, and
96+
are suitable for offline installation. They come in three forms: tarballs
97+
(extension `.tar.gz`), that work in any Unix-like environment, Windows
98+
installers (`.msi`), and Mac installers (`.pkg`). These installers come with
99+
`rustc`, `cargo`, `rustdoc`, the standard library, and the standard
100+
documentation, but do not provide access to additional cross-targets like
101+
`rustup` does.
102+
103+
The most common reasons to use these are:
104+
105+
- Offline installation
106+
- Prefering a more platform-integrated, graphical installer on Windows
107+
108+
Each of these binaries is signed with the [Rust signing key], which is
109+
[available on keybase.io], by the Rust build infrastructure, with
110+
[GPG]. In the tables below, the `.asc` files are the signatures.
111+
112+
Past releases can be found in [the archives].
113+
114+
{% for channel in site.channels %}
115+
116+
### {{ channel.name | capitalize }} ({{ channel.vers }})
117+
<span id="{{ channel.name }}"></span>
118+
119+
<div class="installer-table {{ channel.name }}">
120+
{% for column in site.data.platforms[channel.name] %}
121+
<div>
122+
{% for target in column %}
123+
<div>
124+
<span>{{ target }}</span>
125+
<a href="https://static.rust-lang.org/dist/rust-{{ channel.package }}-{{ target }}.tar.gz">.tar.gz</a>
126+
<a href="https://static.rust-lang.org/dist/rust-{{ channel.package }}-{{ target }}.tar.gz.asc">.asc</a>
127+
</div>
128+
{% if target contains 'windows' %}
129+
<div>
130+
<span>{{ target }}</span>
131+
<a href="https://static.rust-lang.org/dist/rust-{{ channel.package }}-{{ target }}.msi">.msi</a>
132+
<a href="https://static.rust-lang.org/dist/rust-{{ channel.package }}-{{ target }}.msi.asc">.asc</a>
133+
</div>
134+
{% elsif target contains 'darwin' %}
135+
<div>
136+
<span>{{ target }}</span>
137+
<a href="https://static.rust-lang.org/dist/rust-{{ channel.package }}-{{ target }}.pkg">.pkg</a>
138+
<a href="https://static.rust-lang.org/dist/rust-{{ channel.package }}-{{ target }}.pkg.asc">.asc</a>
139+
</div>
140+
{% endif %}
141+
{% endfor %}
142+
</div>
143+
{% endfor %}
144+
</div>
145+
146+
{% endfor %}
147+
148+
## Source code
149+
<span id="source"></span>
150+
151+
<div class="installer-table">
152+
<div>
153+
<div>
154+
<span>Stable</span>
155+
<a href="https://static.rust-lang.org/dist/rustc-{{ site.stable }}-src.tar.gz">.tar.gz</a>
156+
<a href="https://static.rust-lang.org/dist/rustc-{{ site.stable }}-src.tar.gz.asc">.asc</a>
157+
</div>
158+
</div>
159+
<div>
160+
<div>
161+
<span>Beta</span>
162+
<a href="https://static.rust-lang.org/dist/rustc-beta-src.tar.gz">.tar.gz</a>
163+
<a href="https://static.rust-lang.org/dist/rustc-beta-src.gz.asc">.asc</a>
164+
</div>
165+
</div>
166+
<div>
167+
<div>
168+
<span>Nightly</span>
169+
<a href="https://static.rust-lang.org/dist/rustc-nightly-src.tar.gz">.tar.gz</a>
170+
<a href="https://static.rust-lang.org/dist/rustc-nightly-src.tar.gz.asc">.asc</a>
171+
</div>
172+
</div>
173+
</div>
174+
175+
[installation page]: install.html
176+
[`rustup`]: https://github.com/rust-lang-nursery/rustup.rs
177+
[other-rustup]: https://github.com/rust-lang-nursery/rustup.rs#other-installation-methods
178+
[`rustup-init.exe`]: https://static.rust-lang.org/rustup/dist/i686-pc-windows-gnu/rustup-init.exe
179+
[`rustup-init.sh`]: https://static.rust-lang.org/rustup/rustup-init.sh
180+
[Homebrew]: http://brew.sh/
181+
[Chocolatey]: http://chocolatey.org/
182+
[three tiers]: https://forge.rust-lang.org/platform-support.html
183+
[Rust signing key]: https://static.rust-lang.org/rust-key.gpg.ascii
184+
[GPG]: https://gnupg.org/
185+
[available on keybase.io]: https://keybase.io/rust
186+
[the archives]: https://static.rust-lang.org/dist/index.html
187+

0 commit comments

Comments
 (0)