Kar*_* T. 4 linux freebsd gentoo source
我想知道一般偏好是什么,它来自哪里。在积极使用 FreeBSD 几年后,我倾向于使用 Gentoo,但我有过浪费宝贵时间的不愉快经历,因为 Gentoo 安装在一台非常旧的机器上,构建时间很短。
如果它是基于预先构建的包,那么浪费的时间就会更少。(我知道 FreeBSD 有二进制包,但这些包的问题在于它们似乎在版本发布后就没有维护了,获得新东西的唯一方法是自己编译它。真的不了解 Gentoo)。
您对此有何看法,您是否有任何经验使您从基于源的发行版切换到其他发行版?
编辑:我想我应该澄清一下最近的“我的经验”
故事是这样展开的。换了工作后,我必须维护一台相当旧的机器,它承载带有办公室用户登录信息的 LDAP (OpenLDAP)。我不得不重新启动野兽(它没有重新启动 8 个月)。重启后,OpenLDAP 没有上线。似乎 slapd 和其他一些二进制文件在系统运行时以某种方式被删除了。第一次构建 ldap 包后,我想知道为什么我没有得到 slapd 二进制文件(花了 15 分钟)。一段时间后,我将问题追溯到默认情况下打开“最小”标志,它只构建库,没有服务器二进制文件。最终结果 - 大约 1 小时的办公效率低下,同事们借口“我没有这样做,因为我们的主服务器停机了”。
——
非常感谢您的回答,但到目前为止还没有令人信服的论据来使用基于源代码和基于预构建包的。如今,存储空间不再是问题。
Dan*_*ley 15
我维护了相当多的 Gentoo 机器。
不是因为我们关心幼稚的 funroll-loops 速度调整。我们关心的是准确安装我们想要的东西的灵活性,而不是贡献者认为我们有一天可能想要的每个包功能和依赖项。我们非常熟悉 Linux、编译和库的工作方式。我们不希望一切都从我们身边抽象出来,变成一个黑盒子。
您应该选择使用您觉得最舒服的方式。这里有一些细节可能有助于减轻您对 Gentoo 的恐惧。
在现代硬件上,构建时间相对可以忽略不计。如果您的机器具有 N+1 冗余,则更是如此。
你可以对 portage 的行为很挑剔,比如MAKEOPTS="-l 1.0"
在你的 make.conf 中放置以确保当平均负载爬升到令人不舒服的高时新构建的回退。
如果您愿意,可以使用 Portage 的二进制包。镜像提供了许多常见的包,或者您可以使用--buildpkgonly
.
如果您有大量机器,那么您可以从指定的构建主机或分布式编译中受益。
现在正在使用的最新稳定版 Portage 不太可能在执行升级时让您高枕无忧。冲突和障碍的故事几乎已成为过去。
如果你正在照顾这么多升级变得痛苦的机器,那么无论如何你应该看看 Puppet/BCFG/cfengine ;)
更新以回应问题编辑:
虽然我对您所描述的情况深有同感,但这并不是基于源的发行版的症状,也不是使用基于包的发行版来阻止的。它是以下结果:
说实话,我已经有一段时间没有广泛使用任何其他 Linux 发行版了。出于这个原因,如果您将一台 Debian 机器(例如)放在我的腿上并告诉我重启后 OpenLDAP 不工作,那么我也可能会花 15 分钟或一个小时来解决这个问题。不是因为我对 Linux 不太了解或者 Debian 不是一个好的操作系统,而是主要是因为我不记得 Debian 的 RC 脚本或软件包系统的私密细节。这就是为什么内部文档在组织内是必不可少的。它应该有助于启动不熟悉的事物并填补其他人的空白。即使他们什么都知道。
只是一个关于 Gentoo 的快速说明。Portage 的 USE 标志非常有用,“最小”是我经常使用的东西。例如,我不希望将一个包的服务器二进制文件安装在一台机器上,该机器在其生命周期内只会成为客户端。让它们不必要地出现可能会增加复杂性,甚至是一个安全问题。这从来都不是空间问题。在开始使用-av
参数进行编译之前,您可以查看包将采用哪些 USE 标志和依赖项(以及哪些不是)。所以你不应该得到惊喜。
GNUix> 对不起,啪!
我不会评论你是否应该使用 Gentoo - 或者从源代码构建是否“值得”
我要说的是我使用 Gentoo 和 Ubuntu。我曾经在我所有的 GNU/Linux 机器上使用 Gentoo,但我认为桌面上的 Ubuntu 更易于管理。我站在管理员一边,认为将 Gentoo 用于服务器是一个好主意——并且几乎将它用于我所有的个人服务器。
除此之外,除了从源代码构建东西或调整 CFLAGS 之外,我更喜欢的是 Portage。Portage 是我曾经为 GNU/Linux 使用过的最好的软件包和系统管理工具。我可以只用我需要的东西创建一个精确的环境,而不是更多的东西,而且我可以在不离开我的包管理系统的情况下做到这一点。我不必安装 postfix 仅仅因为一些打包人员认为它是“必要的”。我不需要安装单声道,因为我想运行 Gnome,我只是不安装 Tomboy。在这个 Ubuntu 桌面上快速浏览已安装的包,显示它已经安装了 bind?为什么?它没有任何用处,我没有在这台计算机上运行 DNS 服务器,我当然不需要它的文档,但它在这里。
缺点...时间。不仅需要时间来构建软件包,还需要维护系统。我可以非常确定我可以运行 sudo aptitude update {upgrade} 而不必在乎......另一方面,当你更新 Gentoo 机器时,你必须非常小心小细节,并确保你需要(并准备好)它想做的事情。“把骆驼折回来的稻草”是我为什么在桌面上切换到 Ubuntu 的原因,这是 udev 的升级,它破坏了我的设置——而不是尝试修复它,我想得到我想要做的工作完毕。所以我想我真的不在乎绑定文档是否占用我桌面上的空间,因为我有空间。
然而,在我的服务器上,完全不同的事情。我想控制关于环境的一切,安装的包,我想控制的每一个小细节——而 Gentoo 让我轻松地做到这一点。