为何 22.04 中的 PHP 软件包版本如此糟糕?(以及为何 PHP 软件包版本总是糟糕)

为何 22.04 中的 PHP 软件包版本如此糟糕?(以及为何 PHP 软件包版本总是糟糕)

今天,我在想:

为什么如果我安装了 php-fpm(它现在是许多 PHP 安装的关键包),Ubuntu 22.04 会完全搞砸整个 PHP 安装,假装安装奇怪的版本,如 php8.1-common 8.1.2-1ubuntu2.9,而不是停留在 8.1.2-1ubuntu2??

有人可能会说:就保留它们。但是为什么呢?是谁做出以这种方式移动包裹的决定的?如何撤销?

这只是关于 Ubuntu 的一个哲学问题,一直困扰着我。

大概 99% 的人都在使用不同的 repo,比如用于 PHP 的 ondrej repo,它更具凝聚力,在大多数情况下是认真的人的首选。但仍然想知道为什么 Ubuntu 团队如此奇怪地选择这种打包方式这么久。这种情况已经持续了很久了。

我还想知道是否有更好的地方可以向负责此决定的人询问这些事情。

答案1

感谢@user535733 的回答以及几天前我与 Libera 中 #KUbuntu 小组的一些人进行的讨论,现在我认为我已经找到了我自己问题的答案:

Ubuntu 的哲学是远离 GNU 生态系统而生存,但利用 GNU 生态系统。

请允许我解释一下:例如,如果 KDE 升级到 5.26 并将 5.24 留给 LTS,Ubuntu 将决定不理会 KDE 的决定(他们才是此类软件包的真正维护者),而倾向于将补丁下游到他们必须确定的版本(比如说 5.25 或 5.23 或他们在确定时的任何版本)

他们的论点是:Ubuntu 的目标是继续为每个软件包提供超稳定的版本。这在 LTS Ubuntu 版本中可能有意义,而且更明智的做法是了解官方软件包维护者 LTS 的决定并坚持执行(有时他们会坚持,有时不会)。

但是他们的思维模式是坚持他们决定的任何版本,而不管上游的决定如何,这很奇怪,因为许多软件包已经失去维护(例如 KDE 5.25),现在所有新补丁都在 5.26 中实施。他们认为最新版本不如 5.25 稳定,因为它较新,但由于这是他们的主要补丁重点,因此它总是比以前现在不稳定的版本(在此示例中为 5.25)更快地达到稳定状态,因为他们将在 5.26 中解决在 5.25 中仍然存在的问题(因为最终每个软件都无关紧要,如果它发展了版本,它将在版本之间带来许多问题)。

但是 Ubuntu 维护人员必须加倍努力,使用他们在 5.26 KDE 错误跟踪器中找到的一些补丁来修补 5.25。而且他们必须对每个软件包都这样做!!!Ubuntu 维护人员正在加倍处理数百甚至数千个软件包的工作。这完全是疯了。

而所有这些巨大的努力只是为了生活在稳定的假象中,证据就是这一点:我不断发现某些软件包的较高版本已经解决了错误,但 Ubuntu 维护人员还没有在理论上较低和更“稳定”的版本中修补下游问题(这些版本并不更稳定,因为它们比上游版本有更多的错误)。

总而言之,他们为每个单独的包创建非官方版本,就像 PHP 长期以来所发生的情况一样。

考虑到 PHP 有 20 个模块,一个模块(如当前案例中的 FPM)恰好介入了较低的版本,而忘记升级某些额外包的版本,最终我们的系统将有 12 个包无限期地被搁置,并且必须调整升级系统以避免不断出现不必要的警告和信息,而这在某些实际情况下可能是需要阅读的重要内容。

一些用户可能会说,这只是一个回答而已。

但这只是我自己的一点解释,为了提供一些背景信息,以便我能够更好地理解为什么真正的解决方案在技术上就是我在前一个问题中所说的:只需为每个包使用一个更好的存储库。在这种情况下,PHP repo 从一开始就是 Ondrej 的同义词。

还有一个不适合我的地方,以防几个月后我又遇到同样的问题(我记性不好)。对于 KDE 和喜好,我应该始终坚持使用通常具有上游版本的 Ubuntu backports repo。

相关内容