应对 Canonical 越来越差的 QA 的策略是什么?

应对 Canonical 越来越差的 QA 的策略是什么?

我的installed (local or obsolete)类别已经满了,因为 Canonical 最近一直在发布更新,然后又撤回。最近两个内核都出现过这种情况,cups今天早上又出现了。我已经使用 Ubuntu 大约三年了,我不记得这种情况像今年这样频繁发生。

那么,该如何理性应对呢?

我考虑过每周只安装一次更新,但这并不能防止我在检查那周之前安装他们推出的糟糕更新。

只在周末安装更新是个好策略吗?似乎系统更新通常不会在周末推出。我想他们可以在周五下午推出一个不好的更新,然后在周一早上将其撤下。

或者,以某种方式不安装更新,直到它们被推送到特定时间段(例如两天)?有没有自动的方法可以做到这一点?

编辑:受影响的系统之一运行带linux-generic内核的 Lubuntu 16.04,另一个运行带linux-generic-hwe-16.04内核的 Lubuntu 16.04。两者都受到cups2.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 支持选择特定版本或目标版本。

  1. 安装 aptitude

    sudo apt-get install aptitude
    
  2. 显示包的旧版本。

    aptitude versions <package-name> | less # use less to display only the top of the list of versions
    
  3. 将选定的包回滚到旧版本。

    sudo apt-get -t=<target release> install <package-name>  # target release is old version
    
  4. 卸载所选软件包的错误更新。

    sudo apt-get -t=<target release> remove <package-name> # target release is new version
    
  5. 防止回滚的软件包版本使用自动更新apt-mark holdapt-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

与任何操作系统一样,最好的策略是每天至少检查一次更新。

从安全角度来看,在对单个用户进行单独测试和优先排序的情况下,让单个用户使用延迟更新是不现实的。紧急更新总是比拉取更新更重要。

因此,除非您有时间调查每个更新,否则最好的策略是在更新发布时应用更新,即使这会导致许多更新被拉出。这些更新总是可以在以后清理。

作为备份策略,您应该始终...备份!经常备份,备份所有内容。不良更新是原因之一。如果您将重要文档保存在云中,这尤其方便。

编辑:我的回答基于这样的假设:您是拥有家用个人电脑的单身人士。

相关内容