首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使rustc、cargo、rustup、rustdoc命令在没有sudo的情况下在Linux的Windows子系统内工作

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

Stack Overflow用户
提问于 2018-05-29 22:11:20
回答 4查看 6.7K关注 0票数 5

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

有没有办法使它可用,使命令在每次打开shell时都有效,而不是每次都运行sudo

EN

回答 4

Stack Overflow用户

发布于 2018-06-06 09:29:46

在安装Rust之后,您可以通过运行whereis rustc找到它在Linux文件系统中的安装位置

它应该输出如下所示的内容:

代码语言:javascript
复制
rustc: /home/damianrivas/.cargo/bin/rustc

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

代码语言:javascript
复制
nano ~/.bashrc

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

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

代码语言:javascript
复制
# Add Rust to $PATH
export PATH="$HOME/.cargo/bin:$PATH"

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

代码语言:javascript
复制
export PATH="/home/damianrivas/.cargo/bin:$PATH"

完成此操作后,在打开新的WSL终端之前,请退出打开的WSL终端的。你可以重新启动你的电脑来确认。然后当你打开一个新的终端时运行rustc --version,它应该可以工作。

票数 9
EN

Stack Overflow用户

发布于 2019-01-28 18:32:39

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

代码语言:javascript
复制
echo $(cat ~/.profile | tail -1) >> ~/.bashrc
source ~/.bashrc

在您的特定情况下,因为您是根用户,所以应该将/root/home/.cargo/root/home/.profile复制到您自己的用户主目录中。

票数 2
EN

Stack Overflow用户

发布于 2021-06-25 02:50:17

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

代码语言:javascript
复制
$ 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>

然后安装完成,如下所示:

代码语言:javascript
复制
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

因此,我执行以下操作

  • 你可能需要用~/.zshrc或类似的东西来代替~.bashrc

代码语言:javascript
复制
echo "export PATH='\$HOME/.cargo/bin:\$PATH'" >> ~/.bashrc"
source ~/.bashrc

然后我检查是否安装了rust

代码语言:javascript
复制
$ 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,这样系统脚本就可以正常运行了。

代码语言:javascript
复制
$ sudo whereis rustc
rustc:

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

天哪!这就是如何修复它

代码语言:javascript
复制
$ sudo apt-get install -y rustc

$ sudo rustc --version
rustc 1.47.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50586535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档