Debian Stable和Ubuntu LTS哪个更适合服务器?

对于专业服务器使用,哪个平台更好?

Debian Stable 还是 Ubuntu LTS?

我们计划使用的第三方软件在两者上都可运行。从各自的优点来看,哪个更好?

考虑到内核(例如 Ubuntu 为服务器定制了自己的内核)和其他 Ubuntu 特定的定制。

我不停地来回切换,我需要做出决定,这样我才能向客户推荐一个。现在,我想我会选择 Debian Stable。


最近,我遇到了一些奇怪的问题。我使用的是Ubuntu Server Edition 10.04.1。
我已经设置了Ubuntu通过一个简单的脚本进行自动更新,但每隔几个月,由于冲突的软件包,libapache2-mod-php5就会被删除...这导致我的网页服务器失去了php功能。
Debian Stable从未出现过这样的情况。

1有一个软件包可以自动更新,而且不会出现软件包移除的问题。你可以点击这里查看具体操作步骤:http://askubuntu.com/questions/9/how-do-i-enable-automatic-updates/204#204 - Jorge Castro
29好问题。[坐下,等待圣战开始] - Jeremy
这个确实是在挑起争端 - RobotHumans
我刚为别人设置了一个Precise(12.04.x)的Ubuntu LTS服务器。在这个过程中,我遇到了很多类似这样的bug: https://bugs.launchpad.net/ubuntu/+source/samba/+bug/967410 这些问题已经存在了一年多,但还没有被修复。因此,我决定放弃在服务器上使用Ubuntu,转而选择CentOS或Debian。Debian和Ubuntu的好处是它们都使用apt,并且大部分软件包的名称相同。至于为什么有人会在服务器上谈论Firefox/Iceweasel呢?我甚至不会安装X,更别提浏览器了。 - user162602
2"专业使用服务器"和"自动更新"是相互矛盾的概念。 - user92125
8个回答

嗯,我不明白为什么人们对问题的质量大惊小怪。显然,这是许多开发人员在部署之前都会考虑权衡的决定。而且,显然有一些差异对于每个部署都非常相关。

我认为在debian stable和Ubuntu LTS之间的主要考虑因素和比较是安全性和一般软件包更新。

Debian“stable”发行版在下一个稳定发行版发布后的一年内得到支持。所以,如果每两年发布一个稳定版本,并且您在其推出时开始使用一个稳定版本,那么您将获得三年的更新:

安全团队试图在发布下一个稳定发行版后的一年左右支持一个稳定的分布版,除非在这一年内发布了另一个稳定的分布版。无法支持三个发行版;同时支持两个已经足够困难了。

您应该注意的是,debian节奏没有保证。稳定版会在准备就绪时发布。这可能意味着您会获得18个月到18年的支持。这使得它非常不可预测,因为您不知道何时需要升级,直到您知道下一个稳定版将在什么时候完成。

Ubuntu LTS发行版相比,桌面更新非常相似,但对于服务器应用程序和内核,您将获得长达5年的支持,无论在此期间是否有新的LTS发布:

通常每两年发布一个新的LTS版本。使用v12.04长期支持(LTS)版本,您将获得Ubuntu桌面和Ubuntu服务器的5年支持。LTS版本没有额外费用;我们以相同的免费条件向所有人提供最好的工作。
这意味着您应该能够在一台计算机上部署最新的LTS版本,并且不必担心多年来它不会获得安全更新(对于受支持的软件包)。当您拥有多台服务器或只有一些无法承受任何停机时间进行升级测试的应用程序,或者没有时间花一天/一周进行升级测试时,Ubuntu相比Debian具有很大优势。

9还应该提到的是,在一个易于维护和管理的系统上,系统管理员犯下危及安全或稳定性的错误的可能性较小。在我看来,像Ubuntu这样提供合理默认设置的系统是安全的主要因素之一,毕竟系统是由人类配置的。:-) - Stefano Palazzo
1我同意Stefano和Oli的观点:长期支持周期以及良好配置的默认设置是救命稻草。我自己管理着我的办公服务器,它是一个10.04版本的Ubuntu服务器,并且我喜欢它的配置方式。此外,由于Ubuntu在市场上占有很高的份额,所以我通常能得到很好的支持。 - theTuxRacer
现在看起来,Debian 似乎也有 LTS 版本。我不知道具体细节,因此无法与 Ubuntu 进行比较。 - Yai0Phah
@FrankScience 你是指LTS项目吗?从描述中看不出有“LTS发布版”,而是每个版本都有“LTS项目”。 - Franklin Yu

