How to downgrade "stable"?


#1

I am trying to figure out either a bug is rustc version related and want to install rust-1.16 (I am at 1.17 already). Help shows that it should be something like rustup rustup toolchain install stable-yyy-MM-DD. How do I know what date to use or any other way to install old version?


#2

As far as I can tell, rustup install 1.x.0 should work.


#3

If that works, it also implies that the rustup help-message is outdated, which is a legitimate bug in the rust-world.

I’m on mobile, so can’t check myself.
@vchekan, can you confirm if the install 1.16.0 syntax works?


#4
rustup install 1.16.0

should definitely work, I use it all the time for testing against various older releases. It will not touch what rustup considers as the stable toolchain, as far as I know there’s no way to downgrade that.

In terms of help messages, rustup help install says

'toolchain' specifies a toolchain name, such as 'stable', 'nightly',
or '1.8.0'. For more information see `rustup help toolchain`.

rustup help toolchains then also says

Standard release channel toolchain names have the following form:

    <channel>[-<date>][-<host>]

    <channel>       = stable|beta|nightly|<version>
    <date>          = YYYY-MM-DD
    <host>          = <target-triple>

'channel' is either a named release channel or an explicit version
number, such as '1.8.0'. Channel names can be optionally appended with
an archive date, as in 'nightly-2014-12-18', in which case the
toolchain is downloaded from the archive for that date.

Obviously @vchekan missed the “or an explicit version number” part somehow, I’m not sure if there’s a simple change to the text that would make that stand out more.


Technically rustup install stable-YYYY-MM-DD does work as well, with a bit of digging into the manifests I found rustup install stable-2017-03-11 works for installing rustc 1.16.0 (30cf806ef 2017-03-10), although I see no reason to use that instead of rustup install 1.16.0. Again this doesn’t touch what rustup considers to be stable, it just gives you another stable-2017-03-11 toolchain you can override to.


#5

Wonderful, Thanks for the detailed reply! :heart:


#6

rustup does not list ‘install’ as a command.


#7

Huh, that’s a good point. However, the command should work. I’m uncertain why it’s not listed, but I suspect that rustup toolchain install should work equivalently, though uncertain.


#8

Probably the reason it’s not listed is that rustup install is an alias of rustup update, both of which I think are just basically aliases of rustup toolchain install (which also has another alias at rustup toolchain update).