rls icon indicating copy to clipboard operation
rls copied to clipboard

Problem with Rustup install

Open hanusek opened this issue 3 years ago • 2 comments

...
Step 7/10 : RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
 ---> Running in 66b400ac9551
info: downloading installer
info: profile set to 'default'
info: default host triple is x86_64-unknown-linux-gnu
warning: Updating existing toolchain, profile choice will be ignored
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2020-12-31, rust version 1.49.0 (e1884a8e3 2020-12-29)
info: downloading component 'rust-std' for 'arm-unknown-linux-gnueabihf'
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: removing previous version of component 'rust-std' for 'arm-unknown-linux-gnueabihf'
info: rolling back changes
error: could not rename component file from '/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-gnueabihf/lib' to '/root/.rustup/tmp/3nxrhxq47i0kq99__dir/bk'
error: caused by: other os error
The command '/bin/sh -c curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y' returned a non-zero code: 1

Dockerfile:

FROM energotest/rust:arm-unknown-linux-gnueabihf

ENV DEBIAN_FRONTEND=noninteractive
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/arm-linux-gnueabihf/pkgconfig
ENV PKG_CONFIG_ALLOW_CROSS=1

RUN apt-get update && apt-get install -y --no-install-recommends apt-utils

RUN dpkg --add-architecture armhf && \
    apt-get update && \
    apt-get install --assume-yes libpthread-stubs0-dev:armhf && \
    apt-get install --assume-yes libudev-dev:armhf && \
    apt-get install --assume-yes libudev1:armhf


#RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

# Add .cargo/bin to PATH
ENV PATH="/root/.cargo/bin:${PATH}"

# Check cargo is visible
RUN cargo --help

RUN rustup target add arm-unknown-linux-gnueabihf

Please help!

hanusek avatar Feb 05 '21 15:02 hanusek

This seems like it's related to the rustup tool rather than RLS. @kinnison do you have any idea what may cause this in Docker environment?

Xanewok avatar Feb 10 '21 11:02 Xanewok

Sorry for the delay, work has been frantic for the past month or so. This kind of problem is because Docker often doesn't cope well with removing things from one layer in a new layer atop it.

In general we recommend you do not try to change the toolchain if you have a docker with a toolchain embedded in it because Docker simply cannot cope. You should either ensure your baseline container has no toolchain in it and so rustup can cleanly install the toolchain you want; or else it should contain exactly the toolchain you want as docker can't cope with updating it.

Sadly this is not something we can easily fix in rustup because of the way Docker works.

kinnison avatar Feb 16 '21 08:02 kinnison