回答你关于专业/生产使用的问题,我认为有几个关键因素已经得到了解决,但我觉得还有一个非常重要的点。 软件包和软件包管理 这是Debian稳定版和Ubuntu LTS之间的一个关键区别,特别是如果你关心持久性、运行时间、稳定性等方面。
Ubuntu每六个月发布一次,基于Debian不稳定分支,这通常意味着更新和更时新的软件,但同时也有不稳定的缺点,至少在企业环境中是如此。
现在,LTS版本主要基于Debian Testing,根据Debian的说法,“代表了即将发布的稳定版本在实际上被认为是稳定之前的状态”,尽管Ubuntu在从各自的Debian分支中提取软件包后会花费大量的时间和精力使常规和LTS版本尽可能稳定,但LTS仍然基于Testing分支,而Testing分支在Debian自己的分支中仍然被认为不太适合生产使用或接近任务关键。
而且Ubuntu的开发者社区无法与Debian在同样的范围或水平上竞争,Debian可能是有史以来最大的基于社区的软件。
基本上,这意味着Ubuntu LTS是基于Debian Testing分支的,即使在Ubuntu试图在将其测试包拉出后稳定和完善它们,也无法与Debian stable及其软件包的巨大发展和成熟相提并论。Debian stable真正是坚如磐石的稳定性的黄金标准。

3我不知道为什么人们会问这样的问题... Ubuntu 爱好者梦想着不可能的事情。 - GTodorov
也许它太过稳定了。对于大型数据中心来说,这是有区别的,但对于小型数据中心来说,灵活性可能会超过稳定性。Debian软件包非常稳定,但也相对较旧。 - Vinicius Tinti
Ubuntu在关键任务应用中的部署事实表明了它的稳定性和测试性,但最重要的是其硬件支持。至于Debian,别指望使用更新的软件包或硬件。 - Arup Roy Chowdhury
1你必须知道自己的优先事项。是选择更稳定但较老的Debian,还是选择不那么“稳定”(经过充分测试)但更为更新的Ubuntu。根据我的经验,在大多数情况下,Ubuntu已经足够稳定。但如果你愿意,你也可以在Debian上安装更新的软件包,当然这是有风险的,这样你就会得到它们之间的混合体。 - Jo Smo

我在谷歌搜索“ubuntu服务器稳定性问题”时偶然发现了这个帖子,寻找关于Ubuntu服务器稳定性的答案,也是为了解决我自己对Ubuntu服务器稳定性的担忧。
我必须承认,我是一个长期以来的Ubuntu粉丝,尤其是在桌面上(从Breezy开始)。
第一台部署了Ubuntu Server 8.04的生产机器是“Fred”,它的使用需求较低;主要是一个具有4/5个网站的“宣传册级”Web服务器,同时也充当离线备份存储库。主要安装的软件包是Apache2、Mysql、Postgresql和PHP。
它是双核的,有2GB内存,2个1GB硬盘配置为mdadm RAID1。就稳定性而言,除了每3-6个月无明显原因地死机外,一直表现得很好,尽管我不断查看各种日志。
我将这台机器保持在8.04版本,并进行偶尔的更新。
第二台机器是“Charlie”。
Charlie和Fred一样,已经运行了很长时间。它被用作基于办公室的备份和媒体存储机器、办公室服务器监控节点、远程登录的网络网关、维基和虚拟机主机。 主要软件包包括:Apache2、postgresql、mysql、PHP、webmin、samba和Virtual box - Non OSE(在OSE不支持无头特性之前,我们需要这个功能)。
就硬件而言,Charlie是四核的,有8GB的RAM,大约有10TB的存储空间,分布在多个SATA和IDE驱动器上,其中一些SATA驱动器组成了一个软RAID5阵列,我们连接了一个通过Firewire连接的Drobo,还有两个外部USB驱动器和另一个即将连接的Drobo。
Charlie最初是在Ubuntu 8.04上启动的,后来通过dist-upgrade定期升级,目前使用的是10.04版本。
可悲的是,Charlie像醉汉一样不稳定。
Charlie经常出现内核恐慌、OOM(内存耗尽)问题,每2-3周就需要重新启动。仔细查看日志让我感到困惑。
总结一下:
我喜欢Ubuntu服务器,它很熟悉,布局相对合理,我喜欢aptitude(在我看来应该是默认的包管理器),像UFW,Fail2Ban,Denyhosts,logwatch,logrotate等软件和应用程序使管理相对简单。但是,两个Ubuntu服务器的正常运行时间仅为数周或数月,如果我们很幸运的话,并且在此期间我们更换了硬件并重新安装了操作系统,测试了磁盘和内存。相比之下,我有一些HP DL360 G5、DL380 G5和DL380 G6的集群,它们的正常运行时间以年计算,有时甚至达到1000多天。它们运行的是CentOS - 它不像Ubuntu服务器那样吸引人,但似乎更加稳定,但我不知道这是因为硬件还是操作系统的原因。这只是我的个人看法。

