我有一台ubuntu机器,有多个用户,其中一些用户拥有root权限,也没有root权限。除此之外,我对同一台机器的存储空间有限。我真的不想让不同的用户多次安装同一个软件。作为root用户,我想安装一次rust(rustc,cargo(作为root,并使其可用于所有其他用户。目前推荐的安装铁锈的方法是使用卷曲curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
。我知道使用sudo
可以让我在全球范围内安装程序,但我看到过一些线程不鼓励使用sudo进行rust安装。我们如何在同一台linux机器上为所有用户安装rustc,cargo?
编辑:
我只希望一个root用户能够更新rustup和cargo,而所有其他用户都必须使用此副本。
这个github问题表明,同时使用rustup是不安全的,可能会破坏其工作区域。如果使用全局rust工具链的目的是维护一致的版本,您可以按照rustup中的规定创建一个rust-toolchain
文件来管理rust版本,但如果是为了节省磁盘空间,恐怕没有官方文件表明这样做是安全的。
以下是我如何使用离线安装程序使其工作的:
export RUST_VERSION=1.60.0 &&
export TMP_RUST_DIR=/tmp/rust &&
mkdir -p "${TMP_RUST_DIR}" &&
cd "${TMP_RUST_DIR}" &&
curl -sLf "https://static.rust-lang.org/dist/rust-${RUST_VERSION}-x86_64-unknown-linux-gnu.tar.gz" |
tar xvzf - -C "${TMP_RUST_DIR}" --strip-components=1 --exclude=rust-docs &&
./install.sh --without=rust-docs &&
cd /tmp && rm -rf "${TMP_RUST_DIR}"
以只有授权管理员才能更新的方式在系统范围内安装Rust的官方方法是使用官方的独立安装程序。要以这种方式安装rust,请下载安装程序,将其解压缩到一个目录中,然后运行sudo ./install
。
更新同样简单,如果您以这种方式安装了以前版本的rust,则会自动处理更新。如果您已经使用rustup
或apt
等其他方法安装了Rust,那么在使用官方安装程序之前,您可能应该使用该方法卸载Rust。
您还可以使用提供特定于目标文件的小型安装程序在系统范围内安装其他目标。安装附加目标的过程类似于安装主工具链的方式:
-
使用上述方法安装Rust toolchin。
-
从以下位置下载目标安装程序:
https://static.rust-lang.org/dist/rust-std-${RUST_VERSION}-${TARGET_TRIPLE}.tar.gz
将
${RUST_VERSION}
和${TARGET}
替换为它们各自的值。例如,如果您安装了1.60.0
并希望安装额外的目标wasm32-unknown-unknown
,则需要下载rust-std-1.60.0-wasm32 unknown unknown.tar.gz。 -
提取并运行
sudo ./install
。
请记住,当您安装下一版本的Rust时,这些目标将自动卸载,因此请准备在每次更新Rust时重新安装您使用的任何其他目标。