运行 apt-get update,有几百个小补丁可以应用。APT 决定停止运行 postgres,花 20 分钟应用所有补丁,然后在最后启动 postgres。
如果我查看补丁列表并发现 postgres,那么我可以运行“apt-get install postgres”并且很高兴自己升级该软件包,只有足够的停机时间来升级该软件包。然后我可以将其余部分升级为第二步,而 postgres 则保持不变。
是否有任何我遗漏的设置会告诉 apt-get 单独停止/升级/启动服务,而不是成群结队或我必须手动分解它们?
你可以这样做:
$ sudo aptitude -F%p --disable-columns search ~U | xargs -n 1 sudo apt-get install
Run Code Online (Sandbox Code Playgroud)
或者
$ sudo apt-get -s upgrade | awk '/^Inst/ { print $2 }' | xargs -n 1 sudo apt-get install
Run Code Online (Sandbox Code Playgroud)
这将单独安装每个可用的升级。
请记住,上述命令没有考虑软件包依赖性,因此您可能最终需要执行一些安装多个软件包的步骤。我不知道有什么方法可以按照相互依赖的顺序获取 aptitude 或 apt-get 输出包。