为什么我不能在不升级整个操作系统的情况下更新应用程序?

在Ubuntu中,一旦发布了一个版本,安装的软件只会接收到安全更新。而在Windows中,我可以获得带有新功能的程序的新版本。为什么Windows能做到这一点,而Ubuntu却不能呢?

请参阅:http://askubuntu.com/questions/99033/what-is-the-difference-between-apt-get-upgrade-and-apt-get-dist-upgrade - david6
10个回答

这实际上是Ubuntu的一个特性。
更新软件到最新版本并没有问题,Ubuntu开发人员可以轻松地做到。实际上,其他几个Linux发行版也都这样做,包括Arch。
正如你所注意到的,Ubuntu软件只会进行安全更新和关键错误修复。所有功能都被“冻结”,在发布Ubuntu之后,不会将软件更新到新的主要版本。尽管这似乎是Ubuntu的一个缺点,但实际上它是其优点之一。
为什么要冻结应用程序的版本而不更新功能?有几个原因。
新版本通常比旧版本不稳定。使用稍旧的版本可以确保它经过了充分的测试。
人们可以相信Ubuntu在特定版本内不会有重大变化。这对于大公司来说非常重要,他们希望能够依赖Ubuntu 10.04始终以同样的方式工作,并且始终包含相同的功能。
这也意味着Ubuntu 10.04始终是10.04,而不像Windows那样,服务包会对系统进行很多改变,需要您自己处理。
Ubuntu开发人员特别注意为您提供最稳定的软件。在Windows上,更新的发布通常是第三方的决定。这意味着有些人可能希望您使用最新版本,带有新的酷炫功能,而其他人可能只在长时间测试后才发布功能。这意味着您永远不知道更新中发生了什么。
这使得Ubuntu开发人员更容易管理发布。Ubuntu每6个月发布一次,在此期间,Ubuntu开发人员准备将新版本发布出来,并加入大量新功能和更新的软件。他们只将其添加到当前正在开发的版本中,而不是所有支持的(旧)Ubuntu版本:这样做需要更少的工作。
更新由Canonical和Ubuntu开发人员提供,而不是像Windows那样由软件开发者提供。就个人而言,我更相信Ubuntu开发人员,而不是软件ABC的开发者,并且可以确保由Ubuntu提供的新版本不会对我的计算机造成任何(甚至是意外的)伤害。
以上所有内容都是Ubuntu质量的主要组成部分之一。您可以获得最优质的软件和操作系统,并通过使用稍旧几个月的软件来保持平衡。
此外,请记住,当您更新到新版本的Ubuntu时,所有软件将再次处于最新版本(但会保持在该版本直到下一个发布),因此软件不包含最新功能并不是一个主要问题。而且正如其他人建议的那样,如果需要的话,您可以使用PPA从其他来源获取更新的软件。

2@ZippyV 另一方面,他们可能对Ubuntu的安全性比第三方开发者更了解。 - Sabacon

这是一个问题,Ubuntu软件中心团队正在解决中。

问题在于Ubuntu传统上大部分应用程序都来自Debian GNU/Linux的开发分支——另一个免费操作系统——然后“冻结”其中的一个快照以供发布。这个由社区维护的软件集合被称为“宇宙”,包含了80,000个软件包;Ubuntu开发人员不可能为所有这些软件在每个支持的版本上提供重大更新,同时保持相同的质量水平。

为了解决这个问题,Ubuntu创建了MyApps开发者门户。现在Ubuntu已经成为一个拥有超过两千万用户的大平台,希望开发者们能够有兴趣直接向Ubuntu提交应用程序,并在Ubuntu的各个版本中定期更新他们的软件。

对于“宇宙”这一希望最终成为可用软件的一小部分的领域,软件中心团队计划扩大“后备库”系统的可选软件升级(该系统已经存在但功能尚不完善)。

软件中心界面的主要软件更新是由Canonical UI员工设计的, 但尚未实施。

Software Center Updates image

如果你对Ubuntu中应用程序交付的未来感兴趣,我建议你观看Ubuntu软件中心和宇宙的未来

