为什么正式的Ubuntu仓库中的软件包比Debian Sid,PPA,作者等的最新(上游)版本更旧?
为什么正式的Ubuntu仓库中的软件包比Debian Sid,PPA,作者等的最新(上游)版本更旧?
Answers:
Ubuntu版本在实际作为成品发布之前要经历几个阶段:
在Ubuntu发布某个版本之前的某个时间,它会在某个时刻冻结其软件包。
在发行版发布之前,但在程序包冻结之后,通常会进行工作以修复这些程序包中可能存在的所有错误和问题。软件包或功能冻结之后,不再将新的软件包版本导入到存储库中。
发布发布后,对这些软件包的其他更改仅会针对错误修复和安全性问题进行。即使发布了新版本的软件包,也没有对官方存储库中的软件包进行任何升级。
始终从Debian导入新版本的软件包,以用于下一版本的Ubuntu,直到下一次冻结并重复相同的过程为止。
您可以看到,即使12.04在4月发布,在1月12日还是发生了Debian Import Freeze。
这只是在实际发行之前发生的众多冻结阶段中的第一个,这意味着从Debian测试或不稳定的停止导入软件包,然后开始对其进行定制和修复问题的工作。
此后,许多软件包中没有任何升级,并且该软件包当时的版本是在发行版生命周期中存在并维护的版本。
因此,即使开发人员的PPA或Ubuntu + 1存储库中具有相同软件包的更高版本,也只会将它们包含在下一版Ubuntu中。
这样做是出于稳定性,安全性和功能性的考虑。一直将新的出血程序包导入到主存储库中将意味着问题,还有很多待解决的问题。冻结软件包版本有助于解决该问题,并使Ubuntu对最终用户更安全,更稳定。
Ubuntu的新版本每6个月发布一次,因此每6个月准备,测试,定制和发布新软件包并附带一个新版本。可以通过PPA或仅通过从网站下载将软件包的将来版本安装在系统中,但是官方存储库中的软件包版本保持不变。
有关从10.04到12.04发行的Ubuntu发生了什么的更多理解和有趣的概述,请查看ReleaseSchedule-从LTS到LTS的稳定发行版和“ 稳定发行更新”页面,以获取有关Ubuntu稳定发行版的完整概述和说明。
有两个原因。第一个很明显:当新的上游问世时,它需要人花时间更新软件包。第二个问题是,如果您运行的是稳定版本而不是当前的开发版本,则不会故意故意不更新软件包以避免损坏。请参阅http://wiki.ubuntu.com/StableReleaseUpdates。
出于发行原因,软件包被冻结,由于多种原因,其后不进行更新。如果新版本发布在后期发行中,则新版本...
所有这些,请注意,在某些情况下,Ubuntu 确实会对存储库中的软件版本进行完整更新。例如Firefox。
此外,还有一个ubuntu-backports存储库,用户可以选择使用哪些更新软件包不会导致上面列出的问题。默认情况下未启用此功能,因此用户必须选择启用它,这样做是为了消除您将软件从您的身下更改而带来的意外。另外,它的人员并不多,因此我不确定软件包实际获得更新的频率。
此外,SRU团队最近对策略进行了一些更新,希望这将使获得仅错误修正的软件包更新更加直接。
通常,Ubuntu发行版中的更新用于安全性和错误修复,此类错误的示例包括:
在实际情况下,可能会直接导致安全漏洞的错误。这些由安全团队完成,并记录在SecurityTeam / UpdateProcedures中。
代表较早版本的Ubuntu严重退化的错误。这包括完全无法使用的软件包,例如可卸载或在启动时崩溃。
在实际情况下,可能会直接导致用户数据丢失的错误不在上述类别中的错误,但是(1)具有明显安全的补丁,并且(2)影响应用程序,而不是关键的基础结构软件包(例如X.org)或内核)。
对于长期支持版本,我们通常希望启用新硬件。如果我们可以确保不影响现有硬件的升级,则此类更改是适当的。例如,新引入的驱动程序的形式不得与以前提供的驱动程序重叠。-Canonical合作伙伴档案中的新版本的商业软件。
-FTBFS(无法从源代码构建)也可以考虑。请注意,在主要的发布过程中,请确保没有不是由当前来源生成的二进制文件。通常,这些错误仅应与其他错误修复一起使用。
-对于提供新功能但不修复严重错误的软件包的新上游版本,应请求反向移植。
摘自出色的Wiki页面StableReleaseUpdates。
我将根据我过去在ubuntu论坛和ubuntu planet上的经验来回答您的问题。
我想我只是想知道apt存储库如何更新以及由谁更新。
APT仓库确实从Ubuntu的包装团队获得更新。包装团队从进行初始包装测试等工作的开发人员那里获得所有上游包装。然后,测试团队进行最终测试并发出合格信号。但是包装团队和测试团队对于依赖项非常谨慎,它的副作用会影响系统的稳定性。
出现延迟时,是否是因为开发人员尚未将最新版本发布到相关服务器上?
如果您看到上游的变化,则有成千上万的开发人员希望推送其软件包。但是并不是所有的方法都成功地进入了主流,这是因为各种原因。假设Gedit应用程序是2.2版本,并且适合Dbus 2.1和Gtk 2.4等。Gedit2.4版本(最新)需要Gtk 2.5和Dbus2.3才能工作。现在,测试和包装团队(也有发布团队)不接受这一点,因为将具有旧dbus和gtk的现有系统替换为新的现有系统会破坏其他所有事情。希望您能理解依赖点。
开发人员在将发行版转换为存储库可以使用的表单方面还有很多工作要做吗?
不到上游渠道。但是对发布渠道是:)。
PS:与上述内容相比,现在规范中可能会对流程进行一些更改。但它或多或少都一样。
答案不完整。
有一些打包的软件包,可以从Software Center的backport版本中安装。在窗口的右侧,在“安装/更改”按钮的左侧,有一个选择框,您可以在其中更改版本。
示例:conky
现在是默认值1.8.x
,您可以在那里进行反向1.9.0 (precise-backports)
移植。当然,应该先启用反向端口。
来源:http : //bugs.launchpad.net/ubuntu/+source/conky/+bug/1003727
编辑:如下所述,并非每个软件包都有一个反向端口,但是如果您足够幸运的话,有时您可能会提前访问。