以非交互方式运行rustup curl获取的安装脚本

33

我正在尝试自动化一些工作,其中包括通过安装 Rust。

curl https://sh.rustup.rs -sSf | sh

这是交互式的,并查询用户输入以供选择,例如“1”“2”或“3”。

无法弄清楚如何输入。

通常对于apt-get,“-y”选项尝试捕获和输入提示。

不确定curl该如何操作。

我该怎么做?


curl 不是交互式的;它检索的脚本是交互式的。 - chepner
1个回答

69

要使安装无人值守,您可以运行

curl https://sh.rustup.rs -sSf | sh -s -- -y

如果你正在使用ssh连接,你应该在前面加上nohup参数

使用-s参数,你设置了sh从标准输入读取命令,然后通过-y自动接受选项

有关sh的更多信息,请参阅手册页面


1
-- 在 -y 前面的目的是什么? - rbansal
我尝试了echo -ne '\n' | $(curl https://sh.rustup.rs -sSf | sh),你知道为什么它没起作用吗?我的理解是$()将执行curl、sh并从echo获取输入。 - rbansal
运行curl请求后,如果我在Docker内运行cargo build --release,会出现找不到cargo的情况。有任何特定原因吗? - Srikar Reddy
你可能需要先获取cargo环境 source $HOME/.cargo/env && cargo build --release - Michael
有趣的是,我正在处理这个问题,但是注意到它在接近结束时卡住了。看起来tty可能已经坏了,所以它不让我继续使用构建命令。很好奇发生了什么事。它说:“rush现在已安装。太棒了!...要配置您当前的shell,请运行:....”,但之后它就一直卡住了。 - Fallenreaper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接