我试图在 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