乘坐 Gentoo 列车之旅

作者:Mike Diehl

在 Linux 社区中,我想不出比比较 Linux 发行版更能引发宗教战争的方式了。我无意声称我最喜欢的发行版是最好的;我只是想指出 Gentoo Linux 的一些特性,这些特性使其在其他一些更流行的发行版中脱颖而出。

多年来,我使用过许多不同的 Linux 发行版,包括 Slackware、Red Hat、Mandrake、Yellow Dog、SUSE、Knoppix、Caldera,最终选择了 Gentoo。当我刚开始使用 Linux 时,我用的是 Slackware——那时它还能装在 14 张 3.5 英寸软盘上,包括 X Window System。当我意识到包管理有多方便时,我转到了 Red Hat。切换到 Mandrake 很简单,因为它也是基于 RPM 的,并且具有 Pentium 优化的软件包,这在当时很好,因为 Red Hat 仍然是为 i386 编译的。最后,一位同事向我介绍了 Gentoo,我就再也没有回头。

Gentoo 是一个完全基于源代码的发行版,这意味着您不是通过使用包管理器安装预编译的二进制文件来安装软件。使用 Gentoo,您几乎从头开始编译所有内容,这都由 Gentoo 包管理器 emerge 控制(稍后会详细介绍 emerge)。

在本文中,我将重新审视使用基于二进制包的发行版。在这个领域,我认为 Ubuntu 和 Fedora 是主要的竞争者。

为了体验 Ubuntu 系统,我从 Ubuntu 网站下载了 Ubuntu 8.04 桌面版。在 VirtualBox 下启动 CD 镜像后,我能够试用 live CD。live CD 还为我提供了将系统安装到硬盘上的机会,我也这样做了。我不得不说,我对这一切的简易程度印象深刻。系统直接启动到桌面环境,没有显示任何内核消息。从那里,我能够访问本地 Windows 网络邻居和一个完整的 OpenOffice.org 套件。一切似乎都“开箱即用”。在使用新系统一分钟内,我收到一个弹出消息,指示有新的更新可用。我选择让系统执行更新,更新过程非常顺利——我喜欢更新是这样的。

起初,我有点困惑,因为即使我执行的操作通常需要 root 权限,系统也从未要求我输入 root 密码。事实证明,Ubuntu 有一种机制,允许系统用户执行许多特权功能,例如挂载媒体、安装软件和重启机器,而无需知道 root 密码。当然,我以前用过 su 和 sudo,但 Ubuntu 的系统似乎更广泛、更精细——并且包装在一个漂亮的 GUI 中。总的来说,我对能够如此快速地开始使用 Ubuntu 系统印象深刻,甚至在不知道 root 密码的情况下。最终,我发现了如何“解锁” root 帐户,但我怀疑许多 Ubuntu 用户永远不必求助于这种琐事。

我对 Ubuntu 的整个体验非常像 Windows,但不是以垄断、简化、UNIX 模仿者的那种方式。我印象非常深刻,并且很容易看出几乎任何人都可以下载 Ubuntu CD,并在几分钟内启动并高效运行。

当我去 Fedora 网站下载 Fedora 9 安装 CD 时,我可以选择下载六张 CD 或一个 3.6GB 的 DVD 镜像。还有一个网络安装 CD,但它需要通过网络访问其他 CD,我不想花时间设置。我选择开始下载 DVD 镜像,然后去睡觉。早上,我开始安装。在安装过程中,我可以选择进行桌面/生产力、Web 服务器或编程安装。我选择了桌面安装。安装完成后,系统重启后,我看到了一个 GNOME 桌面环境,其中预装了 OpenOffice.org,就像 Ubuntu 一样。我发现 Fedora 的菜单结构更直观一些。系统需要 root 密码才能执行特权功能,这让我感觉像是在熟悉的领域。

通过单击“立即自定义”框,我有机会更精细地确定要在我的新系统上安装哪些软件。例如,我看到我可以将我更喜欢的 KDE 环境替换为 Fedora 默认安装的 GNOME 环境。当然,由于 Fedora 是一个基于 RPM 的发行版,我可以随时安装新软件。

