是 | apt-get install --fix-broken

Lin*_*eak 3 dpkg apt yes

我正在尝试编写一个非交互式系统更新脚本。

题:

如果以下工作正常:

yes | dpkg --configure -a
Run Code Online (Sandbox Code Playgroud)

以下工作也会很好吗?:

yes | apt-get install --fix-broken
Run Code Online (Sandbox Code Playgroud)

7_R*_*R3X 10

你有-y--yes--assume-yes在参数apt-get

尝试类似的东西

sudo apt-get install -y <package-name>
Run Code Online (Sandbox Code Playgroud)

细节:

apt-get手册页(您也可以使用man apt-get命令参考手册页)提到:

-y, --yes, --assume-yes

自动是提示。假设“是”作为对所有提示的回答并以非交互方式运行。如果发生不希望的情况,例如更改保留的包或删除必要的包,则 apt-get 将中止。配置项:APT::Get::Assume-Yes。

与此参数相反,您还有

--假设-否

对所有提示自动“否”。配置项:APT::Get::Assume-No。

编辑

对于 Vlastimil 的评论,我试过了

sudo apt-get install --fix-broken --assume-yes
Run Code Online (Sandbox Code Playgroud)

它有效。的--fix-broken命令的一部分可以与被替换-f--assume-yes-y--yes为了方便。这不会特别安装任何包,但“可以省略任何包以允许 APT 推导出可能的解决方案”,如手册页所述。