为什么在官方存储库中很难找到更新的最终用户软件?

为什么在官方存储库中很难找到更新的最终用户软件?

不,这不是重复的https://askubuntu.com/questions/151283/why-dont-the-ubuntu-repositories-have-the-latest-versions-of-software。

我的问题仅针对最终用户软件。我完全理解有关低端软件包和其他东西的稳定性争论,但为什么每隔几天就有很多软件包需要更新,但这些都与我的常用应用程序无关?

这让我们陷入了荒谬的境地:许多开发人员建议我们不要使用官方存储库,因为它们已经过时了。想象一下,在移动世界中,您必须从网络上的任何地方下载 APK/IPA,因为 Google Play/App Store 只包含一年前的版本。

这就是 Ubuntu 上发生的事情。拥有一种易于使用的软件安装方式的魔力完全被毁掉了,因为东西太旧了。

例如:我的电脑刚刚安装了 Ubuntu 16.04,而 Calibre 版本已经有 5 个月了 - 2.55 在 repo 中,而 2.66 已经发布了。

如果原始开发人员不愿意维护 PPA,我们只能回到过去,访问下载网站,获取 tarball 或 deb 文件,然后手动安装。Ubuntu 曾经很酷,但在这方面它现在比 Windows 更老了。

人为因素是这里唯一的应对措施吗?Ubuntu 维护人员要做的不仅仅是跟上 Ubuntu 版本之间的所有软件发布? 为什么软件开发人员无法更轻松/轻松地在 Ubuntu 存储库上更新他们自己的软件?

答案1

为什么软件开发人员无法更轻松/轻松地在 Ubuntu 存储库上更新自己的软件?

软件开发人员会定期更新他们的软件。这就是您找到新 Calibre 版本的原因。但是,他们不会直接将更新推送到 Ubuntu 存储库。原因已在您与问题链接的答案中给出。

他们不能总是提供 PPA,因为这会给他们增加额外的负担。然后他们需要为几个发行版提供软件包。别忘了每个发行版都有几个非 EOL 版本!如果他们想为 Ubuntu 提供一个软件包,他们就需要为 16.04、14.04 和可能 12.04 创建一个。然后 Fedora、Debian、Arch 用户开始抱怨!这不容易!这就是为什么 PPA 通常由第三方维护者提供的原因。

然而,现在还有另一种方法可以为最终用户提供最新的软件。它将应用程序的每个组件打包在一个文件中。它们主要在隔离环境中运行,例如在容器中,并且不需要与系统中安装的当前库兼容。例如,您可以在 Xenial 中运行 gtk-3.20 应用程序,该应用程序主要使用 3.18 组件进行打包。

但他们也有自己的问题!(见脚注)

其中一些方法如下:

Ubuntu 维护人员除了跟上 Ubuntu 版本之间的所有软件发布之外还有更多事情要做吗?

Ubuntu 维护人员努力实现每个版本的里程碑。为了保持 Ubuntu 稳定,他们需要确保每个软件包都能按预期运行。例如,最近有一个问题是在这里问关于在 Ubuntu 16.04 中获取最新的 KDEConnect 1.0。但它显示kdeconnect1.0 需要 Qt 5.6。为了给他们 Qt 5.6,他们需要确保官方存储库中的其他软件包可以很好地与之配合使用。这意味着,重新构建、重新测试所有 KDE 软件包,这确实是一项艰巨的任务。

如果你需要最新的、尖端的软件,你可以尝试使用滚动发布或者问题中前面提到的其他单一包方法。


单个文件打包的一些问题:

  1. 它们通常尺寸较大(因为它们包装了所有需要的东西)

  2. 安装它们会使您的系统变得更大,因为您的系统中会有每个软件包使用的相同库的多个副本。

  3. 这些打包格式要求软件包维护者自己测试与库的集成。这对他们来说是一个额外的负担。使用apt,yum方法,他们只需关心核心应用程序。他们可以简单地假设 lib-gtk-xy-1.5 在发行版中可用。

  4. 同样,出于同样的原因,软件包维护者现在将为软件包中包含的库相关的错误报告而烦恼。在传统方法中,这是该特定库软件包维护者的工作。

相关内容