最大限度地减少 apt-get 升级期间的停机时间

最大限度地减少 apt-get 升级期间的停机时间

运行 apt-get update,有几百个小补丁需要应用。APT 决定停止 postgres 运行,花 20 分钟应用所有补丁,然后在最后启动 postgres。

如果我查看补丁列表并找到 postgres,那么我可以运行“apt-get install postgres”,它很乐意自行升级该软件包,只需有足够的停机时间来升级该软件包。然后我可以在第二步升级其余软件包,而 postgres 将继续运行。

我是否缺少任何设置来告诉 apt-get 单独停止/升级/启动服务,而不是成群结队或我必须手动将它们拆分?

答案1

你可以做这样的事情:

$ sudo aptitude -F%p --disable-columns search ~U | xargs -n 1 sudo apt-get install

或者

$ sudo apt-get -s upgrade | awk '/^Inst/ { print $2 }' | xargs -n 1 sudo apt-get install

这将单独安装每个可用的升级。

请记住,上述命令不考虑软件包依赖关系,因此您可能最终会执行安装多个软件包的步骤。我不知道如何让 aptitude 或 apt-get 按照软件包相互依赖的顺序输出软件包。

答案2

根据 EEAA 的回答,我建议在 apt-get 命令中添加“-y”选项,否则使用提示([Y/N])安装的软件包将中止并被跳过(ubuntu-18.04)。使用:

$ sudo apt-get -s upgrade | awk '/^Inst/ { print $2 }' | xargs -n 1 sudo apt-get -y install

相关内容