1Ubuntu的内核会根据需要进行修补,而LTS版本则是根据使用情况来决定是否进行修补,这与其他操作系统不同。将Ubuntu与CentOS进行比较就像将一辆福特Pinto和一辆雪佛兰Camaro进行比较。 - Arup Roy Chowdhury
你是指福特Punto吗? - BigSack
1说得好!Ubuntu适合热爱者,而不是用来满足你的重要商务需求。 - GTodorov
1@BigSack Punto 是菲亚特的车款。 - The Onin

我现在已经测试了2年的Xen虚拟化技术,总的规则是新的内核=更高的性能/稳定性。在这方面,Ubuntu LTS几乎就像带有支持的Arch Linux。Debian在使用Intel/Nvidia时表现良好,但一旦涉及到AMD,问题就出现了。Debian的测试版本中的xenkernel对于AMD FX 81xx处理器仍然没有修复bug的补丁,更不用说“稳定”版本了。庞大的社区固然好,但每次需要响应时,Canonical的反应速度都更快(可能是巧合)。
我认为再过3-4个月,我将会有足够的统计数据来明确地说,但我相信所有的虚拟化技术都将迁移到Ubuntu服务器上。

看到ByteCode的回答,我想提供一下我在工作服务器上使用Ubuntu LTS的亲身经历。
配置:AMD 1055t,4GB内存,4TB硬件RAID5,拥有轻微超频的业余主板。有很多风扇,4个RAID驱动器是外置的,并且安装在一个大型铝制板上,另一侧是铜散热器。
我认为是2011年安装了Ubuntu 10.04 LTS。可能是2010年。从来没有进行过升级。实际上很少更新,因为我没有经常这样做,然后依赖关系被破坏了。它在2011年9月当圣迭戈停电数小时时关闭。然后下一次是今年我把它移到了一个柜子里。
我的诀窍?完全不理它。很少更新,如果更新了,我使用aptitude。昨天我们连续3次停电。本应该一直关闭它,但最后一次HDD出了问题,Ubuntu无法启动。所以现在是新的HDD,我正在安装Debian,因为从我的阅读来看,似乎Debian更适合安装和忘记。

编辑/更新1.5年后

Debian在我的最新服务器上安装并不像我希望的那样容易,所以我又回到了最新的Ubuntu LTS版本。如果没有因为需要从zfs raid中移除几个故障硬盘而不得不关闭服务器,运行时间本可以更长达29天。我已经将Ubuntu用作工作文件服务器已经有半个十年了,它非常稳定可靠。我从未怀疑过操作系统的问题。当那台AMD系统开始出现内核恐慌时,它甚至拯救了我,因为内存出现了问题。

我从未购买过Windows服务器,但是每年至少有一次,我们的Windows电脑进行更新后重新启动后就变得不太一样了。在Linux上从未遇到过这种情况...