Fedora 是一个由 Red Hat 赞助和社区支持的项目。Red Hat 的赞助对我来说意义重大,因为我曾直接与一些我使用过的 Red Hat 开发人员打交道,而且我一直有积极的体验。对我来说,Red Hat 是开源商业模式的典范。它是一家营利性公司,为开源开发提供资金和支持。由于它是一家营利性公司,Red Hat 产品许可在商业领域很容易销售。管理人员往往想知道他们的核心操作系统在可预见的未来将得到文档记录和支持。

本文的其余部分重点介绍 Gentoo Linux 发行版。我对 Ubuntu 和 Fedora 的介绍是有意肤浅的,因为我认为大多数 Linux 用户以前都安装过 Linux,并且了解包管理的工作原理以及通常需要在新机器上完成哪些配置。借鉴这种经验,我们可以更好地讨论 Gentoo。

虽然 Gentoo 确实有一个带有图形安装程序的 live CD 镜像,但我通常下载最小安装 CD。它只有 50MB,因此通常找到空白 CD 比下载它花费的时间更长。安装 CD 启动后,您将看到一个具有 root 权限的 bash shell 提示符,仍然从挂载的 CD 镜像运行。正如印第安纳·琼斯曾经说过的那样,“我们从这里开始走”。从这一点开始,我们手动执行所有安装步骤。

Gentoo 文档非常详尽,虽然我不建议您将其发送到激光打印机,但它非常值得一读。幸运的是,它也进行了颜色编码,因此经验丰富的 Gentoo 用户可以快速完成这些步骤,而不会跳过任何步骤。该文档将指导您完成驱动器的分区和格式化,以及安装基本系统,系统的其余部分都基于此构建。

在安装过程中,您可以配置系统的几乎每个方面。例如,Gentoo 为您提供了一个 /etc/fstab 模板,但您必须填写详细信息。最后,您配置并安装 GRUB,然后重新启动。

当您首次登录到新的 Gentoo 系统时,您将面对一个完全精简的 Linux 版本——没有端口映射器,没有 Apache,没有 (x)inetd,什么都没有。SSH 守护程序甚至默认情况下都没有运行!这有点像十字路口。您是要构建 Web 服务器、文件服务器、邮件服务器还是桌面?现在您只需安装需要安装的软件,并且 安装需要安装的软件。

在安装过程中,您将遇到一些 Gentoo 特有的概念:portage 和 use flags。

Portage 是 Gentoo 的包管理系统。虽然由一堆 shell 脚本组成,但 portage 本质上是一个数据库,它告诉 emerge,Gentoo 软件安装程序,如何下载、构建和安装任何给定的软件包。Portage 还负责计算包依赖关系。安装一个新的软件包就像输入一样简单emerge apache,然后 emerge 确定需要哪些其他软件包,下载所有需要的软件包,按顺序编译它们,并安装生成的二进制文件。虽然不依赖于图形环境,但这是一种非常好的软件安装方式。

如果您倾向于更图形化的体验,kuroo 允许您执行 emerge 可以做的任何事情,但使用点击界面。没有比这更容易的了。

基于源代码的软件安装非常巧妙,但 Gentoo 的 use flags 使其尽可能地可定制。Use flags 是一种机制,可让您决定应将哪些可选功能编译到系统中。例如,通过设置或重置 MySQL use flag,您可以确定 Qt 是否在编译时包含 MySQL 支持。如果您省略 MySQL 支持,您还可以消除 MySQL 依赖项。因此,通过仔细调整 use flags,您可以将系统精简到其基本必需品,而基本必需品更易于保护和维护。

从源代码安装的另一个好处是,您可以配置 GCC 以利用您正在使用的特定芯片组。此功能以及 use flags 都在 /etc/make.conf 中配置。例如,通过告诉 Gentoo 您正在使用 AMD 处理器,您可以使 GCC 能够编译您的软件以利用任何 AMD 特有的指令。在 Pentium 4 计算机上运行的 Gentoo 系统将利用 P4 的特性,而这些特性是 PIII、AMD 或 PowerPC 架构所缺乏的。

我没有任何可靠的数据来支持我的主张,但当我为 AMD Athlon 而不是当时的通用 Pentium 编译 KDE 时,我感受到了差异。随着 Intel 和 Athlon 之间的差异越来越大,此功能在未来将变得越来越重要。

