在 Ubuntu 12.04 网络服务器上,我们正在发送有关此机器升级的夜间报告,并在试运行中运行 cron 进行升级
apt-get update && upgrade --dry-run
过去,我们创建了一个快照,然后运行所有升级。有点担心升级可能会破坏某些东西,我们现在正在考虑不升级 apt-get 告诉我们的每个软件包。这会带来困惑,不知道哪种方式最好。
问题:
升级 apt-get 告诉我们的每个软件包是否常见? - 还是仅升级定义的软件包
apt-get install --only-upgrade 软件包名称
如果我们只升级已定义的包,apt-get 还会关心依赖关系吗?
如果建议不要运行此机器的所有可用升级,那么最好仅运行如上所述的定义升级或保留以下软件包:
apt-mark 保留软件包名称
如果这些都不是最佳实践(定义或保留包),那么建议只使用以下方法检查安全升级:
apt-get -s dist-upgrade |grep "^Inst" |grep -i securi
并运行它们
apt-get -s dist-upgrade | grep "^Inst" | grep -i securi | awk -F " " {'print $2'} | xargs apt-get install
答案1
是的,更新所有内容是很常见的。你知道如果在整个环境中保留随机包,管理会变得多么混乱吗?
解决方案是在暂存环境中执行所有升级,并测试所有内容,以确保在投入生产之前一切仍能正常工作。