![软件更新程序:如何避免有问题的更新以及如何回滚有问题的更新并在将来避免它(如果仍然通过)](https://linux22.com/image/1000205/%E8%BD%AF%E4%BB%B6%E6%9B%B4%E6%96%B0%E7%A8%8B%E5%BA%8F%EF%BC%9A%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E6%9C%89%E9%97%AE%E9%A2%98%E7%9A%84%E6%9B%B4%E6%96%B0%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E5%9B%9E%E6%BB%9A%E6%9C%89%E9%97%AE%E9%A2%98%E7%9A%84%E6%9B%B4%E6%96%B0%E5%B9%B6%E5%9C%A8%E5%B0%86%E6%9D%A5%E9%81%BF%E5%85%8D%E5%AE%83%EF%BC%88%E5%A6%82%E6%9E%9C%E4%BB%8D%E7%84%B6%E9%80%9A%E8%BF%87%EF%BC%89.png)
我目前正在运行 lubuntu 16.04,最近我将内核从 4.4.0-51 更新到 4.4.0-75,下次启动时,wifi 和 hfsplus 支持就消失了。我可以使用 grub 来使用旧内核,但如果可以的话,我希望将来避免出现这种情况。我将问题分为四个具体部分:
我可以对软件更新程序进行哪些更改以避免接收可能破坏系统的更新(设置、存储库等)?
如果有问题的更新仍然通过,导致系统启动,那么除了使用完整的系统备份或使用 grub 加载旧内核之外,还有什么最简单的方法可以让系统恢复到可启动状态?
重新稳定系统后,如何从软件更新程序卸载/回滚该更新?
如何防止该更新再次作为可安装更新出现在软件更新程序中?
答案1
我的经验(自 14.04 LTS 刚推出以来)是,在收到更新通知后立即安装所有更新效果很好——这显然是最好的安全做法,因为我不会错过重要的安全更新(这些更新往往成群出现),因为我想花几周时间安装它们并观察问题。如果您使用的是 LTS 版本并从默认存储库更新,那么您将获得经过 Canonical 和社区审查的稳定性、可维护性和安全性的软件。
正如您所说,在极少数情况下,当内核更新导致某些问题时,请使用 GRUB 启动到上一个内核,然后锁定问题更新并等待下一个更新,或者在此处寻求解决方案。
答案2
从广义上讲,您可以:
- 首先使用实时磁盘进行测试
- 在对主系统进行任何更新之前,创建一个具有干净系统的测试分区并更新该分区;您可以使用
dd
或http://clonezilla.org/
备份测试分区并在出现问题时清理它。 - 您可以在升级之前克隆系统分区
- 你可以将任何新的发行版安装到该测试分区,看看它是否符合要求
- 如果你追求稳定性和兼容性,你不应该进行大规模升级,而是通过包升级
apt-get install packageName --only-upgrade
- 如果最后工作量太大,你可以等待开发人员解决问题