为什么大多数发行版(Debian除外)在升级到新版本时都建议/要求完全重新安装?


10

我在Linux上度过了大部分的生命,并且一直在使用Debian,我一直在看其他发行版,对于它们不能在各个版本之间提供平滑升级的程度感到非常惊讶。Debian可以无限升级,现在我已经通过几个主要的稳定版本进行了升级。

我说的是Fedora(及其衍生产品),甚至Ubuntu及其衍生产品等受支持的发行版。甚至像CentOS这样面向服务器的稳定发行版。

是因为Debian的软件包管理系统和软件包升级脚本比其他发行版所提供的要先进得多吗?

还是从总体上从头开始进行重新安装只是一个更好的主意,而不考虑发行版?

Answers:


6

这是多种因素的结合。

大多数发行版都使用主要发行版作为实施重大(有时是重大更改)的时间。例如,Fedora 15在6.10中添加了systemd,而Ubuntu在6.10中添加了新贵。Debian在许多方面都是非常保守的发行版。巨大的突破性变化被皱眉了。

这样做的结果是,例如,Debian的发行周期相差太远,因为它们要求修改每个重要的软件包以符合新发行版的标准。

Debian的软件包管理技术并不优于Fedora或Ubuntu的软件包管理技术(显然,因为它与Ubuntu的相同),但是Debian从文化上决定,拥有一个平稳的升级系统很重要。


5
更准确地说,他们认为在生产服务器中不需要的是必须从头开始重新安装它以升级其上的软件。
Shadur

即使使用Fedora,如果可能的话,通过安装程序执行(单版本)升级也会尝试针对基础架构更改进行DTRT。
伊格纳西奥·巴斯克斯

1

为了更具体,我在升级时在许多发行版上遇到了问题。例如,Ubuntu会在版本之间大幅度更改其已安装的软件包基础。如果执行传统的“ dist-upgrade”,则已安装的软件包将更新为新版本,但最终结果缺少新的阵容更改。如果将默认安装中的软件包降级,仅降为“受支持”或更糟的“不受支持”,您仍将保留该软件包。如果默认安装中现在有新软件包,则不会安装它。即使您的发行版在技术上是升级发行版,也不能反映新发行版的体验。同样的情况也非常准确,将CentOS5与CentOS6进行比较时,他们完全重新组织了包装名称。

Debian优先考虑平滑升级,但要付出如此巨大的改变。这就是为什么Debian在较新的功能上速度较慢的原因,对于他们的社区来说,这种折衷是可以接受的。为了回应先前的答案,它与包管理技术本身无关。我会说,不断的Ubuntu重新安装正在困扰我。


Ubuntu包括一个特殊的升级工具,据说它不仅可以进行dist-upgrade升级,还可以完成更多工作。您了解更多有关信息吗?
trr 2012年

1

您声明的内容并非整个滚动发行版系列都适用。

对于系统维护软件而言,仅升级系统的某些部分或在整个升级过程中保持配置一致性时,解决跨程序包兼容性问题更具挑战性。需要调整各种软件包以使其相互配合。

这就是为什么提供系统更新最简单(即最可靠,同时需要最可靠的解决方案)的解决方案是定期准备完整的,经过全面测试的完整安装版本。红帽等企业解决方案的立场是,必须为客户端提供可靠的系统,并且要尽可能长时间地中断升级,从而使他们感到困扰。(当然,次要的升级和错误修正必须可用,甚至自动拉出)。这也是CentOS等免费服务器发行版背后的一般哲学。

为最终用户提供版本之间的无缝升级途径对系统开发人员来说是一个巨大的挑战。许多发行版选择不为此牺牲自己的稀缺时间。许多流行的软件包(例如QT)很难升级,常常需要完全重新安装。更重要的是,许多项目显示出开发工作量减少或被新技术取代。对于系统软件包,这通常需要重新设计系统。如果迁移程序必须考虑到某些人想从C版本升级到D,但另一些人将要从B或A或从中间的某些自定义状态切换的事实,则实施迁移程序可能尤其困难。

因此,您可能已经猜到了,最具挑战性的方法是滚动发布。我不知道Debian的方法的细节,但是从您的描述中我可以看到它们位于中间位置。


Debian完全支持从以前的稳定版到当前稳定版的升级。由于它们相距2或3年,它们涉及主要过渡,例如glibc,KDE 3到4,即将到来的Gnome 2到3等。您提到有些软件包很难升级,必须重新安装-这就是已知的在Debian中是“重大过渡”,但他们的软件包管理器完全有能力管理它们,并且为最终用户提供了全面的测试和支持。我认为与思维定势有关的事情比您声称的要多得多-Debian认为这是正确的方法,因此他们得以实现。
trr 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.