平衡(当前性vs稳定性)linux服务器分布

我是桌面和服务器上的Gentoo的长期用户。 作为一名软件工程师,我喜欢它的灵活性和可定制性(以及这是一个前沿和滚动发布的事实)。 但是对于我的新服务器,我想用不同的发行版。 主要是因为编译所有东西都会成为虚拟服务器上的障碍,但也是因为Gentoo太过于stream血,有时候更新版本应该已经被更好地testing和推迟了。

(作为一个方面说明:多年来,我已经成功地部署/维护了几个Gentoo机器,大部分时间,事情变得非常顺利,机器很棒。)

所以我想问问社区根据经验(而不是意见)的build议什么分布将最好地符合以下标准:

一般

  1. 滚动版本或非常好(可靠)的就地升级path
  2. 既没有完全过时,也没有绝对出血的封装存储库
    • Python 2.7 / 3.3(系统将主要部署python / django应用程序)
    • 最近的gcc(> = 4.7)
  3. 维护良好,良好的社区
  4. 灵活和可定制
    • 应该可以并排安装不同的gcc或python版本

安全

  1. 签署(或以其他方式保护)软件包储存库
  2. 理智/安全的编译器标志(为了安全性而不是性能)
  3. 及时的安全更新和专门的安全团队/公布名单

想到的是CentOSDebian,但不幸的是,这两者在包装方面都比较落后。

我正在关注Ubuntu,但他们正式支持的软件(主要/限制性回购)与宇宙或其他发行版相比是相当小的。 我也不是很确定他们维护官方软件包的安全性(关于安全性问题),我不太喜欢他们的公司(=封闭)心态,因为在做出影响他们用户的决策时。 在一个侧面说明:我最近安装了一个朋友12.10桌面,并没有真正的印象。

ArchLinux接近Gentoo ,减去包编译,恕我直言。 我还没有自己尝试过,但是立即脱颖而出(负面的)是相当小的核心团队和失踪的安全团队。 似乎没有专门的安全列表,他们只是最近才整合了包裹签名(我不知道这是否是强制性的)。 也有相当多的软件包只能通过AUR或不同的方式来支持。 关于这件事我没有什么可说的。

OpenSuSE也是我正在关注的,但是我最后一次尝试SuSE的时间是在内核1.x天,诚实地说(当时我是一个非常年轻的怪胎:P)。 所以我现在对它的现状几乎一无所知。

Fedora老实说也是我曾经想过的。 它通常很好的维护和(如果不延迟几个月)有一个很好的发布时间表。 另一方面,我读了很多关于Fedora 18的坏消息,特别是升级path。 而且这绝对是非常stream血的边缘。

没有多less我可以添加到这个相当长的职位,除了感谢您阅读本,并花时间。 🙂

UPDATE @ 2024UTC

我觉得我需要更新我的问题。 即使我绝对同意给出的答案,但他们并不是我所期待的。 所以这里有几点希望澄清我的情况:

  • 我一直在维护服务器10年以上,所以(至less现在是这样),我没有考虑聘请某人来帮助我或者减轻负担。

  • 我知道我的Linux的方式。 这是我的主要系统15年左右。 而作为一名软件工程师和极客,我不会把它交易给世界。 🙂

  • 我正在根据我提到的不同发行版的经验寻找build议。 我知道我可以将所有这些安装在虚拟机中(最后我会列出最后的名单),但即使我认为xy发行版的function非常强大,但是它绝对没有提到它的维护方式。 或者一旦有新的发行版,道路是多么的坎坷。 只有时间可以告诉。 而这样的事情,我正在寻找。 经验一个简单的testing运行一个星期不能显示。 基于经验的build议,只有长期使用的分配。

我还必须强调,我在上面的原始文章中的列表,几乎总结了什么对我很重要。

服务器故障不能为你select一个操作系统 – 你需要自己做出这个select。
在你应该考虑的许多事情中,大概的顺序是:

  1. 应用程序供应商支持
    您需要的软件是否在有问题的分配上运行

  2. 内部(或区域可用)知识库
    你有没有系统pipe理员熟悉有问题的分配?
    如果没有,你可以在合理的本地雇用他们吗?

  3. OS供应商支持
    该分销商是否得到了供应商的良好支持?
    你能得到适当的支持合同(以合理的成本)吗?
    有没有适当的沟通渠道(安全@等)?

  4. pipe理function
    你怎样才能让许多系统与同一个软件包“同步”呢?
    如何pipe理/更新多个系统而无需手动触摸每个系统?


请记住,“当前”和“稳定”通常是相互排斥的要求:
保持软件包靠近或者接近边缘的发行版必然会有更频繁的更新,发布更新的可能性更大,这会破坏您的环境,并有可能出现安全问题。

在评估一个操作系统供应商的时候,你应该寻找一个运行“合理的最新”版本的软件(也就是说,运送Apache 1.x的任何人都应该是正确的,应该运送带有已知安全漏洞的软件,除非他们正在使用本地补丁),但除非您有特定的需求才能获得最新版本的最佳版本,否则只要您的操作系统供应商满足您的需求,就应该满足您的操作系统供应商的要求。
诚实地问自己:“如果我的Perl 5.12而不是5.14,会影响我的日常操作吗?”,除非答案是“是的,我需要5.14因为X 不要担心。

还要记住,你不需要使用任何程序的系统版本 – 只要你愿意承担这个责任,你可以随时安装和维护自己的版本。 这就是像Puppet这样的pipe理工具开始有用的地方。


如果您不熟悉各种发行版本及其当前的function集,那么您需要花费几个小时的时间来处理VirtualBox或类似的桌面虚拟化软件,并在缩小范围之后对每个软件进行评估。
确定您最适合维护哪种分配方式,因为您可能需要pipe理好几年。

我在生产环境中使用了Gentoo,SuSE和Fedora … 我对生产工作的普遍偏好是RHEL或者CentOS ,但是上面提到的每个版本都需要有限的容量来处理特定的function。

Gentoo很难扩展…可以完成,但它不是一个“它只是正常”的分配。 你已经承认这一点。

SuSE在我所在的地区没有思想观念,所以这可能成为招聘和寻求专业知识的潜在障碍。

对于Red Hat和CentOS工程师来说,Fedora是非常熟悉的,仍然有用(有更多的人才可以pipe理它)。 问题在于版本之间的升级path…这会影响Fedora以及RHEL / CentOS 。

但是,如果您正确执行此操作( DevOps方式),则不会进行完整的就地升级。 系统和应用程序的部署应该是自动的,可重复的,以便重新部署到重build的服务器上,而不是尝试升级操作系统。