应对 Canonical 日益糟糕的 QA 的策略?

Org*_*ble 13 updates patch canonical quality

我的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,然后孤立。

kar*_*rel 0

将包更新回滚到旧版本

如果您有版本号或目标版本,apt-get 支持选择特定版本或目标版本。

  1. 安装能力

    sudo apt-get install aptitude
    
    Run Code Online (Sandbox Code Playgroud)
  2. 显示包的旧版本。

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

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

    sudo apt-get -t=<target release> remove <package-name> # target release is new version
    
    Run Code Online (Sandbox Code Playgroud)
  5. 防止回滚的包版本使用自动更新apt-mark holdapt-mark hold用于将软件包标记为保留,这将阻止该软件包自动安装、升级或删除。

    sudo apt-mark hold <package-name>  
    
    Run Code Online (Sandbox Code Playgroud)

将内核更新回滚到旧版本

请按照与上一节中相同的步骤进行操作,不同之处在于您必须执行额外的步骤来测试您是否仍然安装了可以正常运行的内核版本,然后再卸载损坏的内核软件包。不幸的是,这需要重新启动系统。我对重新启动感到抱歉,因为我知道当您维护多个系统时,这可能会很麻烦且耗时。


aptitude versions <package-name>不显示所有当前安装的内核版本,但是您可以使用以下命令显示所有当前安装的内核版本:

dpkg-query -W -f='${Package}\n' | grep -f <(ls -1 /boot/vmlinuz* | cut -d- -f2,3)  
Run Code Online (Sandbox Code Playgroud)

该命令的结果将列出所有应卸载的非工作内核软件包的软件包名称。

卸载属于非工作内核版本的软件包后,您将收到以下消息:

The link /vmlinuz.old is a damaged link
Removing symbolic link vmlinuz.old 
 you may need to re-run your boot loader[grub]
Run Code Online (Sandbox Code Playgroud)

显示此消息是因为 vmlinuz.old 链接到已删除的文件,因此您需要通过运行以下命令来更新 grub:

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

  • @OrganicMarble 对于您的孩子来说,他们可能不是最懂计算机或不愿意费心思考内核和其他问题,您是否测试过将他们的计算机配置为**仅安全更新**?该配置是否会出现同样的问题?我无法想象一般的更新会是完美的,直到发布后经过大量计算机和环境的测试,并且在实验室中运行没有问题。至少你的问题显示了出现问题时的快速解决方案。 (2认同)

Del*_*ean -1

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

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

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

作为备份策略,您应该始终...备份!经常备份,备份一切。糟糕的更新是造成这种情况的原因之一。如果您将重要文档保存在云中,这尤其方便。

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