Trying to compile: https://github.com/SergioBenitez/Rocket/tree/master/examples/hello
Cargo.toml
[dependencies]
rocket = "0.4.10"
Complains that I need rust nightly
$ cargo build
...
Error: Rocket (core) requires a more recent version of rustc.
Installed version: 1.54.0 (2021-05-17)
Minimum required: 1.54.0-nightly (2021-05-18)
I have done a local directory override
$ rustup override set nightly
I am running nightly 2021-05-17 but I need 2021-05-18
$ rustup show
...
active toolchain
----------------
nightly-x86_64-unknown-linux-gnu (directory override for '/<redacted>')
rustc 1.54.0-nightly (3e99439f4 2021-05-17)
I've tried all sorts of commands to get a more recent nightly
$ rustup update
$ rustup update nightly
$ rustup toolchain install nightly-2021-05-18
There is some weird stuff when I do rustup update nightly
$ rustup update nightly
info: syncing channel updates for 'nightly-x86_64-unknown-linux-gnu'
info: latest update on 2021-05-23, rust version 1.54.0-nightly (e4ca1662f 2021-05-22)
info: skipping nightly which is missing installed component 'rls'
info: syncing channel updates for 'nightly-2021-05-22-x86_64-unknown-linux-gnu'
info: latest update on 2021-05-22, rust version 1.54.0-nightly (5dc8789e3 2021-05-21)
info: skipping nightly which is missing installed component 'rls'
info: syncing channel updates for 'nightly-2021-05-21-x86_64-unknown-linux-gnu'
info: latest update on 2021-05-21, rust version 1.54.0-nightly (40d230204 2021-05-20)
info: skipping nightly which is missing installed component 'rls'
info: syncing channel updates for 'nightly-2021-05-20-x86_64-unknown-linux-gnu'
info: latest update on 2021-05-20, rust version 1.54.0-nightly (f94942d84 2021-05-19)
info: skipping nightly which is missing installed component 'rls'
info: syncing channel updates for 'nightly-2021-05-19-x86_64-unknown-linux-gnu'
info: latest update on 2021-05-19, rust version 1.54.0-nightly (4e3e6db01 2021-05-18)
info: skipping nightly which is missing installed component 'rls'
info: syncing channel updates for 'nightly-2021-05-18-x86_64-unknown-linux-gnu'
nightly-x86_64-unknown-linux-gnu unchanged - rustc 1.54.0-nightly (3e99439f4 2021-05-17)
Complains about skipping nightly which is missing installed component 'rls' and I have no idea how to resolve this
Any help would be appreciated
Sorry for the wall of text, see The solution to your problem below if you only want a quick fix. You might also look at the rustup book, it contains information about this type of problem.
You are trying to install a nightly version of Rust. In nightly versions, the availability of non-essential components of Rust, such as the Rust Language Server (or short
rls) is not guaranteed – if they fail to build, the nightly is shipped without them. You can see here thatrlsindeed was not part of the last few nightlies. The last day a nightly was shipped withrlswas2021-05-18, which is a build from the day before, so2021-05-17(a bit irritating, but this seems to be accepted behavior).Your rustup installation seems to be configured to include
rls. Therefore, when you tellrustupto update yournightlytoolchain, rustup selects the newest nightly containingrls. There are no such nightlies newer than your currently installednightly-2021-05-17, therefore,rustupdoes not update the toolchain.The solution to your problem
rls(it's only necessary for auto-completion in IDEs and stuff like that), there are multiple solutions to your problem:rlscomponent from your nightly toolchain:rustup component remove --toolchain nightly rlsrls, you are in a bit of a tight spot. You might want to use a override for your project, in effect using different Rust builds for building your code and for runningrls. However, this will probably not work –rlsmay need to build your project dependencies for autocompletion, and Rocket will not allow that with older nightlies. I don't really have a solution for this case – you may need to stay on an older version of Rocket or stop usingrlsfor now, until there is a newer Rust nightly shipping withrlsagain.