值得注意的是,MyApps门户网站不会仅凭Ubuntu开发人员的最低工作量提供更新。每个提交到该门户网站的应用程序都必须由ARB团队进行准备和测试,这可能需要数月时间,如在故障网站http://bit.ly/zicSXA上所示。 - Rafał Cieślak
@rafalcieslak,他们知道应用审查委员会需要更快的速度,并正在努力改进。mpt在相关的错误报告中表示:“在他们能够扩展到可以替代任何东西的程度之前,他们需要进行许多流程改进。” - Matthew Flaschen
@MatthewFlaschen,没错!根据https://wiki.ubuntu.com/AppReviewBoard/Review/Guidelines 的规定,他们不会接受已经存在于Ubuntu软件库中的应用(这样就无法通过ARB更新应用),也不会接受开发库。考虑到这一点,ARB在解决这个问题之前还有很长的路要走,我对他们是否有意解决此问题产生了怀疑(据我所知,他们有着不同的目标)。 - Rafał Cieślak
4如果你能用不同的措辞来表达这个问题,而不是说“这是一个错误”,那对于不熟悉Ubuntu和Linux术语的用户来说将会非常有帮助。 - RolandiXor

Canonical(Ubuntu 的主要赞助商)从一开始(版本4)决定将 Ubuntu 按6个月的周期分发。每6个月,最新/最稳定的软件将被包含在仓库中,主要来自于 Debian 的不稳定/测试分支。

在这个周期之外,您可以通过编译软件或包括额外的个人软件包存档(PPA)来获取最前沿的软件。

Windows 选择了一种不同的策略 - 新功能通常(但并不总是)在服务包中发布。在 Windows 下情况更糟糕 - 软件供应商自行决定是否自动更新他们的软件。在我看来,这是一种混乱的策略,我经常因为某个软件的错误更新而不得不重新安装 Windows。

其他 Linux 发行版有不同的发布策略。例如,您可以使用像 Arch 这样的滚动发布发行版。当较新的软件发布时,维护者会将软件推送到他们的仓库中,如果被认为质量足够好。潜在地,这可能导致不同软件之间的冲突,因为未进行全面的测试套件。实际上,维护者做得很好,据我所读,稳定性问题很少出现。

Debian选择了另一种道路-不断完善并使用基于最稳定软件包的发行版,往往比Ubuntu等发行版中的软件包要老得多。
因此,你需要决定,是追求(大部分)稳定性还是潜在的不稳定性。

Ubuntu遵循标准的发布周期,以确保软件在发布之间经过充分测试和稳定,通过升级可以从一个版本迁移到另一个版本。另一方面,有些发行版采用“滚动”发布周期,其中软件包持续更新(最著名的是Gentoo、Arch Linux)。
由于你在与Windows进行比较,我已经过时了,所以希望你能自己回答那部分。我已经十年没有使用过那个操作系统了。

简短回答:可以。
详细回答:默认情况下不会,为了提供稳定性。
我使用固定版本和aptitude来选择安装哪个版本,从而使我既稳定又能保持最新。

Ubuntu的更新管理器非常出色,它不仅更新安全修复程序,还会更新存储库中可用的软件新版本和错误修复程序。这意味着更新经过尝试和测试,已知可以正常工作,并且不会因为使用未经测试的新版本而破坏系统...
如果您确实想要新版本,则可以查找并添加getdeb.net或其他来源的存储库,它将更新您的软件包/程序到最新版本...

Ubuntu也能实现这一点,但它有不同的策略。你可以使用Arch Linux,其中每个软件包都会更新,但这有时可能会强制你手动进行一些操作,因为Pacman(Arch软件包管理器)存在一些限制。

我不同意问题中的笼统说法。
“新功能”包有时会在发布过程中提供,有时甚至比我作为专业人士所期望的更频繁。
例如,Canonical将CUPS从1.4.4升级到1.5.0作为Ubuntu 11.10版本的一个软件包升级。虽然基本功能目前看起来是相同的,但有相当多的默认设置不同,并且在部署之前需要对我们的配置进行修改。

默认情况下,Ubuntu提供安全和推荐的更新。用户可以选择运行“软件源”并选择更新选项卡。我通常会勾选不受支持的更新(oneiric-backports),这样我就可以获得一些较新的版本。还有一个勾选框用于预发布更新,这可能会让您接触到更多但偶尔不太稳定的更新。您还可以添加感兴趣的应用程序开发流的ppa。我已经添加了gimp的ppa,这使我超越了gimp 2.6版本,进入了具有对我来说重要的一些新功能的2.7开发流。一旦添加了ppa,更新将像它们是受支持的版本的一部分一样进行。这使我在稳定性和功能之间拥有相当大的控制权。

在我看来,有太多了。我只选择了安全,但在47个待处理的问题中,很少有是关于"安全"的问题。大部分都是新功能。我喜欢我现在拥有的,所以我不认为我需要新功能。新功能难道不容易带来安全风险吗?

  • 相关问题