繁体   English   中英

从RStudio终端访问Rust

[英]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 或者使设置PATHRUSTUP_HOMECARGO_HOME适用于其他用户,例如将其添加到/etc/profile

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM