一个“Debian版本”本身并不是一件事情,通常有
不同版本的Debian在野外。
Debian有一个名为“不稳定”的分支,或者叫“sid”,以《玩具总动员》中打破他的玩具的小孩命名。
Debian还有一个“稳定”的版本,当它准备好时发布。这些通常会在较长的时间间隔内发布。
在两者之间有一个称为“测试”的版本,其中包含比稳定版更新但比不稳定版旧的软件版本。最终,“测试”被
提升为稳定版本。
通常在其开发周期中,Ubuntu从Debian Unstable(sid)导入
源软件包。在某个时候,我们
停止自动导入,而是手动引入修复程序,然后每6个月将其作为Ubuntu发布。在更注重稳定性的LTS版本中,Ubuntu将从
测试版本中获取。
在Ubuntu发布后,会与Debian进行大规模同步,然后该过程重复。
Debian Stable和Ubuntu都是基于Debian Unstable -> Testing的版本进行稳定发布。两个过程的主要区别在于,Ubuntu基于时间进行发布,根据发布计划和目标导入和冻结软件,而Debian则以较慢的速度进行循环,并没有严格的“我们需要定期发布”的目标。Ubuntu有时也会直接获取对其用户重要的内容并打包,有时会将这些内容提交回Debian(如果合适的话)。我在这里稍微讨论了一下:
很久以前,Debian的稳定版本可能需要很长时间,有时长达3年:以致于发布时部分软件已经过时。过去几个版本发布得更快一些,大约每1.5-2年发布一次,与Ubuntu LTS发布的间隔差不多,但由于安排不同,Debian的发布版本可能比最新的Ubuntu LTS版本更新(或反之亦然)。
Debian和Ubuntu的软件包通常是二进制兼容的:在一个发行版上构建的程序可以复制到另一个发行版上并成功运行。但这要求安装了与软件包构建时所需的相同库,而这在Ubuntu版本和Debian版本之间或者同一发行版的连续两个版本之间并不总是成立。此外,发行版集成远不止于拥有正确的库,所以即使软件包中的程序具备了运行所需的一切条件,由于发行版之间的许多差异,软件包可能无法正确安装或运行:例如,Ubuntu的软件包可能在Debian上无法使用,因为它需要upstart。
总的来说,如果您认为Debian和Ubuntu之间的打包应该相同,最简单的方法仍然是使用您的版本的确切工具链重新构建二进制软件包。您可以轻松地导入源代码包并自己或在PPA上构建它。
偶尔,Debian和Ubuntu的发布版本会达到一致,例如共享GCC、libc6或python版本等。当然,这对生态系统非常有益,因为紧密对齐的事物使用户、打包人员和上游开发者更容易。这就是为什么Ubuntu开发者峰会上的工具链讨论通常会考虑到Debian的状态的原因。