AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1431940
Accepted
ArrayBolt3-LeftSEForCodidact
ArrayBolt3-LeftSEForCodidact
Asked: 2022-09-24 08:08:46 +0800 CST2022-09-24 08:08:46 +0800 CST 2022-09-24 08:08:46 +0800 CST

什么是分阶段更新,为什么 Ubuntu 使用它们?

  • 772

所以我在使用apt. 经过一番研究,似乎是“分阶段更新”的结果。

  • 到底什么是分阶段更新?
  • 为什么 Ubuntu 使用它们?
  • 他们对我有什么好处?
  • 我可以(并且应该)关闭它们或解决它们吗?
  • 为什么apt关于分阶段更新的消息如此不清楚?
apt
  • 1 1 个回答
  • 921 Views

1 个回答

  • Voted
  1. Best Answer
    ArrayBolt3-LeftSEForCodidact
    2022-09-24T08:08:46+08:002022-09-24T08:08:46+08:00

    什么是分阶段更新?

    分阶段更新是逐步向用户推出的软件更新,而不是所有用户同时获得更新。在不使用分阶段更新的更新系统中,一旦更新可用,就会立即为所有用户提供更新。使用分阶段更新时,只有部分用户在首次发布时获得更新。随着时间的推移,越来越多的用户得到更新,直到更新最终“完全分阶段”,每个人都得到了更新。

    Ubuntu 从 Ubuntu 13.04 开始(差不多十年前!)就一直在使用 Ubuntu Desktop 的分阶段更新系统,但是直到现在,只有 Ubuntu 的 GUI 更新程序能够处理分阶段更新。通过更新apt将忽略更新阶段。但是,从 Ubuntu 21.04 开始,apt也使用分阶段更新,允许分阶段更新适用于所有版本的 Ubuntu,包括 Ubuntu Server 和在容器中运行的 Ubuntu。apt顺便说一句,此更改还导致在许多系统更新期间出现臭名昭著的“以下软件包已被保留”消息。虽然分阶段更新apt自 Ubuntu 21.04 以来一直存在,但它们在 Ubuntu 22.04 LTS 中最为明显。

    为什么 Ubuntu 使用它们?

    有时,就像其他人一样,Ubuntu 开发人员也会犯错误。虽然更新在发布之前进行了测试,但有时未正确考虑意外的极端情况。如果这些意外的极端情况变得有些普遍,它们可能会开始导致用户系统出现问题。

    过去,在 Apt 使用分阶段更新之前,任何时候推出更新,所有 Ubuntu 用户都可以立即安装更新。而且,如果该更新碰巧有问题,它可能会同时搞砸很多人的系统。分阶段更新使得,如果更新不好,它会在每个人都得到更新之前尽早发现。一旦更新被推出,一些用户会比其他用户更快地得到它。如果这些用户的系统开始报告崩溃(或者如果软件包出现严重问题),则可以停止分阶段过程,从而默认情况下停止将更新发送给用户。这提高了 Ubuntu 的安全性和稳定性。

    分阶段系统使得选择不同的用户组成为第一个获得更新的用户,这样就不会有一组不幸的人总是在发布后很快就获得更新。

    他们对我有什么好处?

    如果您过去曾遇到过更新破坏系统的情况,那么您将来应该不太可能遇到该问题。更新阶段使得更容易在早期检测到损坏,避免对用户的桌面、服务器和其他 Ubuntu 驱动的设备造成问题。这通过提高 Ubuntu 的稳定性和可靠性直接使 Ubuntu 用户受益。

    我可以(并且应该)关闭它们或解决它们吗?

    这取决于您需要系统的稳定性。如果您只是想避免任何有关apt更新期间软件包被阻止的通知,并且您愿意成为第一批在更新发布时获得更新的人之一,您可以关闭分阶段更新。这有点冒险,因为这意味着如果更新不好,您几乎总是第一个获得更新的人(本质上,您正在让自己成为早期更新版本的豚鼠!)。但是它会去掉关于保留包的通知apt。

    如果这听起来是个坏主意,请保持分阶段更新。

    通过在保留包上运行来解决分阶段更新apt install可能总是一个坏主意 - 它不会永久“修复”保留包通知(实际上不需要首先修复),它会让你安装早点打包。如果您已经这样做了,它可能不会弄乱您的系统(除非更新有问题),但这可能不是您想要养成的习惯。

    如果您确定要禁用分阶段更新,您可以通过在 中创建一个/etc/apt/apt.conf.d包含以下行的文件来更改 apt 的配置:

    Update-Manager::Always-Include-Phased-Updates;
    APT::Get::Always-Include-Phased-Updates;
    

    99-Phased-Updates如果文件/etc/apt/apt.conf.d/99-Phased-Updates不存在,您可以命名该文件。同样,只有在你真的知道你在做什么并且绝对确定你需要这样做时才这样做(例如,如果你故意安装所有最新的软件包,因为你想帮助测试它们并且如果你的系统负担得起的话休息)。如果您出于此示例之外的几乎任何其他原因执行此操作,则可能有更好的方法。

    为什么apt关于分阶段更新的消息如此不清楚?

    apt实际上,由于依赖关系的工作方式,分阶段更新是分阶段更新,因此很难将分阶段更新识别为被阻止。但是,我们确实认识到这是一个令人讨厌的问题,并且在我们的雷达上。这里有一个关于它的错误报告:https ://bugs.launchpad.net/ubuntu/+source/apt/+bug/1988819如果你有一个 Ubuntu SSO 帐户并且可以登录到 Launchpad,你可以点击“这个错误影响 X 人。这个 bug 会影响你吗?靠近页面顶部的链接,然后单击“是的,它会影响我”以提高错误热度等级,使其更显着。

    (注意:请不要在错误报告的底部留下刻薄和讨厌的评论——它只会让我们生气或不安,实际上并没有促使我们更快地修复错误。)

    • 28

相关问题

  • 如何编写 shell 脚本来安装应用程序列表?

  • 如何查看存档中可用的软件包的所有版本?

  • 是否可以说出我安装的哪些软件包不在原版安装中?

  • 如何删除 PPA?

  • 使用 apt-get upgrade 时如何强制安装内核更新?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve