Rust 编译器安装

Rust 编译器安装

我试图在 Ubuntu 上安装 rustup,但是当我运行命令时curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh,出现以下错误:

kdsouza@bsc-848851112:/$ sudo curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh
info: downloading installer
curl: (23) Failure writing output to destination
rustup: command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.byP7Lz97VD/rustup-init x86_64-unknown-linux-gnu

我该如何解决?

先感谢您

答案1

除非您需要最新的 Rust 版本,否则请apt-cache search rust查看哪些 Ubuntu 软件包提供了哪些版本的rust。 对于初始学习,不需要绝对最新版本,并且如果您没有“意外地”发现自己与包装系统发生冲突(或混淆),那是“最好的”。

答案2

如果不是全系统安装,那么您可能应该在用户的 $HOME 目录中,~/而不是在运行东西之前/运行cd或运行。cd ~/curl

您的用户不拥有或没有权限将文件写入您当前的目录,即您的根目录/。您可以在提示符下看到美元符号前面显示的当前目录kdsouza@bsc-848851112:/$

下面列出的任何一组命令都会执行相同的操作,即在下载和运行安装脚本之前更改为用户的主目录。您的用户主目录将以波浪符号表示,~作为您提示符下显示的当前目录kdsouza@bsc-848851112:~$

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

或者

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

或者

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

运行cd没有指定目录的命令(第一个命令)应该默认更改为您的主目录。

或者,运行cd命令和目录将更改到您指定的任何目录。您的用户主目录是/home/username/username当前的用户名,因此很可能/home/kdsouza

$HOME~~/甚至/home/$USER都将被 bash 解释为同一件事,/home/kdsouza。因此,您可以cd使用其中任何一个来访问您的主目录。


要么就是您的设备上没有剩余空间,尽管在这种情况下,输出中通常会显示设备上没有剩余空间之类的内容。

要查看可用的空间,请运行以下命令:

df -h

-h标志将以人类可读的格式列出可用空间。

答案3

根据输出:

command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.byP7Lz97VD/rustup-init x86_64-unknown-linux-gnu

看起来好像脚本在第 600 行到第 620 行之间悄然失败了。

如果事实证明这是正确的,我会发布一个完整的分析报告,说明我为什么认为这是事实,但是因为我还没有深入去寻找它失败的具体原因(目前还没有),所以现在我只会建议,如果我是对的,那可能就是解决方案。

尝试强制脚本使用wget而不是curl来获取所需的其他文件。这可以通过运行此命令来实现(它将动态地将一行插入下载的脚本中以实现此目的):

curl --proto '=https' --tlsv1.3 https://sh.rustup.rs | sed '592s/^/_dld=wget/' | sh

否则,手动执行相同操作:

下载脚本:

curl --proto '=https' --tlsv1.3 https://sh.rustup.rs >rustup-init.sh

将下载rustup-init.sh文件的第 592 行(为空行)更改为:

_dld=wget

并手动运行脚本:

sh rustup-init.sh

相关内容