#1 楼
Ubuntu发行版在实际作为成品发布之前要经历几个阶段:Ubuntu发行发行版前一段时间,它会在某些时候冻结其软件包。
/>在发布之前,但在程序包冻结之后,通常会进行工作以修复这些程序包中可能存在的所有错误和问题。程序包或功能冻结后,不再将新的程序包版本导入到存储库中。
一旦发布,这些程序包的其他更改将仅用于错误修复和安全性问题。即使发布了软件包的新版本,也没有对官方存储库中的软件包进行任何升级。
(下一版本的Ubuntu始终如一地从Debian导入软件包的新版本,直到下一次冻结发生,并且重复相同的过程。
作为示例,您可以查看12.04的发布时间表。
即使12.04于4月发布,1月12日发生了称为Debian Import Freeze的事情。
这只是实际发布之前发生的许多冻结阶段中的第一个,这意味着从Debian导入软件包测试或不稳定的停顿并开始对其进行工作以自定义和解决它们的问题。
此后,许多软件包中没有任何升级,并且该软件包当时的版本为当前版本。并在发行版的生命周期内进行维护。
因此,即使有更高版本,如果开发人员的PPA或Ubuntu + 1存储库中的软件包相同,则这些软件包将仅包含在下一发行版的Ubuntu中。
这样做是出于稳定性,安全性和功能性的考虑。一直将新的出血程序包导入到主存储库中将意味着问题,还有很多问题需要解决。冻结软件包版本有助于解决该问题,并使Ubuntu对最终用户更安全,更稳定。
每6个月发布一个新版本的Ubuntu,因此每6个月准备一次新软件包,经过测试,定制并发布了新版本。可以通过PPA或仅通过从网站下载将软件包的将来版本安装在您的系统中,但是官方存储库中的软件包版本保持不变。
有关更多信息和有关Ubuntu从10.04到12.04发行之前发生的事情的有趣概述,请查看ReleaseSchedule-从LTS到LTS以及“稳定版本更新”页面,以全面了解并说明Ubuntu稳定版本。
评论
这项政策似乎有例外,尤其是对于Web浏览器(Firefox,Chromium)。尽管超过95%的软件包可能遵循以下指示,但对于大多数用户而言,Web浏览器可能是最常用的应用程序。
– dotpush
17年2月15日在15:26
如果您需要最新的软件,请使用启动板PPA存储库。
– iBug
18年6月11日在16:24
@iBug或使用Arch Linux或NixOS等其他发行版,或在Ubuntu系统上安装Homebrew。
–鲍里斯(Boris)
19年8月1日在23:02
@Bruno Pereira“大部分工作都是为了修复所有程序包中可能存在的错误和问题”,通常新版本会尝试修复错误。冻结程序包但当前版本有错误时该怎么办?
–分数
19年11月13日在1:04
这是一个有趣的读物。我注意到在Ubuntu 20.04 LTS上,更新软件包后,我仍然使用Python 3.8.5,而不是Wikipedia的最新稳定版本3.9.1。我最终找到了这个答案。它主要回答了我的问题(Ubuntu冻结了程序包,因此Python在3.8中冻结了20.04),但我仍然不清楚一件事。此策略仅影响LTS版本吗?使用Ubuntu作为开发环境的开发人员是否可以通过使用非LTS版本来获得最新稳定版本的软件(如Python)?还是我们需要从源头获得PPA /安装?
–马特·韦尔克
昨天
#2 楼
有两个原因。第一个很明显:当新的上游问世时,它需要人花时间更新软件包。第二个问题是,如果您正在运行的是稳定版本而不是当前的开发版本,则不会故意故意不更新软件包以避免损坏。请参阅http://wiki.ubuntu.com/StableReleaseUpdates。评论
“当新的上游产品问世时,这需要人工花费时间来更新软件包”,这显然是错误的,一切都可以实现自动化。真正的原因是您提到的第二个原因。
–绅士
18-10-20在14:33
@gented不是虚假的,只有在上游提供准确的包装时才可以自动化。许多(大多数?)上游项目不包括Debian / Ubuntu打包,因此必须由人来做,以更新软件包的依赖关系,描述,补丁以及对上一版本以来打包格式的任何更改。如果已经在Debian中完成了,那么可以,从Debian导入可以自动进行,但是在大多数情况下,Debian之前的Ubuntu或上游的新软件包无法避免人为因素。
–byteit101
20年7月17日在21:28
#3 楼
出于发行原因,软件包被冻结,由于多种原因,其后不进行更新。如果将新版本发布到后期版本中,则新版本...可能会带来新的错误,从而使发布时存在的功能退步
需要人力来打包,测试和上传
需要它自己的一组安全更新
将需要其UI的更新翻译
需要更新的文档(和翻译)
提供技术支持更具挑战性的
可能会使习惯了旧版本功能的用户烦恼
可能需要更新的依赖项,如果在存储库中对其进行了更改,它们可能会破坏其他应用程序
可能会破坏依赖于其他程序包的其他程序在这个版本上
可能会破坏为旧版本创建的用户脚本,模板,工具等。
所有这些,请注意,在某些情况下,Ubuntu确实会完全更新软件版本在存储库中。例如Firefox。
此外,还有一个ubuntu-backports存储库,用户可以选择使用哪些更新软件包,这些软件包不会引起上述问题。默认情况下未启用该功能,因此用户必须选择启用该功能,以消除从您的下方更改您的软件所带来的意外。另外,它的人员并不多,所以我不确定软件包实际获得更新的频率。仅限bugfix的软件包更新。
#4 楼
通常,Ubuntu发行版中的更新用于安全性和错误修复,此类错误的示例包括:在实际情况下可能直接导致安全漏洞的错误。这些由安全团队完成,并记录在SecurityTeam / UpdateProcedures。错误表示与Ubuntu早期版本的严重对比。其中包括完全无法使用的软件包,例如可卸载或在启动时崩溃。
在实际情况下,错误可能会直接导致用户数据丢失
不属于上述类别的错误,但是( 1)具有明显安全的补丁程序,并且(2)影响应用程序而不是关键的基础结构软件包(例如X.org或内核)。
对于长期支持版本,我们通常希望启用新硬件。如果我们可以确保不影响现有硬件的升级,则此类更改是适当的。例如,新引入的驱动程序的形式不得与先前提供的驱动程序重叠。
-Canonical合作伙伴档案中的新版本的商业软件。
-FTBFS(无法从源代码构建)也可以考虑。请注意,在主要的发布过程中,请确保没有不是不是由当前源构建的二进制文件。通常,这些错误仅应与其他错误修复一起使用。
-对于具有新功能但不修复严重错误的软件包的新上游版本,应请求反向移植。
出色的Wiki页面StableReleaseUpdates。
#5 楼
我将根据我过去在ubuntu论坛和ubuntu planet上的经验来回答您的问题。我想我只是想知道apt储存库如何更新以及由谁更新。
APT仓库确实从Ubuntu的包装团队得到更新。包装团队从进行初始包装测试等工作的开发人员那里获得所有上游包装。然后,测试团队进行最终测试,并发出合格信号。但是包装团队和测试团队对依赖项非常谨慎,它的副作用会影响稳定的系统。
当出现延迟时,是否是因为开发人员没有将最新版本发布到相关服务器上?
如果您看到上游的变化,则有成千上万的开发人员希望推送其软件包。但是并不是所有的方法都成功地进入了主流,这是因为各种原因。假设Gedit应用程序是2.2版本,并且适合Dbus 2.1和Gtk 2.4等。Gedit2.4版本(新)需要Gtk 2.5和Dbus2.3才能工作。现在,测试和包装团队(也有发布团队)不接受这一点,因为用新的旧dbus和gtk更改现有系统会破坏其他所有东西。希望您能理解依赖点。
开发人员是否有更多工作要使发布成为存储库可以使用的形式?
不要进入上游渠道。但是到发布频道是:)。
P.S:与上述内容相比,现在规范中的流程可能需要做一些更改。但它或多或少都一样。
#6 楼
作为注释发布的链接fossfreedom中可接受的答案非常好。通常,在新发行版开发过程的第一部分之后发行的软件包版本不会出现在该发行版的主要存储库中。这样就可以对可靠的Ubuntu版本进行全面测试。
如果成功将它们打包到将来的Ubuntu版本中,并且开发人员认为某些软件包也可以与较早的软件包一起使用,则可能会发现某些软件包已释放到backports存储库中。可以在软件中心(编辑->软件源->更新选项卡->不支持的更新)中激活和停用反向端口。
评论
如其他地方所提到的,后向端口并不常见,并且数量也不多。
–托马斯·沃德♦
2014年11月7日14:01
#7 楼
答案不完整。有一些打包的软件包,可以从Software Center的backport版本中安装。在窗口的右侧,在“安装/更改”按钮的左侧,有一个选择框,您可以在其中更改版本。
示例:默认
conky
现在为1.8.x
,您可以在此处找到1.9.0 (precise-backports)
作为反向端口。当然,应该先启用反向端口。来源:http://bugs.launchpad.net/ubuntu/+source/conky/+bug/1003727
编辑:如下所述,并非每个软件包都有一个反向端口,但是如果您足够幸运的话,有时您可能会提前访问。
评论
并非每个软件包都支持反向移植...
– papukaija
13年7月19日在16:29
评论
实际上,这对于任何发行版都会发生,而不仅仅是Ubuntu。@ dr01有些发行版的滚动发行版总是获得更新-因此,并非所有发行版都符合此问题或Ubuntu开发周期