![应对 Canonical 越来越差的 QA 的策略是什么?](https://linux22.com/image/1059823/%E5%BA%94%E5%AF%B9%20Canonical%20%E8%B6%8A%E6%9D%A5%E8%B6%8A%E5%B7%AE%E7%9A%84%20QA%20%E7%9A%84%E7%AD%96%E7%95%A5%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我的installed (local or obsolete)
类别已经满了,因为 Canonical 最近一直在发布更新,然后又撤回。最近两个内核都出现过这种情况,cups
今天早上又出现了。我已经使用 Ubuntu 大约三年了,我不记得这种情况像今年这样频繁发生。
那么,该如何理性应对呢?
我考虑过每周只安装一次更新,但这并不能防止我在检查那周之前安装他们推出的糟糕更新。
只在周末安装更新是个好策略吗?似乎系统更新通常不会在周末推出。我想他们可以在周五下午推出一个不好的更新,然后在周一早上将其撤下。
或者,以某种方式不安装更新,直到它们被推送到特定时间段(例如两天)?有没有自动的方法可以做到这一点?
编辑:受影响的系统之一运行带linux-generic
内核的 Lubuntu 16.04,另一个运行带linux-generic-hwe-16.04
内核的 Lubuntu 16.04。两者都受到cups
2.13-4ubuntu0.2 版本更新的影响,该更新于 2017 年 3 月 27 日推出,然后撤回。该linux-generic
机器收到内核更新版本 4.4.0.67.12,随后撤回。此更新还使snapd
版本 2.23.1 成为孤立版本。该linux-generic-hwe-16.04
机器收到内核版本 4.8.0.42.14,随后成为孤立版本。
答案1
一个彻底的选择就是转换到 Debian Stable,而不是任何 *buntu 或其衍生版本,因为 Debian Stable 已经经过了完整的 QA 流程,而 Ubuntu 源自 Debian Testing,在成为稳定版本之前还有一段路要走。
几乎所有的知识都可以直接转移,但 Debian 不会为您提供所有最新的装饰性“花哨功能”。但是,它的存储库中有更多的软件包...
大约 5 年前,我从 Kubuntu 转到 Debian,当时使用的是 KDE,也遇到了类似的问题。但这取决于个人选择。
答案2
将软件包更新回滚到旧版本
如果您有版本号或目标版本,apt-get 支持选择特定版本或目标版本。
安装 aptitude
sudo apt-get install aptitude
显示包的旧版本。
aptitude versions <package-name> | less # use less to display only the top of the list of versions
将选定的包回滚到旧版本。
sudo apt-get -t=<target release> install <package-name> # target release is old version
卸载所选软件包的错误更新。
sudo apt-get -t=<target release> remove <package-name> # target release is new version
防止回滚的软件包版本使用自动更新
apt-mark hold
。apt-mark hold
用于将软件包标记为保留,这将防止软件包自动安装、升级或删除。sudo apt-mark hold <package-name>
将内核更新回滚到旧版本
按照上一节中的步骤操作,但您必须执行额外的步骤,即在卸载损坏的内核包之前测试是否仍安装了可运行的内核版本。不幸的是,这需要重新启动系统。我很抱歉需要重新启动,因为我知道当您维护多个系统时,这会很麻烦且耗时。
aptitude versions <package-name>
不会显示所有当前安装的内核版本,但是您可以使用以下命令显示所有当前安装的内核版本:
dpkg-query -W -f='${Package}\n' | grep -f <(ls -1 /boot/vmlinuz* | cut -d- -f2,3)
此命令的结果将列出所有应卸载的非工作内核包的包名称。
卸载属于非工作内核版本的软件包后,您将收到以下消息:
The link /vmlinuz.old is a damaged link
Removing symbolic link vmlinuz.old
you may need to re-run your boot loader[grub]
显示此消息是因为 vmlinuz.old 与已删除的文件相关联,因此您需要通过运行以下命令来更新 grub:
sudo update-grub
答案3
与任何操作系统一样,最好的策略是每天至少检查一次更新。
从安全角度来看,在对单个用户进行单独测试和优先排序的情况下,让单个用户使用延迟更新是不现实的。紧急更新总是比拉取更新更重要。
因此,除非您有时间调查每个更新,否则最好的策略是在更新发布时应用更新,即使这会导致许多更新被拉出。这些更新总是可以在以后清理。
作为备份策略,您应该始终...备份!经常备份,备份所有内容。不良更新是原因之一。如果您将重要文档保存在云中,这尤其方便。
编辑:我的回答基于这样的假设:您是拥有家用个人电脑的单身人士。