今天我看到 Canonical 终于发布了新版 Thunderbird。但不是最新版本 38,而是更新到了 31.8.0。我以为 Canonical 决定始终将 Firefox 和 Thunderbird 更新到最新版本?我只是好奇他们为什么突然决定不这样做。
我之所以问这个问题,是因为新的 38 版本有一些很酷的新功能,我实际上已经等待了一段时间了。
答案1
这个答案主要集中在概念性问题上:为什么Canonical 做出这个决定?
它没有针对 Canonical 所做决定提出解决方法。这些已在另一个答案中给出。
下游分销商(如 Canonical)通常有两种方式来处理上游版本。
- 只需将新版本传递给消费者即可。
- 仅向消费者传递安全修复。
对于大多数软件包,第二种选择是首选。这样可以保持稳定。如果 Ubuntu 将最新的 PHP 传递给我,我的 PHP 脚本可能会突然停止工作,因为最新版本的语法略有不同。另一方面,如果他们什么都不传递,我可能会容易受到攻击。所以他们只传递安全修复。这就是为什么我的 PHP 版本是PHP 5.6.4-4ubuntu6.2
:它具有 PHP 5.6.4 的语法,但也有一些针对 Ubuntu 的调整,当他们从更高版本的 PHP 中获取安全修复并将其放入此版本时。这被称为向后移植,这是通常的方法。只有当我更新到新版本的 Ubuntu 时,我才会获得新版本的 PHP。
对于像 PHP 这样的脚本语言来说,这是有道理的。您可以看到我为什么想要稳定性。最新版本的语法略有不同,这可能会破坏现有脚本。然而,对于像 Thunderbird 这样的桌面程序,关于哪种方法更可取存在更多争议。
- 有些人更喜欢稳定性。新版 Thunderbird 可能拥有不同的用户界面,他们不想学习。
- 另一方面,有些人想这些新功能,并且不明白为什么他们必须等待新版本的 Ubuntu 才能获得新版本的 Thunderbird。
这是一种平衡行为。请考虑以下几点:
- 对于 Ubuntu 团队来说,反向移植安全修复是一项艰巨的工作:对他们来说,传递整个更新可能更容易。
对于 Firefox,Ubuntu 确实会传递最新版本。是否这样做或仅反向移植安全修复程序将根据具体情况做出决定。
另一件需要考虑的事情是:不同的人想要不同的东西。有些人只想要稳定性和安全修复,不需要行为变化。其他人想要最新和最好的新功能。如果 Ubuntu 的 repos 适合前者,后者可以随时直接去源代码那里获取最新的东西。但是,如果 Ubuntu 的 repos 迎合后者,前者就无处可去,很可能最终只能运行没有更新的旧软件,甚至没有安全更新。因此,Ubuntu 为大多数软件包提供稳定性和反向移植的安全修复是有意义的。
答案2
除非需要进行安全修复,否则主存储库不太可能更新。Canonical 似乎总是更新到最新版本的唯一原因是 Mozilla 已在较新版本中发布了安全修复,并且为了获得这些修复,他们觉得值得冒着新版本可能遇到的任何麻烦。如果在后续版本中进行了重大更改,但安全修复可以应用于现有版本,那么这就是您将获得的。