[英]Accessing Rust from RStudio terminal
这是我创建的Dockerfile,用于在Carl Boettiger和Dirk Eddelbuettel维护的Rocker项目中的RStudio中安装Rust:
FROM rocker/tidyverse
RUN apt-get update \
&& apt-get install -y wget
ENV RUSTUP_HOME=/usr/local/rustup \
CARGO_HOME=/usr/local/cargo
RUN set -eux; \
\
url="https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init"; \
wget "$url"; \
chmod +x rustup-init; \
./rustup-init -y --no-modify-path --default-toolchain stable; \
rm rustup-init; \
chmod -R a+w $RUSTUP_HOME $CARGO_HOME;
ENV PATH /usr/local/cargo/bin:$PATH
映像构建良好,但是当我使用docker run -d -p 8787:8787 dockerimage
运行映像时,无法在RStudio Server终端中访问Rust软件包管理器中的cargo
。
我想念什么?
如果您使用登录到运行容器
$ docker exec -it <container-name> bash
您会发现类似以下内容:
root@58906b77cc2f:/# echo $PATH
/usr/local/cargo/bin:/usr/lib/rstudio-server/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root@58906b77cc2f:/# which cargo
/usr/local/cargo/bin/cargo
root@58906b77cc2f:/# cargo
Rust's package manager
USAGE:
cargo [OPTIONS] [SUBCOMMAND]
[...]
但是,RStudio服务器是以rstudio
用户rstudio
执行的,情况有所不同:
root@58906b77cc2f:/# su - rstudio
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
$ cargo
sh: 2: cargo: not found
因此,可以将Rust安装到默认PATH
一部分中,例如使用Dirk在注释中建议的apt
。 或者使设置PATH
, RUSTUP_HOME
和CARGO_HOME
适用于其他用户,例如将其添加到/etc/profile
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.