我有一台旧电脑,运行的是 Ubutu 10.04 LTS。尝试 12.04 时,驱动程序出现了许多问题,所以我回滚到了 10.04,现在我不敢尝试新东西,因为担心会破坏整个系统。此外,我不喜欢整个 Unity 东西。
计算机通常不连接到互联网,因此安全补丁不是什么大问题。
然而,让我烦恼的是,存储库中的软件太老了。虽然将安全补丁反向移植到内核可能很麻烦,但为大多数程序的最新版本设置构建服务器应该很简单,而且一次硬件成本不超过 1000 美元(主要是用于硬盘)。
为什么 Ubuntu 10.04 没有最新的软件?是否有非标准存储库可以解决此问题?
答案1
如果成本很低,为什么不无限期地部分支持旧发行版呢?
确实如此,但成本并不低。依赖关系这种简单的事情都会成为一场噩梦。
为什么 Ubuntu 10.04 没有可用的最新软件?
因为这需要 Canonical 的人员花时间在旧版本上,而他们却需要帮助开发新版本,而且大多数人宁愿新的东西。所以这是在请求的程序数量上完成的。该系统称为“反向移植”。
向后移植:
什么是 Backport
Ubuntu 每 6 个月发布一次操作系统的新版本,该版本基本上是固定的。虽然该版本中的软件会得到错误修复和安全补丁,但新的主要软件版本及其附带的新功能将不可用。
Ubuntu Backports 应运而生。Backports 提供了一种为旧版 Ubuntu 选择性提供新版软件的方法。最常见的情况是,Backports 团队将提供独立应用程序的新版本,这些应用程序可以安全地更新,而不会影响系统的其余部分。
反向移植的安全支持
与随 Ubuntu 发布的软件包不同,Backports 不附带任何安全支持保证。Ubuntu 安全团队不会更新 Backports 中的软件包。当已反向移植的软件包收到安全更新时,Ubuntu Backporters 将尽最大努力尝试更新反向移植。
但...需要请求反向移植。
请求反向移植
反向移植必须经过 Ubuntu 反向移植者团队的批准,但任何人都可以请求反向移植。由于反向移植需要测试才能获得批准,因此反向移植团队建议反向移植请求者在可能的情况下也对其进行测试。
向适当的反向移植项目提交错误即可请求反向移植,如这里所列。Ubuntu 反向移植者团队建议使用 ubuntu-dev-tools 软件包中的 requestbackport 工具来提交反向移植请求。此工具了解反向移植的许多惯例,并可引导您完成大部分验证步骤。
在初步评估期间,反向移植团队将根据以下标准评估请求:
- 反向移植的有效性
- 封装可用性
- 仅限源包
- 确保安全的升级路径
来自评论:
如果没有,那么关于如何处理 12.04 中大多数不受支持(至少开箱即用)的古老硬件的任何建议。
如果是这种情况:这是一个回归,那些是 -bug-,应该这样对待。任何 Ubuntu 版本都应包括任何以前版本中提供的所有硬件支持 + 此版本中发现的错误修复。
最后说明一下:
没有什么可以阻止你制作自己的反向移植软件包。你只需要启动板帐户并在您的系统上安装以下软件包sudo apt-get install ubuntu-dev-tools gnupg-agent
。有关如何继续,请参阅...
答案2
但支持旧软件并不便宜......
构建服务器不仅仅是处理器和存储。它必须安放在某个地方,最好是数据中心,需要大量电力。然后还有人负责照看服务器。我们说的是,仅仅运行构建平台每年就要花费数千美元。
而且这个软件存在于一个堆栈中。内核、X 版本和桌面组件。这些组件在 10.04 和 12.04 之间变化很大(到 14.04 时变化会更大)。鉴于开发人员倾向于以“最新的 LTS”为目标,每次向后移植更改都变得越来越困难。您说它很麻烦,我则说它每次向后移植都要花费开发人员和测试人员数小时的时间。那段时间可不便宜。
存在一个支持计划,并解释了“支持”的含义。您所要求的远远超出了该计划的期限和期望。如果您想继续在旧的、现在不受支持的平台上运行,您可以自由选择。您可以无限期地运行未维护的软件,风险自负,也可以自己承担这些“便宜”的成本。设置您自己的存储库和构建服务器,并提取您想要的所有最新软件包。一切都在那里,您可以自由地去做。应该很简单,对吧?正确的?
不。这不是周日下午的项目。实际上,唯一可持续的选择是进入一个平台并与之和平相处。12.04 将支持到 2017 年(可以使用硬件支持堆栈来进一步现代化),因此我建议您升级并解决问题。
- 驱动程序问题通常是可传递的(特别是如果它在较旧的内核中工作)。您应该将回归报告为错误并帮助开发人员帮助您。
- 不使用 Unity 即可轻松避免诸如“我不喜欢 Unity”之类的 UI 问题。桌面非常模块化。Gnome 2 有兼容版本(Cinnamon、mate、gnome-fallback 等),其他桌面(XFCE、KDE、Gnome 3)也在争夺您的注意力。
答案3
如果您想要所有软件包的较新版本,那么为什么不获取最新版本:13.04?这正是新版本的含义:所有软件包的较新版本。
然而,如果您想将大多数软件包保留在其 10.04 版本,但只将少数软件包升级到较新的版本,这根本不是一项简单的任务 - 事实上,这是一项非常困难的任务。
反向移植软件所需的工作包括修改软件,使其与构建所依赖的旧版本库兼容。
在某些情况下这并不是太困难,因为其依赖项的早期版本可能不会有太大差别。
但是,在其他情况下,依赖项的早期版本可能工作方式完全不同,甚至可能不存在。在这种情况下,软件要么需要大量重写才能解决与旧依赖项缺乏兼容性的问题,要么需要将其某些依赖项也反向移植,这可能会产生流式依赖项。如果将此推向极端,您最终会得到一个由大量来自更高版本的软件包组成的系统(也称为“混合系统”,因为它由并非全部来自一个 Ubuntu 版本的软件包组成)。
您只需启动到最新版本的操作系统的升级即可更轻松地完成此操作,从而无需运行混合系统,也不需要依赖反向移植。
我的建议是尝试解决您在使用 Ubuntu 的较新版本时遇到的任何问题。这比尝试获取对较旧版本的支持要容易得多。