Gentoo 的魔力在于,您不仅可以 精确 地确定在您的系统上安装哪些软件包,而且在确定这些软件包的编译 方式 方面也具有相当大的灵活性。我过去常常嘲笑普通的 Windows 安装会安装多少垃圾,并且担心 Linux 会效仿这种趋势。没有理由安装您不打算使用的软件,而不安装软件有很多优点。Gentoo 让您可以控制,以确保您的系统只安装您打算使用的软件包。例如,Web 服务器或邮件服务器没有理由安装 X Window System。

我已经使用 Gentoo 几年了,我发现 Gentoo 邮件列表是完全无价的。与一些其他主流 Linux 发行版的邮件列表不同,Gentoo 邮件列表成员似乎明白 Gentoo 有其独特的问题,并且他们对新老用户都非常有耐心。我从来没有因为问听起来很愚蠢的问题而被屈尊俯就或侮辱。

我不得不说,Gentoo 社区是首先使用 Gentoo 的更有力的理由之一。社区明白 Gentoo 有一个学习曲线,并且他们完全有能力帮助人们攀登它。

唉,Gentoo 并非没有缺点。大多数新的 Gentoo 用户很快意识到,构建 Gentoo 系统可能需要时间,有时需要很多时间。虽然 Ubuntu 系统在不到十分钟的时间内就可以启动并运行,即使在虚拟机下也是如此,但典型的 Gentoo 系统可能需要数小时才能从头开始构建。我喜欢告诉自己,一分钱一分货,并且在安装过程中花费的时间的初始投资最终将在提高安全性和易于维护方面获得回报。总的来说,我会说这种时间投资是值得的。因为我的服务器上没有安装那么多软件,所以它们不需要经常打补丁,而且它们非常稳定。但是,Linux 本身就非常稳定。

许多新的 Gentoo 用户感叹缺少图形安装程序。而且,虽然图形安装向导很好,但我认为,通过亲自动手配置系统的每个方面,您可以更深入地了解您的系统。当您开始构建任务关键型服务器和工作站时,深入了解您的服务器开始变得有意义。此类服务器不需要安装 X Window System 或任何其他无关的软件。最终,我认为,大多数 Gentoo 用户最终都会编写安装脚本,并且由于不涉及 GUI,因此这个过程相当容易。我有一个安装脚本,我对此非常满意。

Gentoo 系统的另一个主要缺点是,有时 Gentoo 维护人员决定进行重大的架构更改。由于 Gentoo 用户从头开始编译他们的系统,因此他们无法免受这些各种类型的更改的影响。我记得维护人员决定完全重做 Gentoo 的网络配置方式。旧的配置相当简单直观。下一个配置需要一个 30K 的配置文件。当然,这个配置文件的大部分是注释,但仍然令人望而生畏。公平地说,结果是一个系统,它不仅可以配置标准的以太网,还可以配置 Wi-Fi、VPN 和各种深奥的网络配置。由此产生的机制非常优雅,但过渡有点痛苦。

那么,作为一名长期 Linux 用户,我的建议是什么?好吧,如果您想启动并运行 Linux 系统,并且没有或几乎没有 Linux 背景,请尝试 Ubuntu,特别是如果您是一位开明的 Windows 用户。我认为您几乎可以立即适应 Ubuntu。我也差点被吸引住了。如果您习惯了标准的 Linux 安装过程,或者如果出于政治原因,您需要企业支持,我衷心推荐 Red Hat 或 Fedora。但是,如果您想要更可定制的东西,或者如果您想在完全不同的层面上学习 Linux,我建议尝试 Gentoo。从头开始完成安装 Linux 机器所需的所有步骤具有教育意义,并且可以使您对 Linux 发行版维护人员为我们其余人所做的所有工作产生深刻的赞赏。

作为最后的评论,我想提一下,大约每六个月,Gentoo 用户邮件列表上都会有人问 Gentoo 是否适合生产环境。我的回答很简单。我的所有生产服务器,以及与工作相关的工作站和笔记本电脑,都是 Gentoo 系统。此列表包括生产邮件和 Web 服务器、生产 Asterisk 服务器以及我根本离不开的工作站。所以,是的,Gentoo 已经为生产环境做好了准备。

Mike Diehl 是新墨西哥州阿尔伯克基的一位专业计算机爱好者。Mike 与他的妻子和三个小男孩住在一起,包括一个新生儿,可以通过电子邮件 mdiehl@diehlnet.com 与他联系。

加载 Disqus 评论