在Windows子系统Linux中,使rustc,cargo,rustup,rustdoc命令在没有sudo的情况下工作

时间:2018-05-29 14:11:20

标签: bash rust debian sudo windows-subsystem-for-linux

我正在运行WSL Debian发行版,因为我想跟随InterMezzOS教程。我按照Rust的安装说明运行curl https://sh.rustup.rs -sSf | sh,但我只能在rustc运行source $HOME/.cargo/env之后运行sudo su命令,并且当我退出{{1}时我无法调用它,当我重新键入sudo它不再起作用时,我必须再次键入它。

有什么方法可以让它可用,所以每次打开我的shell都会运行命令,而不是每次都运行sudo su吗?

4 个答案:

答案 0 :(得分:2)

在安装Rust之后,您可以通过运行whereis rustc

找到它在Linux文件系统中的安装位置

应输出如下内容:

rustc: /home/damianrivas/.cargo/bin/rustc

您需要将其添加到路径中,以便在编辑器中打开.bashrc

nano ~/.bashrc

(如果您使用zsh,我只需将其替换为~/.zshrc

向下滚动到文件底部(或使用键盘快捷键alt + /,并在最后添加此内容,将Rust的位置添加到PATH

# Add Rust to $PATH
export PATH="$HOME/.cargo/bin:$PATH"

我有$HOME,因为/home/damianrivas/是我的$HOME路径。我也可以提出

export PATH="/home/damianrivas/.cargo/bin:$PATH"

完成此操作后,退出打开的WSL终端的全部,然后再打开一个新的终端。您可以重新启动PC以确保。然后在打开新终端时运行rustc --version,它应该可以正常工作。

答案 1 :(得分:0)

请注意,curl https://sh.rustup.rs -sSf | sh将在/home/<user>/.profile中添加一行附加二进制文件的行,其中包括rustup和rustc。但是,~/.cargo/bin中二进制文件的添加不会立即生效。将其与bash终端关联的简单方法是(在安装后立即):

.cargo

在特定情况下,由于您是root用户,应将echo $(cat ~/.profile | tail -1) >> ~/.bashrc source ~/.bashrc /root/home/.cargo复制到您自己的用户主目录中。

答案 2 :(得分:0)

按照他们的文档我这样做:

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

...


Current installation options:


   default host triple: aarch64-unknown-linux-gnu
     default toolchain: stable (default)
               profile: default
  modify PATH variable: yes

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation


< I enter 1>

然后安装完成:

Rust is installed now. Great!

To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).

To configure your current shell, run:
source $HOME/.cargo/env

所以我做了以下

  • 您可能需要将 ~.bashrc 替换为 ~/.zshrc 或类似内容。
echo "export PATH='\$HOME/.cargo/bin:\$PATH'" >> ~/.bashrc"
source ~/.bashrc

然后我检查是否安装了 Rust

$ whereis rustc
rustc: /usr/bin/rustc /usr/share/rustc /home/nvidia/.cargo/bin/rustc

$ which rustc
/home/nvidia/.cargo/bin/rustc

$ rustc --version
rustc 1.53.0 (53cb7b09b 2021-06-17)

这看起来不错,但现在让我们看看 sudo 以便系统脚本可以正常运行。


$ sudo whereis rustc
rustc:

$ sudo rustc --version
sudo: rustc: command not found

天哪!这是如何修复它

$ sudo apt-get install -y rustc

$ sudo rustc --version
rustc 1.47.0


答案 3 :(得分:0)

这对我有用:

#For Mac and Linux Users
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

#window users
Download rustup-init.exe from www.rustup.rs and run.

Note:#run this after
source $HOME/.cargo/env

要验证当前的 Rust 版本,请使用 rustc --version 或 rustc -V 命令。