56在特定的Debian环境下,以及许多发行版自我描述时,稳定性并不仅仅指日常没有崩溃,而是指发行版提供的接口的稳定性,包括编程接口和用户界面。我们更应该将其视为稳定版本与开发版本之间的区别,而不是稳定版本与“不稳定”版本之间的区别。
稳定版本是指在初始发布后,内核和库接口不会发生变化的版本。因此,第三方可以在该发行版上构建程序,并期望它们在整个发行版的生命周期内继续正常工作。稳定版本为构建更复杂系统提供了稳定的基础。在RHEL中,基础发行版的更新速度甚至比Debian更慢,这明确被描述为API和ABI的稳定性。这种稳定性是向前和向后兼容的:因此,在Debian 10.5上构建的二进制文件应该在10.9上以及Debian 10的初始版本上正常工作。(这也是为什么稳定版本在给定的发布中不会升级C库的原因之一。)
这是一个重要原因,为什么很少通过升级到给定软件的最新版本来进行错误修复(包括安全修复),而是通过修补发行版中存在的软件版本来修复特定的错误。保持发布的一致性还可以使其被视为一个已知的整体,比在不断变化的系统中具有更明确定义的整体行为;减少为修复错误所做的更改的范围有助于保持发布的一致性。
对于发行版来说,稳定性的定义也会影响用户,但不是通过程序崩溃等方式;相反,滚动发行版或发行版的开发版本的用户(例如Debian的不稳定版和测试版)必须定期调整他们使用计算机的方式,因为他们使用的软件会经历重大升级(例如升级LibreOffice)。这在稳定发行版的给定发布流中是不会发生的。这可能解释了为什么一些用户可能认为Debian比Ubuntu更稳定:如果他们跟踪Ubuntu的非LTS版本,他们每六个月就会有重大变化,而不是Debian的每两年一次。
在稳定发行版中,程序最终被测试得更好,而不是在开发分发版中。但开发分发版的目标并不是比稳定分发版含有更多的错误:毕竟,开发分发版中的软件包始终应该足够好以用于下一个发布版本。在发布之前的稳定过程中确实会发现和修复错误,而且在发布周期内也可以发现和修复错误。但较小的错误更有可能在开发分发版中得到修复,而不是稳定分发版。
在Debian中,被认为会引起问题的软件包进入“experimental”而不是“unstable”。
- Stephen Kitt51你的第四段并不完全准确。对于普通终端用户来说,不太稳定的发行版并不意味着你必须经常改变系统使用方式。只有当你开始处理自定义代码(比如在许多企业场景中)时,这才成为一个问题。像Ubuntu经常强制对用户进行重大、高度可见的更改的情况属于例外,即使是使用像Arch或Gentoo这样的大型滚动发行版的人也无法容忍。 - Austin Hemmelgarn7@Austin 变化的影响可能是一个主观问题... 在我支持 Debian testing 的终端用户经验中,许多变化被视为重大,即使对于技术能力较强的用户来说,它们可能并不重大。这些变化发生得频繁且无法预测,给终端用户带来了持续的压力;而从一个非滚动发行版升级到另一个发行版可以事先计划,并且相关的变化一次性全部发生。 - Stephen Kitt2@AustinHemmelgarn 我也有一些支持非技术终端用户的经验,我不建议使用非稳定的发行版。对于通常的Linux管理员来说,他们甚至可能察觉不到的变化可能成为重大障碍。 - Nobody在Debian中,所有(新的)软件包通过“实验性”渠道进入存储库,并经过一定的筛选程序后,它们可能会进入不稳定→测试阶段,并在“测试”版本(例如Bullseye)作为新的“稳定”(例如Buster)发布时成为“稳定”状态。相比之下,RHEL对于“稳定性”或者说“API一致性”要求更加严格,这意味着在RHEL 7.0上运行的某些软件将始终如一地在RHEL 7.999上运行。 - iBug2@iBug 不,在Debian中,软件包首先进入不稳定版本,然后一旦它们在所有支持的架构上构建成功(这可以在软件包元数据中进行调整),并且在一定数量的天数内没有发现关键错误或测试回归问题,它们就会迁移到测试版本。与RHEL相比,API的一致性基本相同(尽管没有RHEL提供的书面级别保证);在Debian 10上构建的软件将在所有后续的点发布版本上继续工作。 - Stephen Kitt回答链接9什么是“稳定”的Linux发行版?
稳定的Linux发行版是指经过测试和修补开发过程的发行版。软件包必须符合严格的标准,才能从不稳定版本进入测试版本,并在最新发布的稳定版本中包含测试版本的软件包。你可以强制安装测试版或不稳定版,但风险自负。这可能因具体的发行版而有所不同。例如,在Fedora中稳定的软件包可能在Debian中尚未稳定。
使用“不稳定”发行版会有什么后果?
正如@StephenKitt在评论中所说:
“‘不稳定’的目标始终是为了准备下一个稳定版本。”
这里的软件包处于积极的开发状态,因此你可能遇到一些特定于发行版的错误、性能问题、未解决的依赖项,或者根本什么都不会遇到。
对于普通用户(即非系统管理员)来说真的很重要吗?
依赖于用户的需求。如果用户需要一个安全、强大和可靠的系统,稳定版发行是最好的选择。但这些发行通常比上游版本滞后几个版本(在Debian的情况下更多)。所以如果用户出于任何原因需要最新版本的软件包,稳定版发行可能不是一个选择。在这种情况下,切换到测试版或一些前沿滚动发布的发行可能是一个好主意。
- BlueManCZ回答链接9什么是“稳定”的Linux发行版,使用“不稳定”发行版会有哪些(实际)后果?
使用Debian Wiki来回答这个问题。
Debian发布
Debian稳定版
“稳定”发行版包含了最新的官方发布的Debian发行版。
这是Debian的生产版本,我们主要推荐使用。
当前的Debian“稳定”发行版是10版本,代号为buster。它于2019年7月6日首次发布为10版本,最新更新版本10.8于2021年2月6日发布。
Debian不稳定版
“不稳定”发行版是Debian的活跃开发地。通常,该发行版由开发人员和喜欢冒险的用户使用。建议运行不稳定版的用户订阅debian-devel-announce邮件列表,以接收重大变更的通知,例如可能导致系统崩溃的升级。
“不稳定”版本始终被称为sid。
@roaima的评论和Debian Wiki(Debian稳定版)回答了“哪个Debian版本(稳定版/测试版/不稳定版)对我来说更好?”的问题。
Debian发布的“稳定”版本始终是官方发布的Debian版本。普通用户应该使用这个版本。另请参阅Debian稳定性。
答案有点复杂。它实际上取决于你打算做什么。一个解决方案是询问一个运行Debian的朋友。但这并不意味着你不能做出独立的决定。事实上,一旦你完成阅读本章节,你应该能够做出决定。
如果安全性或稳定性对您来说很重要:安装稳定版。就这样。这是最受欢迎的方式。
如果您是一个新用户,正在安装到台式机上,请从稳定版开始。其中一些软件非常老旧,但它是最少出错的工作环境。一旦您更有信心,可以轻松切换到更现代的不稳定版(或测试版)。
如果您是一个有丰富操作系统经验的台式机用户,并且不介意偶尔遇到错误或甚至完全系统崩溃,请使用不稳定版。它拥有最新和最好的软件,而且通常会迅速修复错误。
如果您运行的是服务器,尤其是那些具有强大稳定性要求或暴露在互联网上的服务器,请安装稳定版。这绝对是最强大和最安全的选择。
以下问题(希望)提供了关于这些选择的更多详细信息。阅读完整的常见问题解答后,如果您仍然无法做出决定,请坚持使用稳定版发行版。
说“Debian比Ubuntu更稳定”只是一种观点。
- GAD3R回答链接4一个发行版被称为“稳定”,通常意味着在给定版本的生命周期内,其提供的API/ABI不会有任何破坏性的变化。
这意味着特别是针对在某个发行版上运行的软件来说,它们(大部分情况下)不需要进行任何更改,就可以继续在同一发行版上正常工作。对于企业和基础设施使用而言,这种保证非常重要,因为它意味着您可以在安全方面保持底层平台的最新状态,而无需花费大量精力来确保自己的应用程序和服务在其上正常工作。
实际上,这个概念可以超越给定版本的基本理念,延伸到发行版设计的主要方面。这也是为什么尽管Ubuntu和Debian都遵循上述稳定性定义,但Ubuntu通常被称为比Debian不够稳定的原因之一。Canonical(Ubuntu背后的公司)以对发行版工作方式进行大规模、高度可见的更改而闻名,这些更改不仅需要对运行在其上的软件进行重大更改,还需要改变用户与系统的交互方式(最早的例子是Unity和Upstart,最近的例子是他们推动所有人使用Snap软件包而不是APT)。
现在,从最终用户的影响角度来看,除非您需要那种兼容性保证或者拥有一个非典型的设置,否则对于大多数人来说,在使用“不稳定”的发行版方面并没有太大的影响,只是需要更频繁地更新以保持安全。
事实上,使用“不稳定”的发行版有一个主要好处,即你几乎总是能更快地获得新版本的软件(Debian的稳定版本就是这个反例,其中很多东西在Debian 10中落后于上游项目数月甚至数年)。如果尝试使用全新的硬件,则受益更多,因为许多“稳定”的发行版使用旧内核,缺乏对最新硬件的支持。
顺便提一下,不同的发行版对于“稳定”和“不稳定”这些术语可能有不同的定义。
以Debian为例,“不稳定”是指Debian中所有可用软件包的最新打包版本的集合。它作为他们的“测试”版本的基础,也就是Debian的下一个发布版本(但通常落后于“不稳定”),并且在自身上完全可以用于日常使用,而真正危险的领域是“实验性”软件库(其中包含的东西还没有经过足够的测试,无法确定它们与系统的其他部分是否兼容)。
相比之下,对于Gentoo(一种较受欢迎的滚动发布发行版),“稳定”和“不稳定”的区别仅仅取决于该软件包的那个特定版本经过了多么严格的测试。即使如此,“不稳定”大部分时间并不特别危险,前提是你确切知道自己在做什么(我已经使用Gentoo的不稳定版本十年了,只有一次因此导致系统崩溃而需要重建)。
大多数其他发行版介于两者之间,或者积极选择避免使用这样的术语,而是使用“发布”(隐含稳定)和“开发”、“下一个”或类似的词汇,区别基本上与Debian的“稳定”和“不稳定”之间的差异相当。
- Austin Hemmelgarn回答链接1
你会得到较少数量的常规软件包更新。
你不会得到显著更新的软件版本(可能引入新的错误、不兼容性或需要重新学习的更改)。
作为交换,其中的软件包较旧,而且随着时间的推移会变得更糟。
句子“Debian比Ubuntu更稳定”对“稳定”一词使用了稍微不同的含义。它并不是指“稳定版本”,而是指它具有较少数量的错误。
我长期以来使用过Debian和Ubuntu。我的观点是它们都没有可感知的错误数量,将它们进行比较是无意义的。这种说法可能源于Ubuntu更有可能用于图形界面桌面环境的角色,并不是因为它更多错误。
- peterh回答链接0稳定,当然意味着没有崩溃。
那么为什么Debian比Ubuntu更稳定呢?
从这个例子中你会看到。
我正在从Ubuntu软件源安装一个软件包,但这个版本恰好是有问题的。
所以我的工作被打断了。我现在面临两种选择:
要么回滚到之前的版本(使用apt很难做到),要么等待下一个发布修复这个问题。
但如果你使用Debian软件源,你应该会更安全地避免这种情况。
不同的软件包有不同的稳定性要求。我是从桌面用户的角度来说的。
对于Linux内核,你应该使用最新的稳定版本。
这意味着更好的性能和硬件支持,以及更多的错误修复,这对于桌面用户来说至关重要。
虽然内核的质量很好,但新版本中仍可能存在一些退化问题。
所以你可以使用稍旧的版本。
此外,固件、GPU驱动程序、Mesa,以及一些终端用户应用程序如LibreOffice或Firefox。
你可以使用最新版本;如果它们出现问题,你可以轻松地回滚到早期版本。
至于其他软件,如bash、dbus甚至gcc,你可能更喜欢稳定而非新版本,并且版本1.2.3和1.2.4之间可能存在差异,
但不用担心,无故障地运行稳定版本更为重要。
像Python这样的软件包,新版本性能更好。除非你清楚知道你需要这个或者你正在在一个性能关键的场景中使用Python,你可以放心地使用稳定版本。
像libc这样的软件包,它对整个系统来说是必不可少的,即使它被称为提升性能的版本,也会有新版本出现。你最好不要升级,因为很可能会破坏整个系统。使用Debian的稳定版本是很好的选择。
最后但并不是最不重要的,像Steam这样的软件包,它们会在每次启动时自动升级,你甚至没有其他选择,所以不用担心。
- neoedmund回答链接