1只是一个快速的建议。买一个UPS。 - DevRandom
永远都要做,永远都会做。心里记住:在新的服务器监控UPS并设置优雅关机... - Krista K

直到最近,支持生命周期的长度都差不多,所以这并没有太大的区别。最新的Ubuntu LTS(18.04)提供了10年的支持,而不是通常的5年。
迁移是昂贵的,因此对于Ubuntu来说,10年的支持是一个巨大的优势。
来源:

你从哪里得到了“10年的支持”这个信息? - abu_bua
多个链接:https://www.serverwatch.com/server-news/canonical-extends-ubuntu-18.04-lts-linux-support-to-10-years.html https://itsfoss.com/ubuntu-18-04-ten-year-support/ https://en.wikipedia.org/wiki/Ubuntu_version_history - ericcurtin
ubuntu-distro-info -raf -yeol 没有更新吗?! - abu_bua
嗯,也许这个还没有更新。这是最近公布的消息。 - ericcurtin

术语和“专业使用服务器”的含义 对我来说,“专业使用服务器”这个术语包含了很多属性。 回答这样的问题有时候很困难。
例如,“稳定”一词对我们中的一些人来说意味着软件不会崩溃。 而对于其他人来说,“稳定”也可能意味着一个被发布/标记为“稳定”的软件,在下一个版本发布之前不会发生变化,例如发布GNU Debian Lenny,然后是GNU Debian Squeeze。 正如你所看到的,“$stable” ≠ “stable” ;)
安全性是另一个弹性术语。例如,Ubuntu在编译和构建其软件包时始终使用最新可用的安全编译标志和功能。 例如堆/栈缓冲区溢出、地址空间布局随机化(ASLR)或位置无关可执行文件(PIE)。GNU Debian在其稳定版本“Squeeze”中仍未实现PIE,因为源代码必须进行调整以便使用这些安全标志进行编译,并且根据GNU Debian的稳定性政策,在运行的版本中不更改事物。然而,计划在下一个版本(Wheezy)中启用这些功能,该版本目前位于测试分支中。
软件许可可能也是一个问题。GNU Debian花费了很大的努力来明确软件许可问题,例如Iceweasel与Firefox之间的问题...话虽如此,GNU Debian也付出了巨大的努力,为您提供广泛的真正自由软件,稳定且适用于生产使用。另一个例子是Linux内核的主要部分仍然遵循GPLv2协议,因此GNU Debian不像Ubuntu那样频繁使用非免费供应商驱动程序。这导致Ubuntu具有更广泛的硬件支持。另一方面,选择GNU Debian时,您将较少受到其他公司的专利和基于软件许可的业务的影响,从而减少利益冲突。
最后,您必须选择最符合您需求的GNU发行版。

有很多事情需要考虑,包括。
哪个版本更新。由于Debian stable和Ubuntu LTS在不同的时间发布,因此在您安装时,其中一个可能会有您关心的软件包的更新版本。现在Ubuntu LTS比Debian stable更新,但当buster发布时,情况当然会改变。
您关心哪些软件?Ubuntu在主要软件包和宇宙软件包之间有区别。Canonical支付人员负责提供主要软件包的更新,而宇宙软件包的更新则由社区负责,并且大多数软件包是从Debian导入的,没有Ubuntu的人员查看过。Debian没有这样明显的区别。
回溯内核,Ubuntu将常规发布的内核回溯到上一个LTS版本以进行“硬件启用”,并将这些新内核包含在安装媒体中。Debian也会回溯内核,但方式更加临时,而且不会将这些回溯的内核包含在安装媒体中。
支持生命周期,Ubuntu LTS版本传统上对主要服务器软件包提供5年的支持周期。显然,最新的LTS版本将此增加到10年。Debian通常在下一个发布版本之后提供常规支持(通常是从初始发布开始的约3年),在最近的发布版本中,还有另外几年的“lts支持”,尽管仅针对LTS团队认为足够重要的软件包。
Canonical提供官方付费支持,虽然Debian肯定也有付费支持选项,但没有一个是官方的。

这些中哪些是最重要的,这是一个你需要根据你特定的应用来考虑的问题。