【问题标题】:How do we install rustc, cargo for all the users in the same linux machine?我们如何在同一台 linux 机器上为所有用户安装 rustc、cargo?
【发布时间】:2021-02-07 21:29:15
【问题描述】:

我有一台带有多个用户的 ubuntu 机器,其中一些用户拥有和没有 root 权限。除此之外,我对同一台机器的存储空间有限。我真的不想让不同的用户多次安装相同的软件。作为 root 用户,我想以 root 身份安装一次 rust(rustc, cargo) 并使其可供所有其他用户使用。目前推荐的安装 rust 的方法是使用 curl curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh。我知道使用sudo 可以让我在全局范围内安装一个程序,但我看到了不鼓励使用 sudo 进行 rust 安装的线程。我们如何在同一台linux机器上为所有用户安装rustc、cargo?

编辑:

我只希望一个 root 用户拥有更新 rustup 和 cargo 的权限,而所有其他用户都必须使用这个副本。

【问题讨论】:

标签: linux ubuntu installation rust rust-cargo


【解决方案1】:

github issue 表示同时使用 rustup 是不安全的,可能会破坏其工作区域。如果使用全局 rust 工具链的目的是为了保持版本一致,可以按照rustup-for-managing-rust-versions 的说明创建一个rust-toolchain 文件,但如果是为了节省磁盘空间,恐怕没有官方文档说这样做是安全的。

【讨论】:

  • 谢谢我已经阅读了github问题,我已经更新了我的问题。我是reading this。这是什么Then, install this shell script as /usr/local/bin/rustc。我是否复制下面的shell代码并将其放在/usr/local/bin/rustc
  • 从该评论中,是的,您需要将该 shellscript 复制为 /usr/local/bin/rustc。它基本上是 execs 你的 shell,从 ${0##*/} 获得,这是一种模糊的查找 basename 的方法,然后是 rust 工具链命令作为参数,从 $@ 获得。
【解决方案2】:

如果您想要一个只能由管理员更新的系统范围的安装,那么我强烈建议您使用official standalone installer

只需下载最新版本,解压并运行sudo ./install。如果您以这种方式安装旧版本,则会自动处理更新旧版本。如果您已经使用 rustupapt 等其他方法安装了 Rust,您可能应该先使用该方法卸载它们。

如果您需要其他目标,那么您也很幸运:也可以使用项目为每个受支持目标提供的迷你安装程序在系统范围内安装其他目标。目前,执行此操作的方法文档很少,但 Rust 1.0.0 已支持它:

  1. 首先使用上面链接的独立安装程序之一安装 Rust。

  2. 然后从以下位置下载目标安装程序:

    https://static.rust-lang.org/dist/rust-std-${RUST_VERSION}-${TARGET_TRIPLE}.tar.gz
    

    ${RUST_VERSION}${TARGET} 替换为所需的值。例如,分别使用1.48.0wasm32-unknown-unknown 下载wasm32 installer 的安装程序。

  3. 提取并运行sudo ./install

请记住,这些目标将在您安装下一版 Rust 时自动卸载,因此请准备好在每次更新 Rust 时重复此过程。

【讨论】:

    猜你喜欢
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 2017-11-17
    • 2011-03-15
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    相关资源
    最近更新 更多