Linux-发行版入门指南-全-

Linux 发行版入门指南(全)

原文:Introducing linux distros

协议:CC BY-NC-SA 4.0

一、解构 Linux 发行版

Electronic supplementary material The online version of this chapter (doi:10.​1007/​978-1-4842-1392-6_​1) contains supplementary material, which is available to authorized users.

让来自其他操作系统(如 Windows 或 Mac OS)的新 Linux 用户感到惊讶的第一件事是,一个名为 Linux OS 的实体实际上并不存在。Linux 只是一个内核,不是 OS,人们普遍感知的 Linux OS 其实是一个 Linux 发行版,更准确的说是 GNU/Linux 发行版。Linux 发行版的概念非常流行,它通常被称为 Linux 发行版。这是我在本书其余部分使用的术语。不要被所有这些术语所困扰:我将在本章中详细介绍它们。

在了解到你所认为的 Linux 实际上是一个 Linux 发行版之后,这里有另一个惊喜:不仅仅只有一个独特的 Linux 发行版。相反,有很多,也许几百个,Linux 发行版可用。因此,根据自己的需求选择合适的 Linux 发行版很容易成为一项艰巨的任务。然而,这第一步可能是至关重要的,有几种方法可以实现这一点:

Note

在撰写本文时,有超过 700 个 Linux 发行版可用,但是目前只有大约 300 个发行版得到了积极的开发和支持。

  • 选择 Linux 发行版的一个方法是听从同事的建议、专业人士的推荐、你在网上找到的评论、随机选择,或者因为这是你目前唯一知道的版本。如果体验愉快,你可能会在很长一段时间内使用这个发行版。
  • 有时候选择 Linux 发行版的体验一点也不愉快。问题可能是安装过程、桌面环境、终端或用户文档。这些问题中的任何一个都可能使某个发行版不适合你。从这里开始,该过程可以遵循以下常见路径之一:
    • 你变得愤怒和失望,所以你放弃使用这个操作系统,可能是永远,或者至少是很长一段时间。你可以在互联网上批评你尝试过的 Linux 发行版,也可以警告你的同事不要这样做。不幸的是,如果你一开始就选择了正确的发行版,你可能会成为一个长期的 Linux 用户。
    • 假设您决定尝试另一个 Linux 发行版。经过几次测试,你找到了一个似乎符合你期望的。你变成了那个特定发行版的长期快乐用户,并且毫不犹豫地测试其他发行版。
    • 或者,你尝试了几个发行版,甚至可能是很多,但是你从来没有找到一个让你感觉舒服的。问题可能是您没有足够明确地定义您的需求,因此您没有发现哪些发行版可以满足这些需求以及以何种方式满足这些需求。你可能最终成为一个长期的、不那么快乐的 Linux 用户,或者你可能完全转换到另一个操作系统。
    • 最后,你可能非常喜欢测试新的 Linux 发行版。您可以定期使用一个 Linux 发行版,但是在不同的机器或虚拟机上测试新的发行版,或者您可以每隔几个月或几年更换一次 Linux 发行版。你可能是一个长期的 Linux 用户。

如您所见,选择 Linux 发行版的决策过程非常重要。不同的发行版之间的 Linux 体验可能会有很大的不同,找到适合你的版本可能会很困难。这本书旨在帮助你找到最适合你需求的 Linux 发行版。如果你使用客观的选择标准,许多麻烦、失望、烦恼和不愉快都可以避免。显然,以前的经验、期望和开放的心态有助于采用 Linux 发行版。本书的目标是帮助你做出最终的决定,或者至少迈出选择 Linux 发行版的第一步,然后让使用 Linux OS 成为一种愉快的体验。

Note

选择 Linux 发行版最简单的方法之一就是使用类似 http://distrowatch.com 的服务。该网站提供了最常见发行版的排名和简要描述。发行版之间的差异非常重要。顺便问一下,我用什么发行版?我写这本书的时候使用了一个虚拟机来运行 Windows 8 和 Microsoft Word,但是底层的基础是一个 Arch Linux 安装来管理这一切。

Linux 在这里

到底什么是 Linux 发行版?Linux 发行版是实现一个工作的 Linux 系统所需的一组组件,以及安装这些组件以实现一个运行的系统所需的过程。今天,一个 Linux 发行版包括 Linux 内核本身(例如,不同版本的内核可以集成到同一个发行版中用于不同的硬件架构),无所不在的 GNU 工具(稍后将详细介绍),提供不同服务所需的许多小工具,可能是一个窗口系统,一个桌面环境,最后是一个包管理系统,其中有许多可以缺省安装或根据用户偏好安装的软件包。即使整个安装过程(或多或少)可以通过自动化的发行版安装过程来完成,与其他操作系统相比,Linux OS 安装是高度可定制的。Linux 发行版的一个特别独特的方面是它所提供的用户文档。即使发布了包含发行版的众多独立软件包的文档,许多发行版也提供了关于发行版本身的几乎完整的文档,主要是关于安装过程或如何对发行版做出个人贡献。

要选择一个 Linux 发行版,你必须首先了解它们为什么存在,为什么有这么多。为了实现这个目标,我们必须首先深入了解 Linux 本身的起源和历史,以及它创建的环境。

Linux 的起源

正如许多成功的软件项目一样,Linux 最初是作为一种解决软件开发人员所面临的特定问题的方法而出现的。在这种情况下,在 20 世纪 90 年代初,赫尔辛基大学的一名名叫 Linus Torvalds 的芬兰学生(见图 1-1 )希望能够在家里使用类似于他在校园中使用的操作系统。唉,没有任何选择可以满足他的愿望。他在家里使用 MINIX 的一个版本,但是它不能在他的 PC 386 机器上运行,所以他决定创建自己的操作系统。1991 年 8 月 25 日,他在com.os.minix新闻组网站上发布了以下消息,这将成为计算机历史上最著名的名言之一:

Hello, everyone, Linus Benedict Torvalds, I am cloning a (free) operating system (just a hobby, not as big and professional as gnu) while using minix. This has been brewing since April, and preparations have begun. I hope to get any feedback about whether people like/dislike minix, because my operating system is a bit like it (the same physical layout of the file system (for practical reasons) and so on). So far, I have transplanted bash (1.08) and gcc(1.40), and everything seems normal. This means that I will get something useful in a few months, and I want to know what features most people want. Any suggestions are welcome, but I can't guarantee that I will implement:-) Linus (torv ... @ kruna.helsinki.fi) PS. Yes-it doesn't have any minix code, and it has a multi-threaded fs. It is not portable (using 386 task switching, etc.), and it may never support anything except AT-harddisks, because this is all I have.

A367684_1_En_1_Fig1_HTML.jpg

图 1-1。

Linus Torvalds , creator of Linux, at the LinuxCon Europe 2014 in Düsseldorf Tip

如果你对由它的创造者讲述的 Linux 的第一手历史感兴趣,读一读《只是为了好玩:Linux Torvalds 的一个偶然的革命者的故事》(HarperCollins,2001)。

这是 Linux 历史的开端,你可以肯定,当时没有人,即使是 Linus Torvalds,能够想象有一天他的宠物项目会成为世界上最普遍的操作系统之一。现在你几乎可以在任何地方找到 Linux。它安装在全球最快的 500 台超级计算机 1 的 97%上,安装在运行互联网的服务器上,安装在智能手机和平板电脑(Android OS)上;它还嵌入在许多消费电子产品、汽车等中。事实上,人类已经生产的两个最先进、最复杂、最昂贵的物体/项目,国际空间站和大型强子对撞机,也是由 Linux 管理的。这是具有讽刺意味的,因为如果你回顾 Linux 诞生的时候,你会发现几乎相同的背景(缺少尚未被发现的技术),但是用 UNIX(启发了 Linus 的操作系统)代替了 Linux。

Note

Linux 操作系统的第一个名字是 Freax,是“free”、“freak”和“Unix)的组合。后来,赫尔辛基大学的 FTP 服务器维护技术人员决定将操作系统所在的文件夹命名为 Linux(Linus 的 UNIX)。托瓦尔兹考虑并放弃了这个名字(他觉得这个名字太自我了),最终同意保留这个名字。显然,Linux 是一个比 Freax 更好的名字。

我们回到 90 年代初,说说当时的操作系统情况。就操作系统而言,有两个明显的分离:个人电脑和其他一切。

  • 个人电脑市场由两家公司主导:微软视窗系统(Windows 3.x 和 MS-DOS 5.0)和苹果麦金塔电脑(System 7)。当然,还有其他玩家,但就市场份额而言,他们是次要的:AmigaOS、Atari TOS、IBM DOS、DR-DOS、OS/2、BeOS、MINIX、Xenix 等等。
  • 在剩余的计算领域(专业工作站、小型机、大型机等等),还有许多其他竞争者:
    • 基于 UNIX 的:NeXTStep、IRIX、Xenix、AIX、SunOS、Ultrix、HP-UX、SCO、BSD 和 UNIX。有许多基于 UNIX 的操作系统,而且数量还在增长。此外,这些操作系统在各种机器上的迁移和新安装也越来越多。这个操作系统家族在当时可能拥有最大的市场份额。
    • 其他:Multics、OS/8、TOPS-X、OS/400 等等。今天仍然有运行这些操作系统的机器;然而,随着时间的推移,许多安装已经迁移到基于 UNIX 的操作系统上。

众所周知,今天微软视窗和 Mac OS 操作系统是个人电脑市场的主要玩家。然而,在其他计算领域,UNIX 家族仍然拥有最大的市场份额。此外,目前,Linux 是最常见的 UNIX 变体,它的发展速度更快,正在取代大量较旧的 UNIX 安装。那么,为什么面对如此多的替代方案,Linux 却取得了如此大的成功?

Linux 的成功有四个主要原因:

Linux was based on the existing UNIX OS . Linus Torvalds was already using MINIX at home, and he wanted to use a similar OS to the UNIX-based one installed on the campus’ mainframe at the university he attended. As mentioned, buying a new computer with an 80386 processor forced him to develop his own OS since he wanted to use a UNIX-based OS on that machine. Given the success and broad presence of the UNIX family of operating systems in the world, there were a lot of people willing to adopt a new alternative for their personal computers. There were only a few ones back then, MINIX and Xenix being the main ones, and each had its disadvantages.   Linux was aimed at personal computers . As mentioned, the main UNIX-based operating systems available for microcomputers at that time were MINIX and Xenix. (There were other minor actors, such as the IBM PC/IX, Venix, Coherent, and Idrix). But MINIX and Xenix had the following inconveniences, which opened the door to other competitors:

  • MINIX 有一个低成本的许可证,其开发者 Andrew S. Tanenbaum(一名计算机科学教授)提供了源代码,他是为了教育目的而创建的。然而,它只适用于 8086 PC 和 80286 PC AT 机器,而且它的许可证禁止使用它的源代码来开发基于它的新操作系统。
  • Xenix 最初由微软开发,当时是 Santa Cruz Operation (SCO)的产品。即使当它可用于 386 系统时,它的许可证也是非常严格和昂贵的(它最初是 OEM 产品),并且它的源代码是不可访问的。然而,这种基于 UNIX 的操作系统是个人电脑市场上最常安装的操作系统。
  • 在 Torvalds 和其他人开发 Linux 的同时,有许多人致力于将一个叫做 Berkeley 软件发行版(BSD)的 UNIX 版本移植到 386 台机器上。这导致了一系列基于 BSD 的个人计算机操作系统。托瓦尔兹当时并不知道 BSD 项目。如果他这样做了,也许他永远不会开始开发 Linux 内核。(他在公开场合多次陈述过这一点。)我将在在线章节中详细介绍这个主题。

The way in which Linux was distributed: free and open source . Since Torvalds had few resources (and thought that $169 for MINIX was way too much), if he wanted others to use it, comment on it, and perhaps improve upon it, the best way to distribute Linux was to give it away for free. Torvalds developed his Linux kernel in a MINIX OS environment using the GNU C compiler, and later included the GNU tools, so you were obliged to use the GPL license (more on that later) and distribute its source code. This fact, plus free distribution, helped propel the early adoption of Linux by a bunch of “hackers” (in the original meaning) who were willing to play with the kernel and the code. Heretofore, you could not play with the Xenix code, and even if you could contribute to MINIX or make your own version or port of it, you could not distribute it freely and legitimately. (There were, in fact, several unofficial ports of MINIX to various machines.)   The Internet. The Internet was essential to the success of Linux. Without the Internet , e-mail, FTP, and newsgroups, it would have been impossible to join so many people together and to be able to work collectively on a project like this. People from all over the world became enthusiasts of Torvalds’ pet project, and they started to collaborate voluntary in its development. The number of Linux supporters grew at an astounding pace, and today there are thousands of developers and numerous enterprises working together to make Linux a better OS with each new release. Shortly after its introduction, the original assembly code for Linux was ported to C by Torvalds and others, and soon ports would appear for machines other than the 386.   Note

如果你对第一次发布的 Linux 代码很好奇,你可以从 www.kernel.org/pub/linux/kernel/Historic/linux-0.01.tar.gz 下载。

Torvalds 最初开始为 MINIX OS 开发一些实用程序,包括连接到大学大型机的终端仿真程序、磁盘驱动器和文件系统驱动器。很快他意识到,如果他继续沿着这条路走下去,他最终会制作自己的操作系统,所以他决定放弃 MINIX,自己制作一个更好的基于 UNIX 的操作系统。

1991 年 10 月 5 日,在他开始工作不到两个月后,托瓦尔兹在comp.os.minix Usenet 新闻组 2 发表了以下关于他的内核 0.02 版本的声明:

Do you miss the good times of minix-1.1, when men were men and they wrote their own device drivers? Don't you have a good project, just eager to make your mark on an operating system that can be modified according to your needs? Everything is fine on minix. Are you depressed? Stop letting a beautiful program work all night? Then this post may only be suitable for you:-) As I mentioned, one month (? ) Before, I was developing a free mini version for AT-386 computer. At last, it has reached a usable stage (although it may not depend on what you want), and I am willing to open the source code for wider distribution. It is only version 0.02 (there is already a +1 (very small) patch), but I have successfully run bash/gcc/GNU-make/GNU-sed/compress and so on on on it. Linus

不久,许多其他程序员也加入了这项事业。内核开发的质量和快节奏是以一种天真和非常不寻常的方式实现的——仅仅是通过每周发布一个新版本,并从用户和志愿者那里获得反馈。因此,它在这个词最严格的定义上进化了:只选择有效的变化和改进,而抛弃其余的。结果,到 1993 年底,Linux 操作系统足够稳定和可靠,可以与几乎所有的 UNIX 商业版本竞争,它甚至开始成为许多商业应用程序的基础。在很短的时间内,Linux 成为了 UNIX 的主要替代品。

如前所述,Linux 的成长速度惊人,到 1994 年 3 月,Linux 1.0 版发布。在第一个 Linux 发行版发布后的短暂时间内(1992-1994 年),它成为众多爱好者、专业人士和学者工具箱中的一个组件。

托瓦尔兹继续领导开发工作,他今天仍然在对 Linux 内核的形状做最后的决定。他现在在 Linux 基金会工作,这是一个非营利性机构,旨在促进、关注和规范 Linux 操作系统的开发。它得到了世界上许多领先的 Linux 和开源公司以及全球个人开发者的支持。

重要的是要记住,Linux 只是一个内核,而不是一个完整的操作系统,所以 Torvalds 把这个内核和 GNU 项目的工具放在一起,实现了 GNU/Linux 操作系统的第一个版本。但是 GNU 项目是什么呢?

Note

内核是操作系统的核心或中心组件。它基本上连接了硬件和应用软件。构建内核有两种主要的架构:微内核(许多小块)和整体内核(一个独特的大块)。

在不深入这些概念的情况下,Linux 内核的一个有趣的历史方面是作为一个整体内核开发的,而 MINIX 是基于一个微内核的。这就是 a . s . Tanenbaum(MINIX 的最初开发者)在 1992 年对 Linux 发表评论的原因,他说 Linux 在概念上已经过时了。这引发了 Tanenbaum 和 Torvalds 之间的争论,并证明了 Torvalds 的固执,这已成为传奇,因为他继续支持他的操作系统中的单片内核架构。

Tanenbaum 还认为,Linux 将在几年内过时,GNU Hurd 内核(一种基于 UNIX 的微内核)将成为它的替代品。事实证明,他对这个预测完全错了。Linux 比以往任何时候都更有活力,GNU Hurd 仍在开发中,从未兑现承诺。

图 1-2 所示的 Linux 吉祥物,背后有一段搞笑的历史。社区正在寻找一个标志/吉祥物,在几个建议之后,Linus 谈到了 1993 年在澳大利亚动物园被一只“凶猛的仙女”企鹅咬了。就这样决定了。拉里·尤因画了原画。Tux 这个名字来自 Torvalds UNIX,也是 tuxedo 这个词的开始(经常与企鹅联系在一起)。

A367684_1_En_1_Fig2_HTML.jpg

图 1-2。

Tux, the official mascot of the Linux kernel and its de facto logo

GNU 项目

前面我提到过托瓦尔兹有点固执,他的固执在保留 Linux 的内核架构方面发挥了作用,这是它成功的一个主要因素。GNU 项目的存在是因为另一个传奇人物,麻省理工学院的理查德·M·斯托曼的痴迷和决心,他抵制软件开发中的文化变革,决定回到它的起源。

黑客是一个被滥用和扭曲了原意的词。在计算世界之外,几乎没有人知道这个术语背后的真正概念,甚至 IT 领域的许多人也没有意识到它的真正含义。

黑客亚文化是由一群非常聪明的人(工程师和物理学家)于 20 世纪 60 年代在麻省理工学院(MIT)诞生的,他们发现用当时的计算机系统解决日常问题是有趣的,也是智力上的回报。他们发现了避免和规避这些系统的限制和故障的变通办法,他们挑战自己和他人,以扩展这些计算机系统的限制,并实现更智能的途径。

我们的目标是永远做到最好,并在这个过程中获得乐趣,他们之间的恶作剧是这种文化的重要组成部分。然而,黑客亚文化的精髓部分是分享信息和成就,而不是把这些留给自己。这样做部分是为了骄傲和荣耀,部分是因为他们想帮助改善这个世界。他们认为自己是反叛英雄和神话中的罗宾汉的混合体,愿意放弃他们的战利品。他们有强烈的道德和责任感,即使在计算机公司和机构的眼里他们看起来像孩子一样。这种亚文化也扩展到了其他领域。例如,在硅谷,这场运动的标志之一是家酿计算机俱乐部,一个计算机硬件黑客俱乐部,后来成员史蒂夫·沃兹尼亚克在那里展示了第一台苹果计算机。他们的共同之处主要是对卓越和编程的热爱。他们想让他们以前的程序尽可能的好。他们也想让他们做整洁的事情。他们希望能够以一种比任何人都认为可能的更令人兴奋的方式做一些事情,并展示“看这有多棒”。我打赌你不相信这是可能的。”——理查德·斯托尔曼在 1985 年的电视纪录片《黑客:电子时代的奇才》中

正是这种亚文化催生了一些重大的技术成就,如 UNIX 操作系统、TCP/IP 协议(互联网本身的支柱)和 GNU 项目。你可以诚实地说,Linux 是最初运动最后阶段的副产品,在它演变成一种有些不同的和更广泛的方法,自由软件倡议之前。然而,回到 GNU 项目,Stallman 有时被称为“最后一个真正的黑客”(他甚至一度认为自己是),我指的是麻省理工学院最初的一群黑客。

Tip

如果你想知道更多关于黑客和我们今天所知道的计算机的起源,你可能会对一本名为《黑客:计算机革命的英雄》的优秀书籍感兴趣,作者是史蒂文·利维(锚出版社/双日出版社,1984)。这是关于那些早期和有趣的时代的最好和最准确的编年史。

理查德·斯托尔曼(见图 1-3 )是一名数学天才,1970 年是哈佛的学生(他将于 1974 年以优异成绩从哈佛大学物理学专业毕业),很快加入了麻省理工学院的人工智能(AI)实验室,并成为这一亚文化的一部分。在那种环境下,他成长为一名专业的系统程序员,他已经将这些道德深深地融入了自己的生活方式中。

A367684_1_En_1_Fig3_HTML.jpg

图 1-3。

Richard Stallman , founder of the GNU project, at Oslo, Norway on February 23, 2009

然而,在 20 世纪 80 年代初,一系列的事件打破了这种环境,摧毁了曾如此影响斯托曼生活的理想主义和自由。因此,在 1983 年,斯托曼决定启动一个名为 GNU 的非 Unix (GNU)项目的新项目,试图创建一个全新的可以自由发布的操作系统,该项目受到黑客亚文化和伦理的启发。他最初的目标很快变成了一份全职工作,所以他在 1984 年放弃了麻省理工学院,开始编写 GNU 软件。他还想避免麻省理工学院对他的代码主张任何权利的可能性。他编写的第一批程序中有两个是多语言和多平台 gnu 编译器(gcc)和 Emacs 文本编辑器。这两个程序一直沿用至今。gcc 是世界上最常用的软件编译器之一,Emacs 仍然是许多计算机专业人员(包括我自己)最喜欢的文本编辑器。

为了吸引人们来帮助他开发 GNU OS,他在 1985 年发表了 GNU 宣言,这将成为软件革命的支柱之一,比托瓦尔兹最初给新闻组的消息早了六年。这个宣言陈述了一些应该适用于所有软件的基本自由:

  • 为任何目的运行程序的自由。
  • 研究程序机制并修改它以适应你的需要的自由。
  • 免费或收费重新分发拷贝的自由。
  • 改进和更改修改版本以供每个人使用的自由。

随着越来越多的人阅读该宣言并开始接受其原则,一系列新的需求出现了:一种共享和分发的方式,以及一种维护斯托尔曼非常欣赏的黑客道德的方式。FTP 和传统邮件解决了分发问题,而 GPL 的创建解决了伦理问题和法律问题。GPL 代表通用公共许可证,1989 年编写的版本 1 是 GNU Emacs、GNU 编译器和 GNU 调试器早期版本中类似尝试的概要。许可证基本上解决了两个问题:

  • 以二进制形式分发软件。GPL 通过强制在此许可证下分发软件来防止这种情况,该许可证总是以人类可读的格式附有源代码。
  • 避免额外的限制。在 GPL 下,该软件可以与其他软件程序结合,这些软件程序与 GPL 本身不同,具有带有次要限制的许可协议,但决不能与带有更多限制性许可的软件程序结合,除非整个软件包是在 GPL 下分发的。

GPL 取得了巨大的成功,后来 Linux 操作系统采用了 GPLv2,并成为它在全世界的主要标志之一。为了支持软件库,这个许可证最终将由 LGPL 来补充。这两个许可证的第三个版本(也是当前版本)是在 2006 年采用的。有些人认为它限制太多;Linus Torvalds 和其他著名的 Linux 开发者是最激烈的批评者。然而,很难计算在这种许可下开发的程序的确切数量;据估计,GPL 许可证家族覆盖了所有可用自由软件的 55%,因此它显然有着巨大的影响。

Tip

如果你想阅读 GNU 宣言的原文,你可以在 www.gnu.org/gnu/manifesto.en.html .阅读 GPL 许可证的原文,你可以在 www.gnu.org/licenses/old-licenses/gpl-1.0.html 阅读。

如前所述,GNU 项目(见图 1-4 )是 Linux 操作系统的主要贡献者,作为内核的补充,就像 Linux 内核弥补了 GNU 项目的不足,因为 Hurd 内核仍然不可用。(第一个“可用”版本将于 1996 年出现。)

A367684_1_En_1_Fig4_HTML.jpg

图 1-4。

The logo of the GNU Project is obviously a gnu

在 Linux 的早期,这些 GNU 工具构成了操作系统的很大一部分(GNU 项目产生了数以千计的实用程序,如 shell、Emacs、GIMP、GNOME 和初始文件系统)。斯托曼一直记得这一点,他声称 Linux 的正确名称是 GNU/Linux(一些发行版,如 Debian,仍然保持这个名称),以承认 GNU 项目的无价贡献。斯托尔曼和自由软件基金会提出的这个名字从来没有产生任何重大影响。我个人只是把这个操作系统叫做 Linux,就像今天大多数人做的那样。

然而,不承认没有 GNU 项目,Linux 操作系统可能永远不会存在是不公平的。但是也有理由说 GNU 工具现在是 Linux 操作系统的一个小部分,随着云、虚拟化和 systemd 项目(一个新的 Linux that 系统,它正在慢慢取代许多以前由小工具完成的任务)在操作系统中产生的巨大变化,也许在将来 GNU 项目元素将完全从 Linux 操作系统中消失。

因此,GNU 项目对于 Linux 的开发是至关重要的,它是开发软件的新方法的关键。这当然是当年我们有这么多软件项目和开发人员的原因。这显然是一场革命,但它有时被遗忘、低估,甚至受到批评。然而,我绝对肯定,如果 GNU 项目不存在,今天的软件世界将会和我们现在的完全不同。

Linux 发行版的诞生

一旦 Linux 内核成为现实,GNU 工具形成了构建整个操作系统的缺失部分,您仍然需要组装、编译和打包它们。这是一项困难、复杂、庞大的工作,非常适合爱好者(“极客”,我们今天这样称呼他们)。然而,如果你的目的是向更多的观众介绍操作系统,那么简化这个过程显然是必要的。随着越来越多的新开发人员开发出许多基于新操作系统的新程序,这种需求变得更加迫切。其中一些发烧友开发了第一个 Linux 发行版,最初是为了个人使用,但他们很快就开始分享它们,因为他们很快意识到这项工作需要大量感兴趣的个人。

因此,在 1992 年,第一个 Linux 发行版诞生了。这些发行版(MCC Interim Linux、Yggdrasil、H. J. Lu 的“Boot-root”和 Softlanding Linux 系统)现在都不存在了,但是在 1993 年,前两个伟大的 Linux 发行版诞生了:Slackware 和 Debian。Slackware 是基于 SLS(软着陆 Linux 系统)的,Debian 是伊恩·默多克的新发明,因为他对 SLS 发行版不满意。新的发行版不断出现,如 Red Hat、SUSE、Caldera、Conectiva、Mandrake 等等,直到新世纪开始时的“大扩张”中大量新发行版的引入。

我在第三章中详细介绍了这段历史,在随后的主要 Linux 发行版章节中也有介绍。这些发行版为经验不足的用户提供了便利,但它们也满足了最有经验的黑客的基本要求,即使他们选择使用更复杂的版本来满足他们的需求,他们也会采用这些发行版。

如本书开头所述,发行版的数量惊人,其中许多为不同的架构、目的、品味等提供了不同的版本。你可能会问自己,“为什么有这么多发行版?”继续读!这个问题的答案如下。

为什么这么多发行版?

这些令人惊叹的不同 Linux 发行版背后的原因是 Linux 操作系统本身和 GNU 项目的根源。培育 Linux 操作系统成功的条件也培育了我们今天拥有的巨大的 Linux 生态系统。几乎可以改变操作系统中的任何东西,并免费发布这些改变,这种可能性促成了 Linux 用户安装基数的巨大增长。任何不喜欢某件事如何运作的人都可以简单地改变它,假设他们有这样做的知识、动机和手段。再加上黑客的心理,你就有了今天可用的东西:一个适合各种口味的发行版。

每年都会出现新的发行版。大量不墨守成规的 Linux 用户仍然喜欢调整他们的 Linux 安装的每个小方面。似乎这还不够,他们中的一些人更进了一步:制作一个一次性的 Linux 发行版是完全可能的(有很多例子)。

虽然大多数 Linux 发行版都是由一个开发团队或者甚至是一个开发社区来维护的,但是大多数主要发行版都是由拥有大量致力于开发的员工的公司来支持的。GNU 项目和 GPL 仅仅代表了一个新的、更大的、更重要的运动的开始:软件自由,翻译过来就是“自由软件”当 Stallman 开始 GNU 项目时,他还引入了“copyleft”的概念(与“copyright”相对),这将成为 GPL 和其他一些类似的或多或少限制使用概念的许可证的主要组成部分。正如 Stallman 所描述的,“copyleft 的中心思想是,我们给予每个人运行程序、复制程序、修改程序和发布修改版本的许可——但不允许添加他们自己的限制。因此,定义“自由软件”的关键自由被保证给每个拥有拷贝的人;它们成为不可剥夺的权利。为了有效的版权保护,修改过的版本也必须是自由的。这确保了基于我们作品的作品在发布后可供我们的社区使用。”——克里斯·迪博纳《开源:来自开源革命的声音》中的理查德·斯托尔曼(奥莱利媒体,1999 年)

1985 年,作为支持 GNU 项目计划的一部分,Stallman 成立了自由软件基金会(FSF),这是一个非营利性组织,目标是支持自由软件的总体发展。FSF 创建的 GPL 很快在编程社区中传播开来,围绕自由软件的运动开始发展。这一运动很快在软件世界获得了关注,那些普遍喜欢这个想法但不喜欢 GPL 强加的限制的人创建了其他许可证,如 Apache、BSD、MIT、Public Domain、Mozilla 等等。1989 年,包括 Bruce Perens 和 Eric Raymond 在内的一群人试图将 BSD 和 GPL 许可证统一在一个名为开放源代码倡议(OSI)的新运动的保护伞下。其他人使用术语 FOSS,自由和开放源码软件,作为联合两个运动的手段。在任何情况下,事实是共享和开放源代码的思想已经根深蒂固,在这些条款下编写代码的开发人员的数量将不会停止增长。软件伪造品 3 以及像 GitHub、Bitbucket、GNU Savannah 等中央软件仓库都是自由软件运动生命力的见证。互联网本身很大一部分是建立在自由软件项目的基础上的。

尽管今天的自由软件还没有达到早期黑客运动的道德和文化的高度,尽管软件专利是对其目标的持续威胁,但它确实为我们提供了使用和享受大量软件项目的特权,我们可以在任何时候叉 4 并修改这些项目。

在这种环境下,大量的社区继续开发 Linux 发行版,每天都在创造新的发行版,没有自由软件运动,如果所有的软件都是闭源的,这样做实际上是不可能的。与微软和苹果的操作系统形成对比。Linux 不仅仅代表一个操作系统;这也是关于自由的。即使大多数人拒绝使用术语 GNU/Linux,事实是 Linux 的成功也是 GNU 项目、FSF 和自由软件的成功。

Note

你可能已经注意到“软件自由”这个术语以前被使用过。这个术语被一些人偏爱,理查德·斯托尔曼本人也用过,因为西班牙语中的“libre”一词避免了英语中同一个词(free)的歧义。那些喜欢自由软件的人只是不想让你混淆免费啤酒中的免费和言论自由中的免费。自由软件总是与自由联系在一起,但它可以被商业化和出售,就像经常发生的那样。您可以在 https://en.wikipedia.org/wiki/Gratis_versus_libre 了解更多相关信息。

我必须选择一个吗?不都是一样的吗?

这是一个常见的问题。为什么选择特定的 Linux 发行版?你不能和他们所有人达成同样的目标吗?答案简单明了:没有。

选择 Linux 发行版有许多不同的原因,就像创建一个发行版有许多不同的原因和方法一样。是的,你几乎可以调整和定制任何发行版,但是在某些情况下这样做的工作量会很大,有时几乎不可能实现你的目标。

例如,如果你需要在资源稀缺的电子设备上嵌入一个 Linux 发行版,你不能简单地安装最新的 Ubuntu 桌面发行版,因为它不是这样工作的。同样,如果你试图把初级发行版作为一个 Linux 服务器,它可能不会有好结果,你会为你的麻烦感到非常头疼。

摘要

我希望您现在对什么是 Linux 发行版以及导致当前众多可用 Linux 发行版的原因有了一个清晰的概念。也许你想知道为什么我花这么多时间谈论 GNU 项目和软件自由,而这是一本关于 Linux 的书。然而,到现在为止,你应该明白了,Linux 在诞生、本质和定义上都与 GNU 项目和软件自由运动联系在一起。

更重要的一点,也是本书的主题,是不可能只为所有情况选择一个 Linux 发行版。这正是这整本书背后的原因;如果选择一个 Linux 发行版并不重要的话,你就没有什么可读的,我也没有什么可说的。

我将在下一章介绍选择 Linux 发行版的决策标准,以便帮助您理解各种目的、任务、爱好等等,这些构成了选择 Linux 发行版的基础。本章的其余部分探讨了在选择适合您需求的发行版时必须考虑的不同因素。

Footnotes 1

www.top500.org/statistics/details/osfam/1

2

https://groups.google.com/forum/#!topic/comp.os.minix/4995SivOl9o

3

一个基于网络的平台,旨在托管和共享计算机程序源代码,通常是自由开放源码软件(FOSS)。可以在 https://en.wikipedia.org/wiki/Forge_(software) .了解更多

4

分叉意义上的分叉。这是编程中的一个常用术语,指的是源代码的副本作为一个独立的项目独立工作。您可以在 [https://en.wikipedia.org/wiki/Fork_(software_development](https://en.wikipedia.org/wiki/Fork_(software_development) ).了解更多信息

二、Linux 发行版选择标准

既然您已经知道了什么是 Linux 发行版以及为什么会有这么多发行版,下一步就是找到一种方法来比较和筛选它们。最好的方法是选择一系列可以用来客观地测量和分类各种 Linux 发行版的因素,在你的推理中不要有偏见。听取同事或 Linux 专家的意见,或者阅读一篇文章或评论等等都是可以的,但是很少能找到完全不带偏见或与您的特定情况相匹配的资料来源。我强烈建议你考虑这些因素,并根据你的需要权衡最重要的因素。然后,您可以根据这些需求选择最强的发行版。这本书将帮助你做出明智的决定。

在这一章中,我在每一个类别中列出了一些发行版,但是不要把这作为一种容易选择正确发行版的方式(同样,我没有列出所有适合某一特定点的发行版)。你应该根据许多因素来选择你的 Linux 发行版,而不仅仅是一个因素(除非是非常特殊的情况,比如面向任务的情况)。本章的目的是帮助你评估每一个发行版,知道你在评估时应该考虑哪些因素。

在接下来的章节中,我将向你详细介绍许多发行版。我选择了一个最流行、最可靠、最安全的示例,但也选择了几个示例来说明一些要点,比如当前最先进的 Linux 发行版或适合特定需求的发行版。在某些章节中,我会引用我在这里提到的因素来查看每个发行版的评分。虽然不可能涵盖所有可供您选择的方案,但我会尽可能涵盖更多方面。

另外,请注意,从技术上讲,我并没有深入研究。我认为那超出了本书的范围。为了给你准确的信息,我必须介绍一些技术细节和概念,但是如果你是 Linux 新手,我不希望你因为我太专业而分心或被我吓倒。当我分析不同的发行版时,我会尽可能从技术角度来解释它们的性能。

Note

我提到了选择 Linux 发行版时要考虑的许多因素。到本章结束时,你可能已经提出了一些我没有提到的因素。请注意,我涵盖了做出正确决定的最关键的问题,我丢弃了一些,因为我认为它们与提到的问题或不太具体的问题重叠。

选择 Linux 发行版时要考虑的因素

图 2-1 显示了选择 Linux 发行版时需要考虑的重要因素。选择一个系统的第一步,不管它是什么,是问你自己你将如何使用它。使用你的新操作系统来撰写信件和追踪你的财务状况与使用一个新操作系统来服务互联网上的市场是不一样的。您可以使用同一个发行版来实现这两个目的,有些人就是这样做的,但是在大多数情况下这将是一个非常糟糕的决定。即使你是计算机新手,你也可能知道,在家庭和专业工作中使用相同的工具通常不是一个好主意。

A367684_1_En_2_Fig1_HTML.jpg

Figure 2-1 . The Linux distribution selection criteria graph

让我们将基本工作流的类别分为两大类:通用和面向任务。

通用

我们可以将大多数 Linux 发行版归入这一类,我们可以将它们视为 Linux 的其他大竞争对手:MS Windows 和 Apple OS X 的等价物。相反,他们试图完成从写文档到编辑视频等普通而多样的工作。这些任务是每个人想到操作系统时都会想到的。大多数想要一个自己使用的 Linux 发行版的人也想执行这样的任务。

你希望一个发行版能够使用你在家里或工作中日常工作所需的任何种类的软件。在这一类中有最流行的发行版:Ubuntu、Fedora、Debian 和 Mint。

面向任务

为什么你需要一个专门的 Linux 发行版?这是一个有趣的问题,没有简单的答案。最常见的情况如下:

  • 你想用发行版做一些特定的事情,而一般的 Linux 发行版缺少一个必要的特性。它可以是简单的大量定制和添加特定软件库的能力。教育和面向儿童的发行版就是很好的例子。
  • 您希望只专注于一项任务,并删除所有不需要的功能和软件。这有几个原因,如下所示:
    • 硬件限制:它可能是磁盘或内存中的空间,或者是架构,比如面向网络设备的发行版,比如路由器或其他嵌入式设备。您可能需要将发行版中的软件减少到最低要求;通常内核也是定制的。另一个例子是适合移动设备的发行版,比如 Android。
    • 安全性:如果您想在防火墙或类似的设备上运行 Linux 发行版,那么出于无漏洞和性能的原因,您希望尽可能减少软件开销。并且您只想使用您可以信任的软件和库。阿尔卑斯山就是一个很好的例子,尾巴也是。
    • 易于使用:管理家庭影院电脑的发行版不需要文字处理器或电子表格,但易于使用的面向遥控器的界面是一个理想的特性。同样,Chrome OS 笔记本发行版专注于云中的应用和存储。

这个类别中有大量的任务和发行版;如此之多,以至于我用了整个第十七章来讨论这个话题。事先,为了完整起见,我将在这里列举一些任务和分布。

  • 多媒体/艺术:Ubuntu 工作室,ArtistX
  • 媒体电脑/家庭影院:Kodi(原名 XBMC)、Mythbuntu
  • 安全/取证/匿名:Kali,Tails,DEFT
  • 存储:免费 NAS
  • 手机:安卓、Tizen、Ubuntu 手机
  • 云应用:Chrome
  • 路由器:开放资源
  • 游戏:steamos
  • 云/数据中心:CoreOS

我想你明白了。如果你正在寻找这种类型的发行版,你可以跳到第十七章,但是更好的办法是继续阅读,看看在选择一个适合你的发行版时你还应该考虑哪些因素。

环境

另一个你在寻找 Linux 发行版时应该考虑的问题是你将要运行它的环境。我将它分成了四个主要的环境,您可以在其中运行 Linux 发行版(我试图保持它的简单性):桌面、服务器、云/虚拟化和嵌入式。

桌面

桌面环境是大多数人想到一个 Linux 发行版时想到的;具有讽刺意味的是,正是在这一点上,Linux 最不成功。虽然有人估计桌面上安装了数千万个 Linux 操作系统(有人估计高达一亿多个),但事实是 Linux 与该领域的领导者 Windows 和苹果(按此顺序)之间存在巨大差距。一些人认为,Linux 桌面用户数量与苹果全球用户数量非常相似。大多数 Linux 发行版都是面向这种环境的(大的发行版针对每种环境都有专门的版本),具有讽刺意味的是,许多人认为这是 Linux 在这一领域缺乏成功的原因。无论如何,Linux 最初是一个桌面操作系统,它仍然是大多数用户的第一个 Linux 体验。

这里我们可以谈论 SoHo 用户(小型办公室、家庭)以及公司和工作站用户。通常面向这种环境的 Linux 发行版是一个通用的发行版,它注重易用性并提供一个熟悉的图形界面。这些发行版还包含更适合服务器用途的管理工具和服务,但它们不像服务器那样适合这项任务,当人们在桌面以外的环境中使用它们时,通常需要大量的定制和知识才能使它们正常工作。Debian 就是一个典型的例子。

在这一类别中几乎所有最流行的发行版:Ubuntu、Fedora、Mint、Debian、OpenSUSE 等。

计算机网络服务器

当您需要为数据库或网站提供服务时,您可以使用面向服务器环境的 Linux 发行版。这些发行版特别适合这个任务,包含了工具、服务、安全性、定制和专门的内核。他们通常缺乏一个图形化的环境。安全性、性能和稳定性是这一类别的主要特征,通常这些发行版与桌面发行版相比有点过时。这些 Linux 发行版应该在 365/24 的基础上运行,并且通常几年都不会重新启动。考虑到这个类别的关键方面,依赖一个不是专门为这个任务设计的 Linux 发行版可能在短时间内有效(通常需要很大的努力和很多麻烦),但从长远来看,这可能是一个噩梦。我宁愿在我的桌面上使用服务器发行版(这也是一种不愉快的体验),而不是在服务器上使用桌面发行版。(Debian 是一个明显的例外)。

在这一类别中有流行的和公认的发行版,如 Red Hat Enterprise Linux、SUSE Linux Enterprise Server、CentOS 和 Oracle(后两个是 Red Hat 的分支),以及最流行的桌面发行版的相应服务器版本,如 Ubuntu Server 或 Debian。

云/虚拟化

这是服务器类别的一个子类或超级专门化,但是它的重要性以及如何塑造 Linux 的未来足以证明它的地位。您将在这里找到适合在云中工作的发行版,它们需要可靠、安全、可伸缩、易于自动化和部署等。

大多数大而流行的发行版都在这个环境中使用,比如 Red Hat、CentOS、Ubuntu 和 Debian。有些提供专门的版本来适应新的需求,如 Ubuntu Cloud 和 Amazon AMI(Red Hat 的一个分支,适合与 AWS 一起工作),有些甚至提供自己的云服务,如 Red Hat OpenStack 或 OpenShift。也有特别为这种环境创建的极轻和极小的 Linux 发行版,如 CoreOS,它利用了容器(Docker、rocket 和 Kubernetes)等新技术。其他类似的新举措,连同 systemd,最终开始指向 Linux 和整个服务器的未来。

虽然现在内核默认支持虚拟化,但有一些发行版只关注虚拟化,如 Oracle VM Server 或 Proxmox VE(基于 Debian ),它们像裸机虚拟机管理程序一样工作。

嵌入式/移动

嵌入式/移动类别的发行版非常专业,旨在适应移动设备、消费电子、网络设备(路由器、防火墙)、机器控制、工业自动化、道路车辆、医疗器械等。最著名的应用在移动设备上,比如 Android、Ubuntu mobile 和 Tizen。其他如 OpenWrt 和 Alpine 则专注于网络设备。当然,还有一个面向嵌入式设备的 Debian 发行版。

支持

对于一些用户来说,比如专业人士,支持的级别可以作为一个门槛来筛选哪些 Linux 发行版适合他们,哪些不适合。良好的文档或用户社区的支持(维基、irc、论坛、邮件列表等)。)对于有经验的用户或家庭用户来说已经足够了,但是对于企业来说,您可能需要商业支持来保持系统的正常运行。所以,正如你可能已经想到的,这个群体分为两类:社区和商业支持。

社区

传统上,由于 Linux 本身的起源,安装和排除操作系统故障所需的帮助文档是由用户和开发人员社区创建和维护的。如果发行版有一个大的社区,文档和支持的数量和质量都会更好。当支持更好时,它为社区吸引新用户。一个传统的例子是 Debian。然而,即使是一些面向高级用户并且难以安装和管理的发行版,也有很好的文档和非常支持的社区,比如 Arch Linux 或 Gentoo。

在大多数发行版中,您可以从社区中获得一些文档(在网页、wiki 或 CD 中),以及用户可以相互交流以回答问题的几种方式。几乎每个 Linux 发行版都有邮件列表,大部分也有 irc 频道和论坛;较大的也有一些系统,让用户向开发者提交错误。通常有相同类型的独立资源来驱动开发者和普通用户进入有时在某些主题上重叠的子社区。

商业

当公司和机构开始用 Linux 替换他们的 UNIX 系统时,一些人看到了不仅仅是销售和分发软件的机会;他们还可以提供来自专家的商业支持,以协助 Linux 的移植和维护过程。因此,第一个由公司支持的 Linux 商业发行版诞生了。今天,它们中的两个仍然代表了大部分的企业 Linux 安装:Red Hat 和 SUSE。

提供商业支持有不同的方法。像 Red Hat 这样的公司完全是商业发行。Red Hat 也有一个独立的发行版 Fedora,受社区支持;一些 Red Hat 程序员对它的开发做出了贡献,他们在这里引入了最新的技术,并测试了许多后来被合并到商业发行版中的变化。Canonical 公司有一个主发行版 Ubuntu,它对所有用户来说基本上都是一样的,部分由社区支持和开发,但它也为 SoHo 和企业用户提供商业支持,以及一些特别适合企业的工具,如 Ubuntu 服务器版本。

这种商业支持可以通过不同的渠道提供,例如 community one,从专家直接在网站上提供的个人支持(由直接雇主或作为官方合作伙伴的咨询公司提供)到提供帮助的电话热线或网站。

通常,这种商业支持与每年支付的维护合同相关联。一些公司,如 Red Hat 和 SUSE,也提供认证程序和考试,为外部专业人员提供维护这些发行版安装的知识和能力。我将在本章后面详细解释这一点。

方便用户的

我将把用户友好部分分成两组:初学者和高级用户。是的,这有点不公平:使用一个“简单”的 Linux 发行版并不意味着用户没有关于 Linux 的深刻和先进的知识。以苹果为例;他们的 OS X 因其易用性而闻名,即使对初学者来说也是如此,但它也是许多 it 专业人士选择的操作系统,甚至是 Linux 内核开发人员。有些人不希望他们的操作系统妨碍他们的工作;他们想要一个简单易用的操作系统,所以他们选择了一个非常容易安装和维护的发行版,并且只需要很少的时间就可以保持最新。其他人正好相反;他们希望调整操作系统的每一个微小细节,并感觉他们完全控制了自己的机器。因此,根据易用性选择发行版并不总是知识或能力的问题;大多数时候是个人喜好问题。

所以,当谈到 Linux 发行版的友好性时,有两个问题需要考虑:你对 Linux 的经验水平,以及你想花多少时间来维护、定制和学习你的操作系统。

初学者

这是你第一次使用 Linux 吗,或者你对它有一点经验吗?你想花很少的时间调整你的发行版吗?你想尽可能避免使用终端吗?你对学习 Linux 兴趣不大吗?如果你只是想安装操作系统,然后花很少的时间保持更新,你应该考虑一个“初学者”的 Linux 发行版。请记住,易用性并不意味着低劣的质量、稳定性或功能。事实上,更大的发行版试图使操作系统的体验尽可能愉快,对用户隐藏所有的细节,以此吸引尽可能多的用户。

说什么容易使用并不总是像你想的那样清楚。这里有大量的主观性。然而,有一些共同点允许我们在哪些 Linux 发行版比其他发行版更友好的问题上达成某种共识,比如安装发行版有多容易,更新和安装新程序和硬件有多容易。

这种发行版的一些例子有 Ubuntu(事实上,它在这方面有很大的影响),Mint 和 elementary OS。

高级用户

和前面的类别一样,体验和这种发行版之间没有直接的关系;一些不熟悉 Linux 的用户从一个“高级”发行版开始,因为他们想尽可能多地了解这个操作系统,并想拥有一个适合他们需要的操作系统。我强烈反对这种方法,因为愿望和意愿并不总是一起出现,这种方法通常以失败告终。如果你来自 Windows 或 OS X,并且你决定从一个面向高级用户的发行版开始你的 Linux 体验,你必须准备好学习很多,我的意思是大量的,涵盖大跨度的概念,从你的机器内部到你的操作系统内部。Linux 不像 Windows,因为你没有一个 GUI 来调整你的操作系统的任何方面(事实上,对于 Windows 中的一些东西来说是这样的);相对于编辑简单的文本文件,您必须使用终端来编写一些复杂、晦涩且通常很长的命令。这不是在公园散步。但是如果你愿意的话,这将会是一次非常有趣和愉快的经历。所以,这取决于你,但是如果你对 Linux 没有什么经验,我强烈建议你先从一个“初学者”发行版开始,了解一下操作系统是如何工作的,并学习一些基本概念。

另一方面,所有的发行版(嗯,大部分桌面版)都允许你通过终端在很深的层次上调整它们。这在许多“初学者”发行版中是适得其反的;它们安装后运行良好。如果在关键点上对他们定制太多,最终可能会后悔。这是高级用户发行版存在的主要原因之一。如果你想深度定制你的 Linux 操作系统,你必须使用一个发行版,这个发行版可以让你在不破坏东西的情况下做到这一点。无论如何,像 Debian 这样的发行版有一种友好的方式来按照你的意愿定制发行版(有时也会破坏它)。

这个类别中的一些发行版是 Arch Linux、Gentoo、NixOS 和 Slackware。

稳定性

对于需要操作系统的平均无故障时间(MTBF)最小的专业用户来说,稳定性是另一个关键因素。对于专业用户来说,时间就是金钱。他们的 Linux 安装失败可能会导致其他严重问题,如数据丢失/损坏或安全漏洞。当我在这里谈论稳定性时,我指的是发行版更新软件包和内核的频率。

传统上,这一因素被分为两类:标准发行版和滚动发行版,但在一些发行版中,这种划分更像是一条模糊的线,没有明确的模型存在,两者可以同时使用。

标准版本

当您需要一个用于专业环境的 Linux 发行版时,标准发布模型是理想的模型。这个发行周期是基于版本的(有或没有固定的周期),发行版的核心基础保持稳定,直到下一个发行版,它只包含错误修复或安全补丁。一个新版本上线,内核和包都不是新鲜的;它们是稳定的版本,经过良好的测试,可以说是安全的。例如,这是红帽的模型。版本通常与重要功能的开发或升级相关联,并且在发布之间没有特定的时间间隔;他们准备好了就被释放。Linux 内核本身在其版本发布中遵循类似的模型。

其他发行版如 Ubuntu 有一个基于时间的发布,目前是一年两次(六个月)。每第四个版本(两年期)是一个特殊的版本,名为 LTS(长期支持),旨在成为一个长期保持的稳定版本(五年,而普通版本为九个月)。LTS 是面向专业环境的。

Debian 更进一步。它有三种不同的模型:稳定、测试和不稳定。稳定模型遵循标准模式,不稳定模型是一个滚动发布的发行版,测试模型涵盖了中间的一些内容。Debian Stable 是一个非常常见的 Linux 发行版,用于许多 web 服务器和其他可靠的服务。

在这种模式下,一旦新版本发布,您通常有两种选择:

  • 将您的发行版升级到新版本。当一切顺利时,这是最舒适的选择。然而,即使一些发行版特别注意使这个过程尽可能顺利,它也不总是完美的。有时这是由于过程中的错误,但大多数时候是由于用户的大量定制。请记住,在任何发行版升级之前,请务必备份您的数据(您应该定期备份)。
  • 备份您的数据,进行全新安装,并恢复您的备份。与升级选项相比,这需要更多的工作和时间(显然,如果一切顺利的话),但它确实将您可能发现的问题减到最少。一些用户最终这样做是因为在各种不成功的发行版升级后获得了经验。

滚动释放

滚动发行版试图跟上 Linux 内核和不同软件包的发展步伐,因此它们总是有最新的可用版本。为了做到这一点,一些发行版也倾向于最小化那些包和内核的定制,所以它们几乎是普通的包。它们面向高级用户和渴望拥有尖端技术的人。一旦你安装了这些发行版中的一个,如果一切顺利,你通常只需要做定期更新。

这些发行版被认为不稳定,更难维护,但事实并不像听起来那么严重。您可以在日常工作中使用这些发行版中的一个,不会有任何问题;有些人甚至在服务器中使用它们。这些发行版中的许多都提供了保持一定稳定性的解决方案,比如不同的存储库将最新的软件版本与稍微过时(通常是几天或几周)但更可靠的版本分开。

有一种有争议的观点认为,滚动发布的发行版在安全方面总是更可靠,因为最新版本修复了更多的漏洞,并且不太容易出现零日漏洞,因为没有时间去发现它们。我认为你应该对这个理论有所保留:一些漏洞在一个又一个版本中存在,因为没有人注意到它们。

有许多发行版遵循这种模式;最流行的是 Debian Unstable、Arch Linux 和 Gentoo。

Tip

在这本书里,我尽量做到客观。如果你对我的软件选择感到好奇,我每天在我的笔记本电脑和工作站上使用滚动发行版,但我总是在我的服务器和关键机器上使用标准发行版。

硬件支持

硬件支持的问题通常就像负责维护和开发 Linux 发行版的团队有多少资源可用一样简单。内核直接支持很多硬件,但是发行版控制着自动检测和启用这些硬件的能力。此外,有些发行版出于道德或许可的原因没有将二进制驱动程序添加到发行版中,这使得支持某些硬件变得非常困难。打印机、显卡、网卡和无线设备通常都是有问题的设备,甚至一些笔记本电脑对 Linux 的支持也很差。

令人高兴的是,在过去的几年里,这个领域已经有了巨大的进步,通常普通的硬件根本没有问题。但是专用设备通常需要背后的公司为 Linux 开发驱动程序。尽管这在今天很常见,但还有另一个问题:通常公司只在。转速和。deb 包,迫使用户进行转换或者从其他发行版的源代码进行编译。有时这并不能很好地工作,因为它们是为某个发行版定制的,通常是 Red Hat/Fedora 和 Debian/Ubuntu。

因此,在你购买任何硬件之前,你必须知道它是否与 Linux 完全兼容;这对于笔记本电脑尤其重要。有一些网站专门报道这个问题。确保你在 Linux 中遇到的硬件问题最少的最好方法是做你的研究,选择一个大的发行版(Ubuntu,Fedora,Debian,Mageia,OpenSUSE ),这些发行版通常有很多资源或者背后有一家公司。你可能认为这些大的衍生发行版会提供同样的支持,但事实并非总是如此;如果支持的话,这并不总是像在他们的母发行版中添加相同的硬件那么简单。

美学

美学是一个非常主观的话题,但是从一个完全客观的角度来看,有一件事是你可以接受的:发行版是否照顾到了它的设计。通常,与前一个因素一样,这与背后团队可用的资源水平直接相关。让一些社区开发者试图让一个发行版看起来令人愉快与让一组设计师专注于它是不一样的。有一个明显的例外:elementary OS,这是一个社区驱动的发行版,旨在提供尽可能最好的设计体验,背后只有一个小团队,但有大量的好品味(这是一个基于 Ubuntu 的发行版;他们主要关注可用性和设计)。它与 OS X 有着相同的目标:易于使用,给人以感官享受(事实上,它被批评从 OS X 那里获得了大量灵感)。有一个名为 Ozon OS 的新项目,它看起来遵循初级 OS 的步骤,但有自己的设计感;它仍处于早期阶段,但似乎很有前途。其他设计非常好的发行版(我不必喜欢它们,但我承认他们的努力)有 Ubuntu、OpenSUSE、Mint、Mageia 和 Fedora。

但是说实话,一旦你选择了一个主要的桌面环境,KDE 或者 Gnome,你就没有太多的改进空间了。即使你定制了它和默认安装的主程序,在软件仓库里有那么多软件有它自己的设计和美学,这个软件不使用那些普通桌面的 API。所以很难在操作系统中保持一致的审美。这个问题在 Windows 中也很常见,在 OS X 中也很少,但是在 Linux 中更明显。如果你安装了一个糟糕的自带设计的软件,那么即使初级操作系统在所有(少数)原生应用中是漂亮和同质的也没有关系。如果设计对你来说非常重要,请记住,如果你愿意安装更多的软件,而不是初级操作系统提供的少数开发应用程序,像 Mint 这样的 Linux 发行版具有非常好的美学效果,但稍加定制,其设计总是更加同质。

对我来说,即使我热爱并支持 Linux,如果不认识到一个好的设计和同质的外观对大多数 Linux 发行版来说还远远不是理想的,那将是愚蠢的。

桌面环境

桌面环境也是口味问题。有些人非常喜欢桌面环境,甚至不喜欢其他环境。最常用和已知的是 Gnome 和 KDE,但也有一些替代的,如 Unity、Mate、Cinnamon、Xfce、LXDE 和 Enlightenment。

通常你可以在你的发行版中安装几个不同的桌面管理器,甚至是同时安装(选择你想在登录时使用的一个),但是每个发行版默认都有一个预定义的桌面管理器是正常的。例如,有些人选择 OpenSUSE 而不是 Fedora,因为他们更喜欢使用 KDE 而不是 Gnome。但是一些大的发行版让你在安装的时候选择你想用的 DE。

要衡量桌面管理器在发行版中的影响,可以考虑 Linux Mint。当 Gnome 项目发布其桌面环境的版本 3 时,发生了巨大的变化;因此,许多批评者希望继续开发第 2 版。Mint 决定开发两个桌面环境来取悦那些用户:Mate 基于 Gnome 2,Cinnamon 是 Gnome 3 的一个分支。由于这个决定,发行版获得了很多用户。后来,Ubuntu 开发了自己的桌面环境 Unity,这也引起了很多争议和很多不喜欢它的人,所以他们主要迁移到 Mint。这两次大规模的用户迁移和在两种环境下的出色工作意味着 Linux Mint 现在是 distrowatch 上最受欢迎的发行版。因此,显然 DE 对大量用户来说非常重要。

我将在专门讨论发行版的章节中更详细地介绍这一点,展示每个发行版可用的 DE(和预定义的选项)。

Tip

我不使用任何桌面环境。我使用了一个窗口管理器,更准确地说是一个平铺窗口管理器(特别是 Awesome WM)。对于许多高级用户来说,这是一个非常时髦的选择,有很多可能性,最著名的是 OpenBox、FluxBox、xmonad、i3、Awesome WM 和 dwm。

初始化系统

直到最近,我还没有把 init 系统作为一个决策的考虑因素,因为几乎所有的发行版都在使用同一个 init 系统,init (SysV)。但是在 2006 年,Ubuntu 发行版(及其所有衍生版本)实现了一个新的 init 系统 Upstart,它也被 Red Hat 和 Fedora 采用为默认系统。五年前,一个新的 init 系统诞生了,成为 Linux 生态系统中的一场革命,也是一场非常有争议的革命。这个新的 init 系统,systemd,由 Red Hat 的 Lennart Poettering 创建,不仅是一个革命性的 init 系统,它很快就变得不仅仅是一个 init 系统,事实上远不止如此。这让很多人感到愤怒,在这个问题上产生了很多对立的观点。

systemd init 系统打破了一些传统的 UNIX 原则,这对于一些人来说是不可接受的,无论是发行版开发者还是系统管理员。当前的现实是,几乎所有的大型 Linux 发行版都采用了 systemd,而其他发行版完全反对采取这一步骤。有两个案例变得很有名也很有争议:Ubuntu 放弃了自己的 init 系统,转而支持 systemd,Debian 在 Debian 技术委员会成员之间进行了一场非常有争议的辩论后采用了 systemd。这在 Debian 社区中引发了一场爆发,并导致一些成员辞职。这种情况仍然很热,最近从 Debian 派生出一个名为 Devuan 的新发行版,允许那些讨厌 systemd 的人继续使用 Debian(只是作为 Devuan)。2014 年,一些用户发起了抵制 systemd 的运动,但没有产生巨大影响。

因此,如前所述,一些发行版不愿意放弃 sysvinit 或采用 systemd,因此您现在可以在不同的选择之间进行选择。既然这个话题如此有争议,init 系统的类型显然已经成为许多人选择 Linux 发行版的一个考虑因素。

sysvinit(传统初始化)

一些发行版仍然使用传统的 init 系统,也称为 SystemV init,其他发行版提供它作为一个选项。Devuan 就是其中之一,还有 PCLinuxOS 和 LFS。还有一些,但基本上都不是很流行的发行版。我们正处于 sysvinit 时代的末期。

系统

如今,几乎所有流行的发行版和衍生版本都支持 systemd init 系统作为默认选项。它默认包含在 Red Hat、Fedora、Ubuntu、Debian、Arch Linux 和 OpenSUSE 中。

BSD 风格

Arch Linux 使用 BSD 风格的 init 系统已经很多年了,但是它被抛弃了,取而代之的是 systemd。然而,正如 Slackware 一样,CRUX 仍然在使用它。

OpenRC

OpenRC 是由前 Gentoo 开发人员 Roy Marples 创建的,它仍然是 Linux 发行版使用的 init 系统。Gentoo 还允许将 systemd 作为一个选项,同样,如果您愿意,您仍然可以继续使用 sysvinit。这就是发行版本身的本质:做你想做的事情。除了基于 Gentoo 和 Alpine 的版本之外,我不知道任何其他使用 OpenRC init 系统的 Linux 发行版。

其他人

还有一些其他的 init 系统,但它们仅仅是证明,比如 Guix 的 GNU dmd,Pardus 的 Mudur,GloboLinux 的 BootScripts,或者适用于嵌入式系统的 busybox-init。

正如你所看到的,如果你是一个 systemd 的贬低者,没有太多的选择,但它是 Linux,所以你总是有一些选择。

包装管理系统

在 Linux 中,你使用一个包管理器来安装/更新软件,通常是从互联网上的官方仓库或者直接从一个包。如今,很少需要手工编译一个包(但这种情况时有发生)。软件包管理器是管理操作系统软件的一种极好的、集中的、安全的方式。但是,像往常一样,在 Linux 中有许多不同的包管理器。

我不打算就一个比另一个更好发表我的看法;它们都有优点和缺点。事实是很难,如果不是不可能的话,用一个来完全替代发行版中默认的那个。所以我们可以根据它们的包管理系统来划分 Linux 发行版。同样,共享同一个包管理系统的发行版通常有不同的工具来管理它们;Mageia 使用 urpmi 来管理它的 rpm 包,而 Fedora 使用 DNF(以前的 YUM)。

每分钟转数

RPM 是 Red Hat Package Manager 的首字母缩写,显然是该发行版及其衍生版本所使用的。它也被 SUSE 和 Mandriva 以及它们的衍生物所采用。这是事实上的官方打包系统,也是公司开发者最经常支持的系统。这些包有。rpm 后缀。

一些支持这个系统的 Linux 发行版有 Red Hat、CentOS、Oracle Linux、Fedora、SUSE、OpenSUSE、Mageia 和 PCLinuxOS。

dpkg

Debian 创建的包管理系统叫做 dpkg,它是仅次于 rpm 的第二大使用系统。这些软件包的后缀是. deb。当公司开发人员为 Linux 发布他们的软件版本时,他们通常会提供。转速和。deb 包,有时也是源码。

使用这个系统的发行版有 Debian、Ubuntu、Mint 以及所有的 Debian/Ubuntu 衍生版本。

pacman/AUR、Portage/emerge 和 tgz

pacman/AUR、Portage/emerge 和 tgz 分别是 Arch Linux、Gentoo 和 Slackware 的包管理系统。前两个是复杂和高级的系统,因为它们支持高级和滚动发布的发行版。最后一个几乎完全由 Slackware 使用。

Pacman/AUR 用于 Arch Linux、Manjaro、Parabola、Antergos、Chackra 和 ArchBang。Portage 用于 Gentoo、Sabayon、Chrome Os 和 Funtoo。

NixOS/粉笔

Nix/Guix 是一种新型的包管理系统。它基于一个纯粹的功能模型,允许一系列不寻常的特性,如同一个包的多个版本、原子升级和回滚、垃圾收集等。Nix 是最初的概念;Guix 有类似的方法,来自 GNU 项目。

目前,按照这个领域的技术水平,只有两个发行版支持这些系统:NixOS 和 Nix,GuixSD 和 Guix。

体系结构

由于 RISC 处理器(除了 ARM)的衰落,现代机器中没有太多不同的架构。英特尔处理器显然是市场的主导者,其次是 AMD。得益于移动系统,ARM 处理器越来越受欢迎。但是还有许多其他的架构,比如那些仍然带着装有 PowerPC 处理器的旧 Apple PowerBooks 的人,带有 Intel Itanium 内核的服务器,诸如 SUN UltraSPARC、IBM 大型机等工作站。

默认情况下,Linux 内核支持许多不同的硬件架构,但并不是所有的发行版都支持它们。事实上,大多数发行版只支持主流版本:英特尔,也许还有 ARM。

美国英特尔公司(财富 500 强公司之一ˌ以生产 CPU 芯片著称)

在 Linux 内核中,i686(也称为 586)是 386 之后的 32 位处理器(在内核中不推荐使用),x86-64(也称为 amd64 或 intel64)是 intel 和 amd 的 64 位处理器。几乎所有的发行版目前都支持 x86-64 架构和 i686,但是其中一些正在放弃 i686 架构,比如 Sabayon Linux。

Ubuntu、Debian、Fedora、openSUSE、Mint、Mageia……如前所述,几乎所有这些都支持这两种架构。

手臂ˌ武器ˌ袖子ˌ装备

ARM 处理器是消费电子和移动设备之王;它的无所不在令人震惊。然而,ARM 不像 Intel/AMD 处理器那样受支持,目前只有少数发行版有它的端口。其中一些发行版是 Ubuntu、Debian、Fedora、Arch Linux、Gentoo、Slackware、Kali,当然还有 Android 和 Chrome OS。也许 ARM 正在成为低消费服务器世界中一个有趣的参与者这一事实将改变这一领域中的大参与者的采用(Red Hat 和 SUSE 是第一个在这一方向做出一些动作的)。

其他人

不出所料,其他架构仍然不太受支持。商用的对大型机和 PowerPC 都有很好的支持。如果你正在寻找其他的架构,甚至是奇异的架构,你的决定是明确的:Debian。Debian 支持很多不同的架构,大约有 10 个官方的,更多的是非官方的。您甚至可以找到旧体系结构的映像,并像 20 世纪 80 年代一样安装它们。

安全性/匿名性

如果你关心安全性(你应该关心),你必须知道一些 Linux 发行版比其他发行版更关心这个话题。通常拥有更多资源的大公司,尤其是商业公司,是最专注于此事的。像 Red Hat、CentOS、SUSE 和 Fedora 这样的发行版在默认情况下是最安全的。默认情况下,Linux 是一个相当安全的系统,但是通常 Linux 发行版没有默认的强化安全性;如果你有这方面的知识,你可以这样做,但是你仍然必须依赖发行版的安全性,比如软件仓库。例如,你可以使 Arch Linux 成为一个非常安全的系统,但是直到最近软件包还没有被签名,如果你不知道你在做什么,AUR 软件包可能是一个安全问题。

有几个发行版从不同的角度完全专注于安全性。其中一些是

  • Tails(健忘症匿名直播系统):它基于 Debian,其观点是通过匿名提供安全,保护你的隐私。
  • Pentoo:默认情况下,它是一个基于 Gentoo 的 Live CD 发行版。
  • Kali(以前的 BackTrack):它也是基于 Debian 的,专注于数字取证和渗透测试。
  • Alpine:一个轻量级发行版,关注默认情况下的安全性。一个非常安全的小发行版,它主要是为 x86 路由器、防火墙等设计的。
  • Qubes:它的方法通过虚拟化提供了一个基于组件隔离的安全系统。它是基于 Fedora 的。

原则/道德

在前一章中,你学习了 GNU 项目如何在原则上采取重要的观点,以及 FSF 如何基于一系列坚实的原则和道德创造了一种新的软件许可方式。FSF 有一系列的指导方针(你可以在 www.gnu.org/distros/free-system-distribution-guidelines.en.html )阅读)来确定什么时候 Linux 发行版是自由系统。

This means that these distributions will contain and propose to contain only free software. They will reject non-free applications, non-free programming platforms, non-free drivers, non-free firmware "blobs", non-free games and any other non-free software, as well as non-free manuals or documents.

自由软件基金会:关于自由 Linux 发行版

有几个发行版包含了这些指南,因此得到了 FSF 的认可。如果您想要支持这些指南,您可能想要选择其中一个发行版。但我必须建议你,在这种情况下(当不是?)自由是有代价的,你可能会在你能使用的硬件方面受到很大的限制。这里的主要问题是显卡、网卡和打印机。

一些被 FSF 认可为免费的发行版有 Trisquel、gNewSense、Dynebolic 和 Parabola。您可以在 www.gnu.org/distros/free-distros.en.html 获得完整列表。

现场 CD

Linux Live CD 是包含在 CD-ROM(或 DVD)上的 Linux 发行版,可以像安装在系统上一样引导和运行,但不需要向硬盘写入任何内容。您想在 Live CD 中使用 Linux 发行版有三个主要原因:

  • 在不安装的情况下测试 Linux 发行版。
  • 像救援工具一样使用它来恢复系统。有专门研究这种方法的 Live CD 发行版。
  • 出于匿名/安全原因。一张 Live CD 不会在系统中留下任何痕迹,你可以确信发行版没有被修改(例如特洛伊木马),因为它是只读介质。像 Tails 这样的发行版是这个用例的完美例子。

并非所有发行版都有 Live CD 版本,但 Ubuntu、Fedora、Mageia、Debian、OpenSUSE 和 Mint 都有。如今,笔记本电脑和工作站通常没有 DVD 阅读器,因此这些 Live CDs 通常也可以作为映像安装在 USB 闪存驱动器上并从其启动。

专业认证

一些商业发行版有一个程序来认证专业人员在他们的操作系统上执行管理和工程任务的必要技能。还有一些由第三方提供的认证与任何特定的 Linux 发行版都没有联系。Linux professional 认证通常是在拥有 Linux 基础设施的公司工作的强制性要求,因此对于任何希望使用 Linux 安装的系统管理员来说,这都是一项不错的投资。

目前有五个主要的 Linux 认证,三个与特定的发行版相关,其他的则没有(Ubuntu 过去提供了一个,但在 2010 年停止了):

  • Linux 专业协会的 LPIC 是一个非常好的认证,不与任何发行版相关,但是他们的考试和问题都基于 Red Hat 和 Debian。他们目前提供三种级别的认证:
    • LPIC 1: Linux 服务器专业-初级水平。它要求你通过两门考试:101 和 102。
    • LPIC 2: Linux 服务器专业-高级水平。它也有两个考试(201 和 202),并要求你有 LPIC 1 认证。
    • LPIC 3: Linux 服务器专业-高级水平。它包括三个专业之一的一次考试:
      • 300:混合环境(Linux 和 Windows)
      • 303:安全性
      • 304:虚拟化和高可用性
  • Linux 基金会的 Linux 认证。Linux 基金会最近开始提供两种不同的认证(这些认证基于 CentOS(红帽)、Ubuntu 和 openSUSE):
    • Linux 基金会认证系统管理员(LFCS) -高级水平
    • Linux 基金会认证工程师(LFCE) -高级
  • Novell 提供使用 SUSE Linux 管理系统的认证。当前的 Novell 认证如下(每项认证都需要一次考试):
    • SUSE 认证 Linux 管理员(CLA) -初级水平
    • SUSE 认证 Linux 专业版(CLP) -高级水平
    • SUSE 认证 Linux 工程师 11 (CLE) -高级水平
  • Red Hat 有三个等级的认证来获得发行版专家系统管理员的资格。这是最受认可的 Linux 认证(也是所有 IT 界资格认证中最受认可的一个),其所有者非常受欢迎。
    • 红帽认证系统管理员(RHCSA) -高级水平。它需要一次考试。
    • 红帽认证工程师(RHCE) -高级水平。它需要一次考试。
    • 红帽认证建筑师(RHCA) -大师级。它需要九个不同专业的五次考试。
  • Oracle 有一个 Linux 发行版,最初是 Red Hat 的分支,它在两个级别上提供自己的认证程序:OCA 和 OCP。

作为一名 IT 专业人员,您应该追求这些认证中的任何一个,因此选择这些认证中的任何一个发行版。作为一个公司的 IT 经理,你可能想找一个具有这些资格之一的 Linux 专家来确定她的能力。获得这些认证可能会很贵(RHCA 考试大约需要 4000 美元),并且需要很高的经验水平。最有价值的认证是红帽和 LFC 认证,因为它们是基于实际经验的动手考试,而不仅仅是理论。

Linux 标准库

现在你应该意识到不是所有的 Linux 发行版都是一样的。显然他们有许多共同点,但同时他们也有许多特殊性,使他们彼此不同。为了让软件开发人员(最终是用户)能够忍受和管理这种“混乱”,LSB 1 被创造出来。

Linux 标准库是一个由几个 Linux 发行版支持的项目,旨在提供不同发行版之间的一些共同点。它为文件系统层次结构、库、打印系统、运行级别等提供了标准。LSB 的目标是开发和推广一套开放标准,这将增加 Linux 发行版之间的兼容性,并使软件应用程序能够在任何兼容的系统上运行,即使是二进制形式。此外,LSB 将帮助协调招募软件供应商的工作,为 Linux 操作系统移植和编写产品。

该项目始于 2001 年,其标准的当前版本是 5.0。但是它的影响很小;只有少数 Linux 发行版遵循它,像商业版:Red Hat,SUSE 和 Ubuntu。因此,目前只有一小部分 Linux 发行版接受了这个美丽的想法。此外,由于一些有争议的决定,它受到了 Debian 等发行版的批评。一如既往,Linux 以其巨大的多样性为代价给了你自由。

摘要

在这一章中,我向你展示了在选择任何 Linux 发行版之前你应该考虑的几个因素。使用你最关心的因素来比较发行版。同时,一个残酷的现实在这一章向你揭示了:不仅有大量的发行版,而且它们是非常不同的。尽管有些人致力于“统一”Linux,但还有很长很长的路要走。也许没必要统一 Linux 也许像 containers、Nix 和 systemd 这样的东西在未来会让它变得没有必要。

在下一章,我将向你介绍当前发行版“家族”的谱系。

Footnotes 1

www.linuxfoundation.org/collaborate/workgroups/lsb

三、Linux 发行版家族树

第一个 Linux 发行版是从零开始创建的,只有 Linux 内核和一堆分散的工具(比如 GNU Project 的工具)可以使用。有必要创建一系列新的工具和脚本来组成我们所认为的 Linux 发行版。随着时间的推移,它们会变得更加复杂、先进和有用,但是第一个发行版就是这样从零开始创建的。

但是一旦有了一些足够好的发行版,并且因为其中一些是自由软件,基于这些早期的发行版创建新的发行版就开始有意义了,而不是经历所有的工作来重新创建所需的具体软件。因此,很快就有了基于以前版本的新发行版,但是进行了各种调整以实现创作者的目标。与内核一样,用户社区和免费许可证允许快速采用这种模式。

这种模式仍然是使用最多的,它催生了一系列 Linux 发行版的“家族”。事实上,只有少数 Linux 发行版是基于内核最初的方法创建和维护的。今天的大多数发行版都是从以前存在的发行版衍生而来,有时是从“原始”发行版衍生而来,有时是从衍生产品衍生而来。

创造衍生品的原因显而易见:

  • 你已经喜欢上了一个特定的 Linux 发行版的大部分,但是你想改变一些东西。最好的方法是创建一个分支发行版,并根据需要进行修改。如果你保持同步所有你原封不动的东西,这将有助于多年来开发你的发行版。
  • 您对 Linux 发行版应该是什么有不同的或个人的看法,并且您想创建一个个人发行版,但是您(或您的团队)没有足够的资源来完成所有必要的工作。获取以前的发行版并选择适合您项目的发行版是一个很好的起点。
  • 你想创建一个面向任务的发行版,但是你不想处理从头开始创建一个完整发行版所带来的艰苦工作,所以你选择了一个你喜欢的发行版,因为大部分工作已经完成了。

有时,由于成员之间的意见分歧或不可调和的分歧,分叉起源于发行版社区本身。在 Linux 发行版的历史上有一些著名的例子。

Linux 发行版系谱

在这一章中,我想让你对 Linux 发行版系谱从 Linux 内核诞生之日起是如何发展的有一个简单的了解。你可以通过一个发行版有多少分支或者有多老来看它的受欢迎程度。此外,系谱解释了为什么一些发行版以他们的方式做事情。我不会假装包含所有当前的发行版;这将是一个令人震惊的任务,而且,除了从学术的角度来看,没有太大的帮助;它甚至可能会令人厌烦和困惑。

我将这个谱系划分为三个时期来帮助你们吸收信息,并且我创建了三个时间表来快速展示这个进化。在这些图形中,发行版被表示为原始版本或衍生版本。一些作为 one 的分支创建的发行版可能会随着时间的推移切换到完全原始的方法,或者基于不同于原始版本的发行版。名字也是如此;我使用当前的名称(或最后一个,如果它已经停止使用),但有时名称在其生命周期中会更改不止一次。您看到的日期是每个发行版首次发布的日期;为了清楚起见,我没有列出分发的结束日期。

此外,我不会对每个发行版进行详细的讨论,因为考虑到发行版的数量,这是没有意义的。一些发行版对历史没有重大影响,或者没有足够的不同来评价讨论。至于历史发行版,有这么少的信息可用。对这个话题的深入研究超出了本书的目标,也不是我的本意。

顺便说一下,关于 Linux 的历史,尤其是发行版的信息非常少(而且经常是矛盾的)。应该有人拿起火炬,进行研究,并发表出来。

让我们从图 3-1 所示的早期 Linux 发行版时间线开始。

A367684_1_En_3_Fig1_HTML.jpg

图 3-1。

The Linux distro timeline: 1991- 1995

1991-1995 年:大爆炸

Linux 历史的前五年代表了 Linux 发行版宇宙中的大爆炸,从没有到第一个出现。这也是历史上最重要的四个发行版诞生的关键时刻:Debian、Slackware、SUSE 和 Red Hat。尽管那时有一些衍生产品,但这是基于原创概念的发行版占大多数的时期。

第一个发行版出现在 1992 年,也就是 Linux 内核出现的第一年。都是拓荒者,今天都灭绝了。第一个发行版是由一两个开发者发布的。它们是四大(Debian、Slackware、SUSE 和 Red Hat)的基础,无论是作为衍生品还是作为灵感的来源。让我们来了解一下这些先驱者。

  • MCC Interim Linux:这并不是第一个试图实现与 Linux 发行版相似目标的发行版,但它是第一个我们可以恰当地命名为 Linux 发行版的发行版。它于 1992 年 2 月在曼彻斯特大学(英国)发布,更确切地说是在曼彻斯特计算机中心,因此得名。一组终端用户和编程工具加上内核可以通过一个原始的菜单驱动的安装程序来安装。多亏了它的开发者 Owen Le Blanc 的工作,非 Linux 专家第一次可以在他们的系统中安装这个操作系统。目前已经停产。
  • 软着陆 Linux 系统(SLS):这个名字很能代表第一个发行版的意图。它是由彼得·麦克唐纳于 1992 年 5 月在加拿大发行的。它曾一度是最受欢迎的,但也因其众多的漏洞而受到批评。它是第一个使用图形环境的发行版,X Window 系统(今天仍在使用,来自 UNIX 世界),灵感来自 MCC 发行版。它不复存在了。
  • TAMU:这个发行版是由德克萨斯 A&M 大学 Linux 用户组和 SLS 同时发布的。一些消息来源声称这个发行版是第一个包含 X Windows 系统的发行版。和 SLS 一样,它也是一个有问题的版本。它目前并不活跃,但直到 2010 年,人们还试图让它复活。已经停产了。
  • ygdrasil Linux/GNU/X(LGX):第一个背后有公司支持的发行版,Yggdrasil Computer Incorporated,使其成为第一个商业发行版。它以挪威神话中的世界树命名。它是由加利福尼亚州的亚当·j·里彻开发的,并于 1995 年发布。它有三个显著的成就:它是第一个作为 Live CD 发行的,第一个自动配置和检测硬件的,第一个兼容 UNIX 文件系统层次标准的。这也是另一个没能挺过那些日子的。
  • Deustche Linux 发行版(DLD):德国 Stuttgart 的早期发行版,于 1992 年发布。

Tip

如果你想探索更多,看看那些早期发行版到底是什么样子,你仍然可以在 www.oldlinux.org/Linux.old/distributions/ 下载其中一些的旧版本。

现在我们来看看四大。几乎在同一时间(1993 年夏天),但是在美国的两个不同的地方,两个对 SLS 发行版缺乏稳定性感到恼火的开发者有了相同的想法:开始他们自己的发行版。

  • Slackware:由 Patrick Volkerding 在 1993 年创建,最初是 SLS 发行版的一个分支,它是最老的发行版,仍然被积极地维护着。也许是为了避免 SLS 的错误,这个发行版专注于稳定性和简单性。它的创建没有进一步的意图,甚至它的名字也是基于一个笑话,但它是最成熟的,最受欢迎的,也是另一个大发行版的基础。这是第一部真正流行的电影。由于其保守的本质,它可能是当时早期发行版的最具代表性的版本。
  • Debian:伊恩·默多克在 1993 年创建了这个发行版,并以他当时的女友黛博拉和他自己的名字命名。它最初的灵感来自 SLS,但它不是一个叉子。它最大的贡献是 Debian Manifesto,它很早就包含在第一版中,旨在以自由开放的方式维护和开发发行版,就像 Linux 一样,创建了第一个 Linux 发行版社区。这个想法仍然是发行版的核心,并且通过 Debian Social Contract,它继续拥有关于自由和共享的强大价值观。随着时间的推移,它将成为历史上最分叉的发行版之一。

不久之后,另外两个大公司诞生了:

  • SUSE:1992 年 9 月首次发布的德国发行版,至今仍在使用。第一个大型的商业发行版,SUSE 在很长一段时间内是欧洲最常用的发行版之一。它最初是基于 Slackware 的,但很快它开始了自己的发行版,基于另一个发行版 Jurix(现已停产),也是一个德国发行版。
  • 红帽:红帽以销售 Linux 和 UNIX 软件附件起家,然后在 1994 年发布了自己的发行版。它是美国最大的商业发行版(就像 SUSE 在欧洲一样),现在仍然是美国乃至全世界最重要的发行版。它是第一个采用 RPM 包管理系统的,基于 Bogus 发行版之前的开发。

下一节将解释 Linux 发行历史中的中世纪。我把它视觉上分成两组,图 3-2 和 3-3 。

A367684_1_En_3_Fig3_HTML.jpg

Figure 3-3 . The Linux distros timeline: 1996-2005, Part II

A367684_1_En_3_Fig2_HTML.jpg

图 3-2。

The Linux distro timeline: 1996-2005, Part I

1996-2005:Linux 世界的扩张

1996-2005 年期间的特点是四大发行版成为最受欢迎的发行版,并且它们的系谱也在扩大。这是分叉模式普及的时代,四大是分叉最多的,尤其是红帽和 Debian。这也是三个发行版诞生的时候:Gentoo、Arch 和 Ubuntu,这三个发行版将成为许多分叉的来源。

红帽子

这个时代最流行的发行版之一,也是最分叉的发行版之一。一些最相关的基于 Red Hat (RH)的发行版有

  • SCO:最初命名为 Caldera,是第一个完全面向企业世界的发行版。它基于德国 LST 发行版,但也受到了 Red Hat 的启发。它不是 RH 的分支,但它采用了 RH 的许多解决方案。它向其他发行版展示了如何成为公司桌面的替代品,这使得它多年来非常受欢迎。它现在已经不存在了。
  • Mandriva:1998 年发布的法国发行版,在欧洲非常流行,被认为非常友好,易于安装和管理。它被广泛用作 Windows 桌面的替代品。目前已经停产。
  • Fedora:社区开发的 Red Hat 的替代产品,Fedora 得到了公司的支持。它于 2003 年发行。目前,它是一种社区实验室,用于开发/测试母发行版的一些新技术,但最初它是作为一个社区项目创建的,以提供对已经死亡的 Red Hat Linux(RH 的完全开源发行版)的替代。
  • CentOS:类似于 Fedora,CentOS 是部件的分叉。最初它是在 2004 年作为 RHEL 的克隆版创建的,它可能是世界上安装在公司服务器上最多的发行版。

注意

SUSE 在这些日子里没有很多分叉,但它有一个非常重要的分叉,OpenSUSE,它相当于 Red Hat 中的 Fedora。它实际上是 SUSE Linux 个人发行版的继承者。SUSE 是当时 Linux 发行版中最专业的方法,但这意味着大部分代码是私有的,只有几个月后才能免费获得,这严重影响了他的采用,因此也影响了少量的 forks。OpenSuse 发行版是这种模式的一个改变,它在过去的几年里获得了一些流行,但还不足以成为 Red Hat 和其他发行版的竞争对手。

一种自由操作系统

Debian 在这个时期有很多分支,但是最重要的三个是 Xandros、Knoppix 和 Ubuntu。

  • Xandros:Xandros 最初名为 Corel Linux,是一个基于 Debian 的商业发行版,于 1999 年首次发布。最重要的事实是 Linux 上 Corel WordPerfect Office 的可用性。这显然是 Corel 试图与 Windows/Office 二重奏竞争的一次尝试。已经停产了。
  • Knoppix:这是一个德国现场 CD/DVD 发行版,与许多计算机杂志一起发行,这在当时是一种流行趋势。它于 2000 年发布,由于其方法,很快变得非常流行。考虑到不需要安装它就可以运行/测试它,许多不熟悉 Linux 的用户测试并使用了它。
  • Ubuntu:显然是这个时代的大革命,Ubuntu 是最有助于推广 Linux 操作系统的发行版。对很多人来说,它是 Linux 的同义词。这是这个时代最分叉的一个,现在依然如此。最初在 2004 年作为 Debian fork 发布,许多 Debian 用户转而使用它。

原件

这一时期也有一些新的、原创的发行版,其中一些在几年后变得非常流行,并成为许多 forks 的基础。

  • gentoo:1999 年由丹尼尔·罗宾斯发行。它的目标是创建一个没有预编译二进制文件的发行版,该发行版可以专门针对当前的硬件进行调整,并根据用户的需求进行定制。高级用户非常喜欢这个新发行版。
  • 从零开始的 Linux):这从来都不是一个受欢迎的发行版,但是它独特的方式使它成为这个时代的一个重要的输入。它不完全是一个 Linux 发行版;相反,它是一个制作你自己的 Linux 发行版的工具包。它最初发布于 1999 年。
  • Arch:受 CRUX(这一时期的另一个发行版)的启发,Arch 在高级用户中非常受欢迎,后来成为许多 fork 的基础。它的目标是极简主义和简单,以及权力和保持最新的能力。它于 2002 年 3 月发行。
  • NixOS:一个围绕革命性的包管理器 Nix 构建的发行版,它仍然是一个最先进的发行版。它并不广为人知,也没有叉子,但它仍然是那个时代的一个重大事件。

Slackware

Slackware 继续拥有忠实于该发行版的粉丝,但它不像 Debian 或 Red Hat 那样受欢迎。它有一些分支,像 Slax 和 Vector,但是远远少于 Debian/Red Hat 的分支数量。

图 3-4 和 3-5 显示了 Linux 发行版历史时间线上的最后一个时期。这一阶段将在下一节中解释。

A367684_1_En_3_Fig5_HTML.jpg

图 3-5。

The Linux distro timeline: 2005-2015, Part II

A367684_1_En_3_Fig4_HTML.jpg

图 3-4。

The Linux distro timeline: 2005-2015, Part I

2006-2015:整合——几颗恒星,许多行星

2006-2015 年期间是少数明星的巩固期,即 Ubuntu、Debian 和 Red Hat,它们都有许多分支(尤其是 Ubuntu ),并继续受欢迎。Slackware 和 SUSE 继续占据重要地位,但它们积极分流的时代早已过去。另一方面,Arch 和 Gentoo 已经成为流行的发行版,并且有许多分支。仍然有空间出现新的原创发行版,一些像 QubesOS(不流行)或 Android(目前世界上使用最多的 Linux 发行版)一样具有革命性。

  • mint:Ubuntu 最受欢迎的叉子,它太受欢迎了,以至于最近在 distrowatch 上超过了 Ubuntu 的名气(但我怀疑它有那么多安装)。Ubuntu 发布仅两年后,Mint 就诞生了,它提供了一种不同于最初发行版的“风味”。目前,它有基于 Debian 而不是 Ubuntu 的替代版本。
  • 初级操作系统:它诞生于 2011 年,旨在提供更好更简单的 Ubuntu。事实上,发行版的起源是一个 Gnome 主题。
  • Mageia:诞生于 2010 年 Mandriva 的灰烬,它的目标是继续为之前发行版的孤儿用户提供相同的体验。
  • Android:严格来说,它不是一个 Linux 发行版,但它是一个基于 Linux 的操作系统,许多人认为它是一个发行版。它于 2008 年发布,专注于平板电脑和智能手机等移动设备。
  • Tails:对于那些关心隐私和匿名的人来说,Tails 是基于 Debian 的,最初是在 2009 年开发的。这是一个现场 CD 发行版,由于斯诺登的爆料,它在安全领域产生了重大影响。

摘要

本章简要回顾了 Linux 发行版的发展,以及如何根据它们的起源将它们归类为“家族”。现在想象一下,如果我列出了目前可用的大约 700 个发行版(其中一半以上已经停产),这一章会有多长。我希望这一章能帮助你理解 Linux 发行版的起源以及它们之间的关系。

在下一章,我将向你展示 Ubuntu Linux 发行版。

Footnotes 1

我只知道一本关于这个主题的书,Glyn Moody 为基础书籍写的《反叛代码:Linux 和开源革命》,但它只详细介绍了 Linux 的最初几年。

四、Ubuntu

Ubuntu 是最著名的 Linux 发行版之一(也是使用最多的),所以它可能是非高级 Linux 用户第一个想到的。其实很多人觉得 Linux 和 Ubuntu 是一回事。这一点尤其引人注目,因为 Ubuntu 是一个相对较新的发行版(与其“母”发行版 Debian 相比只有 11 年的历史,Debian 已经有 22 年的历史了)。显然,Ubuntu 为了获得这样的认可,做了一些非常出色的事情。我可以有把握地说,说到 Linux 的历史,你可以把它分为 Ubuntu 之前的时代和之后的时代。我认为这是我开始 Ubuntu 发行版分析的足够理由。

历史

在 20 世纪 90 年代中期,一位名叫马克·舒托沃尔斯的南非企业家(见图 4-1 )创立了一家名为 Thawte 的数字认证机构和互联网安全公司,该公司后来成为互联网上的第二大公司(直到其主要竞争对手 VeriSign 在 1999 年以数亿美元收购了它)。突然变得富有,舒特尔沃斯决定用这笔钱来实现他的一些梦想。在建立了一个非盈利组织(沙特尔沃思基金会,或 TSF),一家风险投资公司(HBD 的“龙在这里”),并成为第一批太空游客之一(都是在出售后的前三年),他在 2004 年迈出了一步,这将使他成为 Linux 世界最知名的人物之一,一些行动的催化剂将决定 Linux 在未来如何被世界其他人所看待。

A367684_1_En_4_Fig1_HTML.jpg

图 4-1。

Mark Shuttleworth at Linuxtag 2006 at Wiesbaden, Germany

作为 Debian 的长期用户、维护者和开发者(以及一般的开源倡导者),舒特尔沃斯坚信 Linux(作为发行版)可以成为主流,从而与当时的主要操作系统,即 Windows 和 Mac OS 竞争。他对开源和软件自由有着坚定的承诺,并希望回报社区,因为这是他以前的公司及其成功的基础。然而,他认为,鉴于 Debian 的社区管理性质,给它带来巨大而彻底的改变将是一项巨大的事业。因此,最简单也是最好的解决方案是使用 Debian 作为新发行版的基础。

2004 年 4 月,他会见了十几个来自 Debian、GNU Arch 和 GNOME 项目的开发人员,以勾勒出一个更好的 Linux 发行版。他们称自己为“疣猪”,并在六个月内完成了 Ubuntu 的第一个版本“疣猪”。

舒特尔沃斯还创立并资助了 Canonical Ltd .,一家总部位于英国的公司,为 Ubuntu 提供商业支持和服务。这家公司的名字传达了一个明确的信息:他们想成为所有其他公司的典范。为发行版选择的名字 Ubuntu 也是一个声明。Ubuntu 一词源于祖鲁族(南非的一个部落),意思是“对他人的仁慈”它也意味着“我之所以是我,是因为我们都是谁。”这就是 Ubuntu 背后的精神。

Ubuntu 很快赢得了几个奖项和专业媒体的认可,然后它迅速成为最著名的发行版。我个人在 2005 年到 2012 年把发行版作为我的主要操作系统,我记得它已经在几乎每个高级 Linux 用户的舌尖上。今天,Canonical 估计有 4000 万 Ubuntu 桌面用户,并且还在增加。Ubuntu 在服务器市场也非常突出,尤其是在云中,它是安装最多的发行版之一。此外,来自 Canonical 的 Dustin Kirkland 最近声称,有超过 10 亿人通过服务器、云实例、虚拟映像、手机等直接或间接使用 Ubuntu。

批评和争议

Ubuntu 不得不面对许多批评和争议。舒特尔沃斯和 Canonical 对 Ubuntu 成为桌面市场和其他领域的竞争对手所必须走的道路有着独特的愿景,他们毫不犹豫地做出创新和改变,摆脱 Linux 和其他发行版的自由软件传统。一些用户非常保守,他们不喜欢突然的改变,尤其是如果他们喜欢 Ubuntu 的话。

结果,Ubuntu 从最受欢迎的 Linux 发行版之一变成了最受批评的发行版之一,并且失去了许多用户。我想这是当你成为桌面 Linux 发行版之王时所付出的代价。我感觉在过去的几年里,自从决定让 Ubuntu 成为一个无处不在的寻求融合的发行版后,它似乎有点迷失了方向。我希望在未来,Ubuntu 能够重新成为永远改变了 Linux 世界的令人惊叹的革命性发行版。

哲学

Ubuntu 最初的理念是创建最好的 Linux 发行版,并与操作系统领域的其他主要参与者竞争:Windows 和 OS X。今天,理念没有太大变化,但最近 Canonical 希望征服桌面和服务器市场以及移动设备、云和物联网。Ubuntu 希望无处不在,成为最好的。

最初 Canonical 希望提供一个易于使用、可访问、本地化并由社区驱动的发行版。它还希望是可预测的,所以频繁的发布是一个关键点。这在今天仍然是正确的,这个目标已经扩展到提供一个无处不在的体验,你可以在几乎每一个设备上拥有相同的分布。

发行版选择标准

现在你知道了它的起源,让我们来看看 Ubuntu 是如何与第二章中讨论的发行版选择标准相比较的。

目的和环境

Ubuntu 主要是一个通用发行版,但最近 Canonical 正在寻求成为一个可以安装在传统笔记本电脑/台式机领域以外的所有类型硬件上的发行版,如移动设备(智能手机和平板电脑)、云、服务器和物联网(物联网,即连接到互联网的电子设备)。为了实现这一目标,它创建了同一发行版的不同版本,以适应特定的任务。因此,我们可以说 Ubuntu 是一个通用的发行版,也是一个面向任务的发行版,这取决于你使用哪种风格。

目前,Ubuntu 已经有了针对不同环境的“版本”,但并不是所有版本都可以下载。

  • 桌面:这是发行版的传统版本,它是通用的,面向工作站、台式机和笔记本电脑。
  • 服务器:这个版本安装在服务器上,所以它是面向任务的。
  • 云:可以作为最常见的公共云(如 Amazon AWS、Google Cloud 或 MS Azure)的图像,该版本也有完整的 OpenStack 产品。作为其面向物联网的一部分,还有 Ubuntu Core,可以在云环境中使用。
  • 麒麟:这是为中国市场改编的桌面版本,它符合中国政府的采购条例。
  • 手机(移动):这个版本不能从网站上下载,但它作为 OEM 操作系统与一些智能手机和平板电脑一起提供。这是 Canonical 最近的一次尝试,目前仍处于第一阶段,因此可用的设备有限。

支持

Ubuntu 是一个得到很好支持的发行版,同时提供商业和社区支持(即使它们有相同的发行版)。对于企业,有 Ubuntu Advantage service,它包括用于管理、自动化、部署和协助的工具,如 Landscape(一个独家技术库)、24/7 电话支持,以及可选的现场专用规范支持工程师。为此,您必须根据您的安装规模每年支付定额。你可以在 www.ubuntu.com/management/ubuntu-advantage 了解更多关于 Ubuntu 优势的信息。

至于 Canonical 的免费支持,您可以使用两种资源:

此外,您还可以从各种渠道获得免费的社区支持:

当然,你可以为社区做贡献,并尽可能多地回馈社会,以帮助社区在 http://community.ubuntu.com 维持下去。Ubuntu 的应用如此广泛,以至于你还可以联系和参与世界各地的当地社区(LoCo );转到 http://community.ubuntu.com/help-information/meeting-other-ubuntu-users/local-communities

这种级别的支持,不仅在规模和质量上都是巨大的,是你在其他发行版中找不到的。这是 Ubuntu 最强的一点。

用户友好性

用户友好性一直是发行版的核心目标。Ubuntu 是一个非常好用的 Linux 发行版;特别推荐给 Linux 世界的新手。它有自己的做事方式,并不是所有人都喜欢 Unity 桌面环境,但一旦你习惯了,它就非常容易使用和直观。此外,从硬件检测到维护更新,它尽可能做到透明和自动化。这一点加上强大的支持使它成为我推荐给初学 Linux 用户的发行版之一。

稳定性

开箱即用,Ubuntu 是一个非常非常稳定的 Linux 发行版。您可以安装一个普通版本(不是 LTS 版本),在几年内毫无问题地使用、维护和升级它,而无需进行全新安装。还可以选择使用 LTS 版本来获得额外的稳定性和安全性保证。LTS(长期支持)版本面向那些需要为他们的系统轻松安装操作系统的人,因为他们的工作依赖于它,或者只是因为他们不喜欢花太多时间来维护他们的操作系统。

Canonical 在他们的发行版中使用了标准发布方案的变体。有周期为六个月的普通版本,也有周期更长的 LTS 版本(大约两年四个标准版本)。标准版本有九个月的维护期,之后将不再得到官方支持。LTS 版本支持五年,并且通常更稳定,因为它们缺乏实验性或部分完成的功能。你可以在 https://wiki.ubuntu.com/Releases 看到日历和发布列表。

Ubuntu 版本有一个数字方案和一个代号的双重命名。数字方案采用 YY 格式。MM,对应发布的年份和月份。通常释放发生在 04 和 10 月(4 月和 10 月)。代号总是由一个形容词和一种动物组成,通常很有趣,就像当前的 16.04 或“Xenial Xerus”版本。

硬件支持

Ubuntu 的硬件支持大概是最好的之一。自动检测最常见的硬件;即使它是显卡,你通常也可以选择安装一个开源或者一个私有的驱动程序。当硬件未知时,通常很容易从硬件公司或社区找到驱动程序的替代来源,因为 Ubuntu 是如此受欢迎的发行版;较小的发行版通常不会有专门的驱动程序。在最坏的情况下,你可以经常使用 Debian 驱动程序。

当一家计算机公司决定销售其机器时,默认(或可选)使用 Linux 发行版作为其操作系统,通常 Ubuntu 是被选中的。从戴尔、惠普、华硕和联想这样的大公司到 System76 这样的专业公司都是如此。

作为一个整体系统,笔记本电脑是最有问题的硬件,但也有一些公司生产的笔记本电脑与 Linux 配合得特别好,如联想、惠普和戴尔。Canonical 有一个网站和一个程序来认证运行 Ubuntu 没有问题的硬件;它叫 Ubuntu 认证硬件,台式机的站点是 http://www.ubuntu.com/certification/desktop

美学

从第一个版本开始,舒特尔沃斯就试图创建一个好看的发行版,Canonical 继续这一努力。logo 在 Linux 世界里,甚至在它之外,都是一个非常容易识别的图标,也是它的原则的明确象征。很容易看出 Canonical 在发行版的每一个方面都考虑到了美学,从网站到发行版本身。以前公司免费送光盘到你家的时候,光盘封套总是设计的非常好。随着时间的推移,设计发生了变化,很明显它还在继续发展。但这是一个非常主观的话题,许多人不喜欢调色板,即橙色和茄子的几个色调。这个调色板是公司形象的一部分,它与 Ubuntu 紧密相连,所以它可能永远不会改变,但它有不止一两个批评者。

桌面环境

从一开始,Ubuntu 就使用 Gnome 桌面环境。第一个衍生品 Kubuntu 和 Xubuntu 默认使用 KDE 和 Xfce 作为桌面的主要区别。但是从 11.04 版本开始,Ubuntu 使用了自己的 Unity 桌面界面。它最初的构想是为了拥有一个独特的界面,可以在所有可用的设备上使用(最初是笔记本电脑,但现在是笔记本电脑、平板电脑和智能手机)。

Unity 的推出在 Ubuntu 社区引起了巨大的争议。许多用户迁移到其他发行版(如 Mint ),因为他们不喜欢新的界面。这在今天仍然是一个问题。两个新的官方口味,Ubuntu Gnome 和 Ubuntu MATE,只存在于热爱 Ubuntu 但讨厌 Unity 的人。

如果你想看到所有不同的官方版本,请进入 https://wiki.ubuntu.com/UbuntuFlavors (并非所有版本都基于不同的桌面环境)。

初始化系统

直到最近,实际上直到 15.04 版本,Ubuntu 一直使用自己的 init 系统 Upstart,它也被 Fedora 等其他发行版采用。(其实最初几年,它用的是经典的 sysv init,System V)。

但是在最近的版本中,Ubuntu 决定加入大多数发行版并采用新版本 systemd。你可以在倒数第二个 LTS 版本(14.04)中找到 Upstart,但是在当前的 LTS 版本(16.04)中它已经被否决了。

在最后一个版本中,您仍然可以通过安装 Upstart 并切换到永久使用它来使用它,但是我不建议任何非高级用户使用它。最后,未来似乎是 systemd,几乎存在于所有的 Linux 发行版中(当然也有例外)。

包装管理系统

因为它最初是 Debian 的衍生物(它仍然很大程度上依赖于这个发行版),所以包管理系统与那里使用的 dpkg 是一样的。当然,Ubuntu 有自己的软件包库和图形工具,但它使用的是 Debian、apt-get 和 aptitude 的经典 shell 工具。典型的用户会使用图形工具来完成这项工作,软件(实际上是 gnome-software),但是当你必须安装一个非常罕见的包或者当你想使用 PPA 时,使用 shell 工具是很常见的(你也可以用图形来完成这项工作)。

PPAs(个人包存档)是 Ubuntu 的一个独特特征(在一些发行版中有类似的东西,但不完全是这样的)。它们是一种将您自己维护的包保存在个人存储库中的方法。这经常被用来添加官方软件库中没有的软件,但是这也是升级时令人头痛和出现问题的一个主要原因,并且它可能会导致很大的安全风险。如果那辆 PPA 不是你的,你必须信任它的主人,反之亦然。通常人们使用 PPAs 来运行软件库中还没有的最新版本;这是一种以某种方式模仿滚动发布的方式,但这是错误的。

Canonical 最近推出的另一项包管理创新是 Snappy 它以前只在 Ubuntu Core 和 Phone 中受支持,但现在是桌面版本的一部分,从 16.04 版本开始。Snappy 是 Nix(和 Guix)包管理器以及苹果操作系统和安卓包管理器的混合体。基本上 Snappy 使用事务性更新(可以回滚)和原子包,减少了复杂性和包之间的冲突。

体系结构

桌面版 Ubuntu Linux 官方仅支持 32 位和 64 位 Intel/AMD 架构。服务器版本提供了针对 ARM 和 IBM Power8 平台的版本。这涵盖了普通用户的大多数用例,但是如果你需要在其他平台上使用 Ubuntu,你必须依赖旧的或者非官方的版本。显然,使用手机版本的平板电脑/智能手机是受支持的,但它是作为捆绑产品出现的(Ubuntu 作为 OEM)。

安全性/匿名性

Ubuntu 是一个相当安全的开箱即用的 Linux 发行版。它不是一个偏执狂级别的安全发行版,但是它使用了 AppArmor 安全模块,并且它的默认值对于大多数用户来说已经足够了。当然,你总是可以让它更安全;您可以安装和配置这些工具,但是您需要知道您在做什么,因为您很容易使它变得更糟。您可以在安装过程中采取一些额外的措施,比如加密您的主目录或整个磁盘,并始终使用一个密码(而且是一个强密码)。官方文档提供了很好的建议;前往 https://help.ubuntu.com/lts/serverguide/security.html

事实上,Ubuntu 用户在安全方面面临的主要风险来自于用户行为。像不使用密码登录、使用弱密码、使用非官方存储库或 PPAs 是最常见的威胁。

至于匿名部分,Ubuntu 在这个问题上通常是尊重的,让用户自己决定是否把他们的信息发给公司来帮助改进发行版。然而,在过去的几年里,由于 Ubuntu 搜索与亚马逊的整合以及包含了一个直接链接到商店的功能,这引起了巨大的争议。后来有一个关闭亚马逊搜索的选项;最后,在当前的 16.04 版本中,默认情况下在线搜索是禁用的。从财务角度来看,我认为亚马逊对这一功能的财务支持帮助 Canonical 平衡了账目。

原则和道德

从一开始,舒特尔沃斯和 Canonical 就对自由软件和开源软件有着强烈的道德和原则意识。这个名字和标志是他们原则的有力宣言。但随着时间的推移,Canonical 和舒特尔沃斯在这些问题上采取了更加灵活和务实的方法,以实现其主要目标,成为桌面市场的替代者,并获得更大的用户份额。这种灵活性意味着发行版可以为显卡和网卡等提供二进制和专有驱动程序。此外,用户可以选择从安装(如 mp3 支持)或从软件中心安装专有或甚至商业软件。

去年,有人批评 Canonical 偏离了它的核心社区。这是有一定道理的,因为当 canonical 转向为所有类型的设备制造一个无处不在的操作系统时,它确实失去了一点焦点。但 Canonical 是一家公司,它必须赚钱。

现场 CD

桌面版的 Ubuntu 也是一个实况 DVD,你可以用它来测试 Ubuntu,而不需要安装它。出于安全原因,您也可以使用它,例如在不在系统中留下任何痕迹的情况下访问互联网,或者如果您当前的操作系统(例如,Windows)被感染或不安全,也可以使用它。高级用户也可以使用它来修复当前 Ubuntu 安装的问题。旧版本通常可以放在 CD 上,但是现在的版本需要 DVD。

专业认证

过去,Canonical 为他们的系统提供专业认证,但现在已经停止了。该认证相当于当前 Linux 专业研究所的 LPIC-1,是一个非常基础的认证。由于 Ubuntu 是基于 Debian 的,所以有一些认证对这个发行版是通用和有效的,比如前面提到的 LPIC 系列或者 Linux 基金会提供的产品。

装置

安装这个发行版或任何其他发行版从来都不是一条直路。有多个选项允许您根据自己的需要或偏好个性化您的安装。我将介绍这个发行版最常见的安装方式,但是我将在本书中向您展示其他发行版中的其他方式,目的是让您更广泛地了解 Linux(作为一个发行版)是什么;我不会仅仅坚持几乎是自动的“下一步”。

你要做的第一件事是从 www.ubuntu.com/download/desktop 下载桌面版本的可安装 ISO 镜像。你也可以在 http://shop.canonical.com 的商店购买一个 u 盘,但是那里唯一的选择是获得 64 位英特尔/AMD 架构的最新 LTS 发行版,如图 4-2 所示。

A367684_1_En_4_Fig2_HTML.jpg

图 4-2。

The Canonical shop, where you can purchase a Ubuntu LTS release on an USB stick

图 4-3 显示下载页面。通常有两个主要选项可供选择:最新的 LTS 版本和最新的普通版本(它们被称为“版本”而不是“版本”,但为了保持一致,我将坚持使用“版本”这个术语)。如果你用你的电脑工作或者你不需要最新版本的软件,我强烈建议你安装 LTS 版本;在其他情况下,选择最新的正常版本,你就可以开始了。在写这本书的时候,相应的版本是 16.04 LTS。

A367684_1_En_4_Fig3_HTML.jpg

图 4-3。

The Ubuntu desktop download page

我选择了最新的 LTS 版本,64 位的 16.04 来展示 Ubuntu 的安装过程,因为这是大多数人会选择的版本。在你按下按钮下载发行版后,Canonical 会向你显示一个中间页面来维护发行版(见图 4-4 )。你可以捐款(你可以出于同样的目的从他们的商店购买商品)或者你可以跳过它继续下载。

A367684_1_En_4_Fig4_HTML.jpg

图 4-4。

The intermediate page where you can donate to the project

如果你需要一个更老的版本,你也可以选择一个替代的下载(下载页面上有一个链接),一个网络安装程序(在安装时从互联网上下载你需要的所有东西;这仅推荐用于快速在线连接),或者您想要使用 BitTorrent 协议来下载 ISO 映像(参见图 4-5 )。

A367684_1_En_4_Fig5_HTML.jpg

图 4-5。

The Ubuntu alternative downloads page for the desktop version

下载 ISO 映像(16.04 版本大小约为 1.4GB)后,您可以将其刻录到 DVD 或 USB 驱动器上。从那个 Ubuntu 镜像启动后,你会看到第一个屏幕,这是一个黑屏,底部有一个图片,如图 4-6 所示。这个画面只持续几秒钟。

A367684_1_En_4_Fig6_HTML.jpg

图 4-6。

The first screen that appears in the boot process

如果您在该屏幕消失前按下任何键,您将跳转到如图 4-7 所示的屏幕。

A367684_1_En_4_Fig7_HTML.jpg

图 4-7。

The text installation menu of Ubuntu

该屏幕是一个文本菜单,允许您使用常规图形安装过程中不可用的几个选项。它允许您测试您的 DVD 光盘或您的内存,通常是为了诊断一些问题发生在以前的安装尝试。但您也可以使用功能键设置其他高级选项,如底部菜单所示,如进行 OEM 或专家安装,或避免某些硬件检测问题,或更改安装的默认语言。这些选项是为中级/高级用户设计的,我不建议尝试任何一个,所以不要在前面的屏幕中按任何键,让我们继续启动过程。

出现的下一个屏幕是另一个黑屏,中间有一个图像,有一个动画图形向您显示启动时的活动(参见图 4-8 )。

A367684_1_En_4_Fig8_HTML.jpg

图 4-8。

Image shown on the boot progress screen

在引导过程结束时,您会在图形环境中看到第一个屏幕,如图 4-9 所示。

A367684_1_En_4_Fig9_HTML.jpg

图 4-9。

The Welcome screen after booting the Ubuntu ISO image

这个屏幕提供了两个主要选项:“试用 Ubuntu”和“安装 Ubuntu”您还可以设置安装过程中使用的语言。在顶部的菜单栏中,您还可以设置其他选项(其中一些等同于我之前向您展示的文本菜单),如网络或辅助功能选项。如果你选择“试用 Ubuntu ”,你将启动一个 Ubuntu 的实时会话,在这个会话中,你可以测试很多东西,而不需要在你的硬盘上写任何东西,并且你总是可以从那里继续安装过程。跳过这个过程。相反,按下“安装 Ubuntu”按钮。

下一个屏幕(图 4-10 )会检查您的计算机是否有足够的磁盘空间和互联网连接。安装发行版不需要互联网连接,但是如果你有一个可用的互联网连接,并且你选择了“安装时下载更新”,发行版将会安装可用的更新包,而不是 ISO 镜像中的旧包。我建议检查这个选项,原因有两个:

  • 如果你想让你的 Linux 保持最新(我强烈建议你这样做),你必须在安装后的第一次更新时花额外的时间下载软件包。所以,如果你不着急,而且你有一个良好的互联网连接,现在就做吧。
  • 如果任何更新都是安全更新,那么当你第一次启动新的 Linux 并使用互联网时,你将避免任何可能影响你的系统/数据的安全漏洞,因为你还没有更新系统。

A367684_1_En_4_Fig10_HTML.jpg

图 4-10。

The first step in the Ubuntu installation process

在发行新版本后,甚至第二天,经常会有新的包更新。在 Linux 和一般的开源软件中,定期更新是非常正常的,甚至是每天更新。如果你使用像 Ubuntu 这样的发行版,也许你不会每天都有更新,但是如果你使用滚动发行版,你一方面可以指望没有任何更新的日子(当然这取决于你系统中安装的软件包的数量和种类)。

该屏幕上的最后一个选项是安装专有软件,如显卡和无线驱动程序、Adobe Flash 或 mp3 Fluendo 插件(允许多个应用程序再现. mp3 文件)。之所以这是可选的,是因为这个软件不是自由许可的,有些人不同意这一点。装不装由你决定;然而,例如,由于音频文件中 mp3 格式的流行,我选择安装插件,这样我就可以播放这些文件。

按下继续按钮。出现的下一个屏幕如图 4-11 所示。这是安装中最复杂的部分,因为您必须做出一些关键的决定。基本上这部分是决定你如何管理你的硬盘来安装 Ubuntu。这里有两个主要选项:自动选项和手动选项。

A367684_1_En_4_Fig11_HTML.jpg

图 4-11。

The installation type screen where you choose how to manage your disk

  • 擦除磁盘,安装 Ubuntu。这是自动过程。Ubuntu 将擦除你的整个硬盘(和所有的数据),并用自动计算的大小创建新的分区。只有在新机器上安装时,才建议这样做。在此选项中,您有两个其他选择:
    • 加密磁盘。这将加密您的整个硬盘,只有您可以使用密码访问其内容。注意!这样,如果你忘记了密码,你就会丢失所有的数据。我只向有 Linux 经验的中级/高级用户推荐这个。此外,请务必备份您的数据!另一件要注意的事情是,这个选项影响你的硬盘性能,因为你的 CPU 必须连续加密/解密你的数据。如果你没有一台现代化的机器、足够的内存和高速磁盘(最好是固态硬盘),我不建议激活这个选项。
    • 用 LVM。这是一种管理磁盘卷的现代方法,比传统的分区方案更加灵活和强大。我只建议中级/高级用户这样做,因为如果您不打算更改磁盘卷,就没有必要这样做。如果您计划将来这样做,请现在激活它。
  • 别的东西。这是完整的手动程序。您必须选择分区(数量、大小、类型、挂载点)以及是否加密它们。此选项不允许您选择 LVM;您必须使用 shell 和一系列命令来完成这项工作。只推荐给那些知道自己在做什么的人。

在对发行版的第一次回顾中,我的目的是向您展示在一个全新的系统中安装一个新的 Linux 发行版是多么容易。稍后,在不同的发行版中,我将向您介绍安装发行版的其他方法,以避免枯燥和重复,并向您展示如何在 Linux 中做某些事情。因此,我将在这里跳过任何高级选项。

如果您按下 Install Now(立即安装)按钮,将会显示一份对硬盘所做更改的摘要(图 4-12 )。这个操作是不可逆的,这是向你展示信息的充分理由。通常它会创建两个分区:一个 ext4 格式的根分区和一个交换分区。因为我正在一个全新的系统中安装 Ubuntu,所以我可以放心地按下继续按钮。

A367684_1_En_4_Fig12_HTML.jpg

图 4-12。

The confirmation step before making changes to the hard disk

图 4-13 显示了用于选择时区以正确调整日期和时间的交互式地图。通常 Ubuntu 会自动检测你的当前时区,但是你也可以通过导航到地图上合适的区域来手动选择。

A367684_1_En_4_Fig13_HTML.jpg

图 4-13。

Interactive time zone selection

选择您的时区并按下继续按钮后,您必须选择您的键盘布局和语言(图 4-14 )。通常这也会被自动检测到。否则,您可以按下按钮,尝试再次以交互方式检测它(它会要求您按下一些键,可能会问一些问题),然后在交互式文本字段中测试结果。完成后,您可以按继续按钮。

A367684_1_En_4_Fig14_HTML.jpg

图 4-14。

Keyboard layout and language selection screen

图 4-15 显示了您必须做出任何决定的最后一个屏幕。你基本上要决定你的名字和密码。实际上,我建议在开始安装之前决定这些事情。我建议你选择一个易于在任何键盘上输入的用户名(如果你愿意,在第一个文本字段中输入你的真实姓名),因此避免任何非英语字母数字字符。如果你的键盘坏了,或者你的安装失败了,没有检测到你的键盘布局,你会为此感谢我的,相信我。

A367684_1_En_4_Fig15_HTML.jpg

图 4-15。

Identity screen where you enter your user name and password

接下来,您必须选择一个密码。最好选择一个强有力的,这意味着使用小写和大写字母,数字和符号。但是有一个简单的方法。我建议如下:从一首诗,一首歌,或者一本书里挑一句你喜欢的,你容易记住的。然后挑出每个单词的第一个字母,加上一对数字和符号,你就有了一个非常强的容易记住的密码。比如考虑一下这句名言:

Ah, captain! My captain! Our terrible trip is over. —— walt whitman, Leaves of Grass, 1891

您可以很容易地编写一个非常强的密码,方法是取每个单词的第一个字母,添加两个不同的符号来分隔不同的部分(使它们在任何键盘上都容易找到),添加作者姓氏的第一个字母和这首诗首次发表的年份的两个数字。

Ocmcoftid.W-91

现在你必须决定当你打开你的电脑或者使用你的密码时你是否想要自动登录。如果您正在只有您现在或将来可以访问的台式电脑上安装 Ubuntu,您可以自动登录。同样,如果这台计算机是为可能记不住密码的老年人或对公众开放的,您可以选择此选项。否则,我强烈建议反对这个选项。

至于加密主文件夹,我给你的建议和加密硬盘一样。同样,请记住,您必须定期进行备份。(经验告诉我,这个你怎么推荐都不为过。)

按下继续按钮开始真正的安装过程。屏幕现在是一个旋转木马,在安装过程的同时向您介绍新操作系统的可能性(参见图 4-16 )。底部是一个进度条和你现在所处的步骤(文本)。这个过程需要的时间取决于你的电脑和你的互联网连接速度,因为它要从互联网上下载几个软件包。

A367684_1_En_4_Fig16_HTML.jpg

图 4-16。

Copying the files to the hard disk and finishing the setup

在硬盘上安装 Ubuntu 的最后,您会看到一个对话框,通知您安装已完成,您需要重新启动计算机才能享受新的 Ubuntu Linux 操作系统(参见图 4-17 )。

A367684_1_En_4_Fig17_HTML.jpg

图 4-17。

The installation is complete . Restart your computer

所以重启你的电脑。启动后,出现的第一个屏幕是启动新会话的登录屏幕(见图 4-18 )。在这里你需要介绍你的密码(我希望你没有忘记它。每次管理过程都需要这个密码)。如果您想在系统中做一些事情(如浏览互联网或使用任何已安装的应用程序),您可以作为访客登录,但此会话中的所有数据都是临时的,您将无法访问硬盘上的数据。然而,对于系统的任何访问者来说,这是一个理想的选择。

A367684_1_En_4_Fig18_HTML.jpg

图 4-18。

The login screen to Ubuntu 16.04 LTS

所以输入你的密码。现在你可以享受 Ubuntu 了。您将看到的第一个屏幕是键盘快捷键列表(参见图 4-19 )。按住“Super”键(通常是带有 Windows 符号的那一个)可以一直显示该屏幕。一旦你学会了,这些快捷方式是非常有用的。它们会帮助你提高生产力,所以不要忽视它们。

A367684_1_En_4_Fig19_HTML.jpg

图 4-19。

First screen after you successfully install Ubuntu

如您所见,安装过程非常简单。不要被那些说 Linux 很难安装和使用的谣言所左右。如今,这不是真的;你可以很容易地安装和使用 Linux,Ubuntu 就是一个很好的例子。当然,你可以选择一个更复杂或更精密的,你可以从文本菜单和专家模式下安装相同的 Ubuntu,但这取决于你和你的知识和经验。

保持

维护你的 Linux 操作系统有三个基本任务,Ubuntu 让它们变得非常容易。与安装过程一样,我将向您展示完成这些事情的简单方法;我将在其他章节中介绍高级选项。这三个基本任务是更新、安装/删除应用程序和升级。

更新

通常 Ubuntu 会在有新的更新时通知你(见图 4-20 ),你只需要按照步骤操作。但如果你想手动检查是否有新的更新,然后安装它们,这是非常容易的;你只需要执行软件更新程序(见图 4-21 )。

A367684_1_En_4_Fig21_HTML.jpg

图 4-21。

The Software Updater application checking for updates

A367684_1_En_4_Fig20_HTML.jpg

图 4-20。

Ubuntu updates notification dialog

通常这个过程不会给你带来任何问题,但有时也会发生不好的事情。如果你经常调整你的操作系统(通过互联网上的教程)或者使用 PPAs 安装程序,你迟早会遇到这个问题。如果你只使用 Ubuntu 的图形应用程序并遵循既定的做事方式,很少会出现任何问题。当你玩火时,坏事就会发生。如果你被烧伤了,用可用的方法寻求帮助;这通常足以解决任何问题。有时,一些硬件驱动程序的更新,比如显卡,会让你头疼,但这种情况很少见,通常你可以重新安装以前的版本。

一些 LTS 版本有一个。x 后缀,其中 x 是一个数字,例如在 14.04.3 LTS 版本中。这个后缀指的是目前可用的 LTS 支持堆栈。这些支持栈是 Ubuntu 选择在 LTS 版本中为内核和 X windows 系统带来更新的方式。默认情况下,这包含在 LTS 版本的最新 ISO 映像中,但是如果您已经安装了一个,并且想要更新到那个位置,您必须通过 shell 中的命令手动完成。你可以在 https://wiki.ubuntu.com/Kernel/LTSEnablementStack 获得更多关于这个话题的信息。

管理应用程序

迟早你会想要安装新的软件或删除你不使用或不喜欢的软件包。为此,Ubuntu 给了你一个非常简单完整的 app,名为 Software,是 Gnome 的官方应用管理工具(图 4-22 )。你可以从中删除或添加任何官方存储库中可用的应用程序,这里有很多。您还可以检查软件包更新,并从那里执行它们。

A367684_1_En_4_Fig22_HTML.jpg

图 4-22。

The Software tool

应用程序按类别(和子类别)组织。如果你点击其中一个,你会看到该应用程序的详细简历,有时甚至会看到截图(见图 4-23 )。安装/拆卸过程非常简单直观。

A367684_1_En_4_Fig23_HTML.jpg

图 4-23。

The Software tool showing information about an application

升级

在更新的情况下,当有新版本时,您通常会得到通知。但是,如果你想在有新的 LTS 版本(默认)或者普通版本可用时得到通知,你可以选择系统设置工具的“软件&更新更新通知我有新的 Ubuntu 版本”选项。使用的应用程序与更新情况下的相同;您也可以手动调用它。这里的区别在于任务的持续时间,这一点更为关键;如果在此过程中出现问题,您可能很容易导致系统无法使用。如果你对你的系统做了很多调整,并且使用了外部 PPAs,那么升级过程经常会在某个时候失败,你最终会得到一个升级了一半并且通常不可引导的操作系统。喜欢用他们的 Linux 系统做这些事情的爱好者通常会通过只保留他们的数据(或者从备份中恢复)来全新安装新版本。我建议您在将发行版升级到新版本之前备份所有数据。

利弊

我将列出一些我个人认为 Ubuntu 发行版的利与弊。当然在这件事上总有讨论的余地,但我会尽我所能做到尽可能客观。

赞成的意见

  • Ubuntu 是最容易使用的一个。
  • 毫无疑问,它是所有 Linux 发行版中使用和安装最多的。
  • 它得到了发行版(和其他发行版)的官方支持,并且有一个非常大的社区愿意帮助你。
  • 它有强大的硬件支持。如果一个公司只支持几个发行版,Ubuntu 或 Debian 可能会在其中。
  • 至于应用程序,如果它们只支持几个包管理器,很可能 dpkg 将被包括在内。
  • 它提供了一个定期发布计划。您总是知道下一个版本什么时候发布,这在安排维护时是一个优势。LTS 版本提供额外的质量和稳定性。
  • 你可以在智能手机或平板电脑上使用 Ubuntu,体验几乎和在笔记本电脑或台式机上一样。

骗局

  • 不是每个人都喜欢团结。但是你可以选择另一种版本的 Ubuntu。
  • Canonical 对 Linux 有着独特的看法。公司已经按自己的方式行事,某些人不喜欢这样。
  • 有时,Canonical 会在正常版本中引入一些不成熟或考虑不周的变更。为了避免这种情况,你可以使用 LTS 版本,但是你失去了新的创新。
  • 如果你喜欢一个只有自由软件的完全免费的 Linux 发行版,Ubuntu 不是你的发行版(但是在文本菜单中有一个选项可以只安装自由软件)。
  • 有时发行的商业方面压倒了社区方面,比如与亚马逊的整合。
  • 创建一个可以在所有类型的设备上使用的 Linux 发行版的大目标意味着对桌面和其他领域的关注的减少。他们没有为桌面提供最好的发行版,而是在所有场景下都提供一个普通的发行版。
  • Ubuntu 充分利用了 Debian 发行版的工作,但是它并没有回馈太多;Linux 内核也是如此。

摘要

我在这里详细分析了最著名的 Linux 发行版 all,Ubuntu,从它的起源和哲学到安装和维护。关于利与弊和决策标准的部分给了你一系列的论据,以一种更客观的方式将这个发行版与其他发行版进行比较。

在下一章,我用 Fedora 做同样的事情。

Footnotes 1

http://insights.ubuntu.com/2015/12/22/more-people-use-ubuntu-than-anyone-actually-knows/

五、Fedora

Fedora 总是最受欢迎的 Linux 发行版的前五名,这一优势部分来自它的“老大哥”,Red Hat,它不仅将 Fedora 用作其发行版的社区版,还将其用作开发的原型。但是忽视 Fedora 本身的优点是不公平的。它有一个庞大的专家社区。它不是 Linux 新手的最爱,但是许多有经验的 Linux 用户、开发人员和系统管理员都把它作为他们的默认发行版。因为 Red Hat,虽然它最近在更容易使用或流行的发行版中失去了吸引力,但它仍然有很好的未来。

历史

Fedora 项目成立于 2003 年 9 月 22 日,当时 Red Hat 决定将 Red Hat Linux 拆分为 Red Hat Enterprise Linux (RHEL)和另一个基于社区的 OS Fedora。与此同时,另一个发行版,红帽专业工作站,被创建,目的是填补 RHL 曾经占据的地方,但没有一个明确的路线表。非企业 RHL 用户很快转而使用 Fedora。同年 11 月 6 日,Fedora 发行版首次发布。

Fedora 的名字来自于一个以前的志愿者项目,Fedora Linux,它制作附加软件;灵感来源于红帽标志(shadowman)的角色所戴的帽子。

哲学

Fedora 的理念是两个目标的结合:作为 Red Hat Enterprise Linux 的社区版,以及作为一种新技术的实验室,这些新技术可能会集成到 Red Hat 中。事实上,Red Hat 的新版本来自 Fedora 版本的稳定、安全和改进版本(它们还提供 Red Hat 专有的技术和软件)。因此,Fedora 专注于创新,专注于为 Linux 内核本身做出贡献并与之合作。Fedora 的目标是成为创新的领导者和创造 Linux 发展道路的发行版。多亏了 Fedora,新的 init 系统 systemd 被几乎每个发行版广泛采用。Linus Torvalds 在他的计算机上使用 Fedora,可能是因为 Fedora 社区和开发人员与内核社区和核心开发人员之间的紧密关系。

发行版选择标准

现在你已经知道了 Fedora 的简史,让我们看看它在第二章的选择标准上表现如何。

目的和环境

因为有了 Red Hat 的支持,Fedora 虽然是一个通用发行版,但也有针对不同环境和面向任务的版本。除了 Ubuntu,Fedora 还提供了官方支持的大多数版本/风格。

以下是 Fedora 的主要官方版本:

  • 工作站:面向桌面/工作站的通用版本。这是我将在这里展示给你们的。
  • 服务器:安装在服务器上,这是一个面向任务的版本。
  • 云:为了在云环境中使用,它是一个专门的最小服务器版本。

像 Ubuntu 和它的不同风格(实际上只是桌面环境不同)一样,Fedora 提供 Fedora Spins,这是 Fedora 的版本,DE 与默认版本不同。您将在“桌面环境”部分看到它们。

Fedora 还提供了另一系列根据特定任务制作的图像,Fedora Labs ( https://labs.fedoraproject.org )。因此,Fedora 在以下场景中是面向任务的发行版:

  • 设计套件:面向出版、多媒体和视觉设计。
  • 游戏:准备在 Fedora 下运行的游戏集合。
  • Jam:创建、编辑和制作音乐和音频。
  • 机器人套件:针对机器人初学者和专家的软件包。
  • 科学:用于科学研究和数值计算的工具。
  • 安全实验室:用于安全审计、系统救援和取证。

最后,Fedora 为 ARM 架构、服务器和台式机提供了特殊的映像。对于台式机,有该处理器的官方版本,并且所有 Fedora Spins 也是可用的。对于服务器,有一个常规版本和一个最小版本(你可以把它看作是云的等价物,一个核心版本)。你可以在 https://arm.fedoraproject.org 得到全部。

支持

Fedora 得到了相当好的支持(没有 Ubuntu 支持得好,但也足够了)。这种支持只来自社区和 Fedora 开发者;这个发行版没有商业支持。红帽公司赞助 Fedora,但只为其商业发行提供商业支持。

还有,Fedora 社区很大,但是没有 Ubuntu 那个大。然而,它并不缺乏支持其用户的方法。以下是从社区获得帮助的渠道:

用户友好性

从一个 Ubuntu 用户的角度来看,你可以说 Fedora 不太用户友好,但是从一个 Linux/Gentoo 铁杆用户的角度来看,它是一个非常容易使用的发行版。取决于你想用它做什么,Fedora 占据了一个中间点。例如,Fedora 有一个非常好的安装工具 Anaconda,这使得安装过程非常舒适。但是当您需要执行任何管理/维护任务时,您需要知道如何使用命令行工具。这是 Linux 多年来的标准,可能和 Debian 一样,但事实是还有其他发行版比 Fedora 更容易使用。

稳定性

虽然 Fedora 总是处于技术和创新的前沿,但它是一个非常稳定的发行版。从我的角度来看,它比 Ubuntu 更稳定,如果你以预期的方式做事(换句话说,不要使用外部回购,不要调整太多,等等)。).Fedora 为其版本提供的支持时间比 Ubuntu 短(13 个月,而 Ubuntu 的常规版本为 18 个月)。和 Ubuntu 一样,Fedora 使用标准发布方案的变体;两者的新版本发布周期相同;六个月。你可以在 https://fedoraproject.org/wiki/Releases 了解更多关于 Fedora 发布周期的信息。

硬件支持

由于其不包含私有驱动的政策,Fedora 中的硬件支持不如 Ubuntu。然而,它从红帽的社区版本中得到好处,因为许多硬件支持红帽。此外,许多公司以.rpm包格式开发驱动程序,Fedora 支持这种格式。如果您愿意为发行版使用替代的、非官方的库,您可以使用各种私有驱动程序(尤其是显卡和网卡)。

请注意,使用最新的内核有助于检测它支持的新硬件。这对于笔记本电脑尤其重要。

美学

除了徽标、颜色和背景,Fedora 并没有努力定制发行版的设计。它提供标准版本和当前版本的 Gnome,没有定制,这与 Ubuntu、Mint 和其他版本相反。如果你喜欢现在的 DEs 开箱即用的设计,你会喜欢 Fedora 否则,您应该寻找定制。

桌面环境

Fedora 的默认和官方桌面环境是 Gnome,目前是这个 DE 的第 3 版。但是如前所述,Fedora Spins 以可用的 ISO 映像的形式提供了替代方案,这些映像使用其他 DEs 作为默认值。目前,可用的 Fedora Spins ( https://spins.fedoraproject.org )如下:

  • KDE 等离子:使用 KDE 等离子。
  • XFCE:这里用的是 XFCE 德。
  • LXDE:这个选项的轻量级 LXDE 桌面。
  • MATE-COMPIZ:结合了 MATE(类似于经典的 Gnome 2)和 COMPIZ 合成效果。
  • CINNAMON:使用 Gnome 3 的 GTK3+工具包,但是看起来更古典。
  • SOAS: Sugar on a Stick 将 Sugar 学习平台与能够安装在 USB 驱动器上的移动性相结合。它被定位为教育/学习平台。

初始化系统

如果大多数 Linux 发行版最近都采用了 systemd init 系统,显然开发它(来自 Red Hat 开发人员)并首先采用它的发行版将继续使用它。

包装管理系统

Fedora 使用与 Red Hat、rpm 相同的包管理系统,以及相同的工具。尽管有一个名为 Software (gnome-software)的 GUI 应用程序来管理软件应用程序,但在 Fedora 中管理软件包的正确方式是通过终端中的dnf命令(以前的yum)。还有一些工具可以直接管理.rpm包。

Fedora 的官方资源库(只有一个)的软件包数量比 Debian 或 Ubuntu(少了约 5000 个软件包)要逊色,非免费的第三方软件包也不在其中。因此,有一个提供更多包和非自由包的外部非官方库的传统。正如我在 Ubuntu 一章中所说的,这种做法不仅损害了操作系统的稳定性,而且也是一个明显的安全风险,因为你必须信任库的维护者。

Fedora 受益于来自所有公司和开发人员的.rpm格式,这些公司和开发人员开发的软件可能不在任何存储库中,但通常可以在.rpm.deb包中获得(或作为源代码 tarballs)。

体系结构

与许多发行版一样,支持两种主要的英特尔架构,32 位版本和 64 位版本。Fedora 最近宣布,他们将在未来的版本中只专注于 64 位版本,而将 i686 架构留在第二个平面上,并且可能不会在发布周期中同步。也支持 ARM。

安全性/匿名性

Fedora 是最安全的发行版之一,这是当之无愧的。例如,防火墙、PolicyKit 和 SELinux 在其他安全功能中是默认启用的。此外,您可以对所有磁盘或卷或文件进行加密;Fedora 是这一领域的佼佼者。更多信息见 https://fedoraproject.org/wiki/Security_Features

在匿名方面,你可以在第一次启动 Gnome 初始设置时或稍后在设置应用程序中配置这些选项。你可以决定什么信息被共享,什么信息被发送回 Fedora 或 Gnome。

原则和道德

Fedora 非常注重只使用自由和开源软件,但这并不意味着他们不在内核中分发私有 blobs(非自由二进制固件)。除此之外,Fedora 对不使用驱动程序的专有软件的政策非常严格。它不包括显卡、mp3 软件、Flash 播放器等的专有驱动程序。想要使用这些软件的用户通常必须依赖其他非官方的存储库。关于这件事的官方 Fedora 政策可以在它的维基上看到 https://fedoraproject.org/wiki/Forbidden_items

现场 CD

Fedora 的 ISO 映像作为发行版的实时版本工作得很好,因此您可以使用它们来启动 Fedora 的实时会话,而无需接触存储设备上的任何东西。

专业认证

Fedora 本身没有专业认证,但它的支持公司 Red Hat 有几个最负盛名的认证,如第二章所述。因此,因为 Fedora 是 Red Hat 的基础,所以您应该能够毫无问题地将通过这些认证考试获得的知识应用到 Fedora 中。

装置

如前一章所述,在这次安装中(以及在接下来的安装中),我将稍微偏离安装工具作为默认工作流给出的“预定义”方式。稍后你会看到,Fedora 中的这个小变化并没有带来很大的不同,但在其他发行版中却有(比如 Ubuntu)。

第一步总是下载发行版的 ISO 镜像以便能够安装它。显然我选择了工作站版本的发行版安装在这里,因为它是大多数用户使用的版本。所以去 Fedora 发行版的下载页面, https://getfedora.org/en/workstation/download/ ,你会看到类似图 5-1 的东西。

A367684_1_En_5_Fig1_HTML.jpg

图 5-1。

The download page of Fedora 23 Workstation

如果您单击下载按钮,下载将自动开始。撰写本文时的版本是 23,默认架构是 64 位。该图像目前的大小为 1.4GB,只能存储在 DVD 或 USB 驱动器上。如果你需要不同的建筑、形象或风格,你可以去页面底部,在那里你会看到类似于图 5-2 的东西。

A367684_1_En_5_Fig2_HTML.jpg

图 5-2。

Alternatives for downloading Fedora’s ISO images

您可以获得这两种体系结构的 32 位 ISO 映像(i686)或 netinstall 映像。您还可以访问 Spin 和 Labs 版本以及 ARM 版本。该页面还链接到 Fedora Wiki,以找到出售发行版 DVD 拷贝的在线或本地供应商,或者链接到他们的免费媒体请求程序,供那些无力购买的人使用。另一种方法是使用 BitTorrent 跟踪器来下载 ISO 映像。这些选项位于 https://torrents.fedoraproject.org/

Fedora 提供了对发行说明(我建议在升级到新版本时总是阅读这些说明)和该版本安装过程文档的访问,这非常好( http://docs.fedoraproject.org/en-US/Fedora/23/html/Installation_Guide/ )。但是,您只需要在安装过程的第一步使用本指南;对于其余步骤,可以直接从安装程序中获得好的文档。

一旦你有了发行版的 ISO 镜像,你就可以第一次用它来启动你的系统了。出现的第一个屏幕是图 5-3 中的屏幕;它是一个经典的文本菜单(在 Linux 中很常见)。你可能认为它没有 Ubuntu 那么精致,但是不要被它的外观欺骗了。除非你按下任何键,否则这个屏幕在自动启动 Fedora Live 之前只持续 10 秒钟。因此,从这里你可以做四件有意义的事情:

  • Go to the other menu option, Troubleshooting (Figure 5-5), which allows you to test your installation media or memory, or both, from your hard drive. It also allows you to start the Live version, avoiding problems with your graphics card (which is common in laptops). Do this when you experience rare things on your screen (like distortions or lines) with the default option.

    A367684_1_En_5_Fig5_HTML.jpg

    图 5-5。

    The troubleshooting menu of the Fedora Live boot process

  • 没什么?Fedora 的现场版将在 10 秒后开始。

  • 按 Enter 键立即启动 Fedora Live。

  • Press Tab to access to the configuration options, as you can see in Figure 5-4. This is for advanced users who usually customize the installation because of hardware or deployment requirements.

    A367684_1_En_5_Fig4_HTML.jpg

    图 5-4。

    The advanced configuration options of the installation boot

    A367684_1_En_5_Fig3_HTML.jpg

    图 5-3。

    First screen of the Fedora installation process

显而易见的选择是继续使用默认选项,然后等待 10 秒钟或按 Enter 键进入下一步。出现在你面前的下一个屏幕是一个黑色的屏幕,在底部有一个动画进度条,在这一步的最后是 Fedora 发布版本,如图 5-6 所示。

A367684_1_En_5_Fig6_HTML.jpg

图 5-6。

The bottom of the screen when Fedora Live is booting up

当 Fedora Live 最终启动时,出现的欢迎屏幕(图 5-7 )让您在两个选项之间进行选择:在系统的硬盘上安装发行版,或者继续在 Live 会话中测试 Fedora。如果你是 Gnome 环境的新手或者你想测试 Fedora,你可以选择稍后通过 Activities 菜单安装它。让我们选择“安装到硬盘”选项继续。

A367684_1_En_5_Fig7_HTML.jpg

图 5-7。

Fedora Workstation Live welcome screen

这是安装过程中真正的第一步,首先要做的是选择在所有后续步骤中使用的语言(默认情况下是在发行版中)。如果你有一个互联网连接,它会试图通过你的 IP 广域网地址自动检测你的地区(准确地说是时区),并自动为你设置语言。否则,它将默认选择英语(美国),如有必要,您必须手动更改。还有一个按钮叫帮助!,这是一个上下文帮助,可以在此过程中为您提供指导。选择语言后,按下“继续”按钮(图 5-8 )。

A367684_1_En_5_Fig8_HTML.jpg

图 5-8。

The language selection screen

下一个屏幕包括几乎所有您必须做出的选择,以完成这个过程。与上一个屏幕一样,Anaconda(Fedora 安装程序)将尝试为您做出所有决定,在大多数情况下,这些决定都是正确的。然而,即使所有的选择都是正确的,如图 5-9 所示,程序也不会允许您继续,直到您完成安装目的地部分。原因是显而易见的:在您对硬盘进行任何更改之前,您需要检查它们。让我们浏览一下这里包含的所有四个部分。如果按下帮助按钮,将会出现如图 5-10 所示的帮助对话框。

A367684_1_En_5_Fig10_HTML.jpg

图 5-10。

The context help that can guide you through all of the installation

A367684_1_En_5_Fig9_HTML.jpg

图 5-9。

The installation summary screen

在键盘部分(图 5-11 )你可以选择你想在你的发行版中使用的键盘布局。像往常一样,自动选择正确答案的概率很大;如果没有,必须手动选择。这里有两个有趣的选择。首先,如果您用鼠标从列表中选择任何布局,您将看到它的交互式表示(帮助您直观地识别它)。其次,如果您添加了多个布局,您可以从列表中选择您想要用来在它们之间切换的键盘组合。要选择后一个选项,您必须使用选项按钮。

A367684_1_En_5_Fig11_HTML.jpg

图 5-11。

The keyboard layout selection screen

时间和日期部分允许您在地图上交互选择您的时区,并手动设置时间和日期(图 5-12 )。如果你在线的话,这个大概是自动选择正确的。与 Ubuntu 的区别之一是,除了能够手动调整时钟和日历,你还可以切换网络时间,甚至配置它。NTP(网络时间协议)意味着你的系统时钟总是正确的,因为它是通过检查互联网上的时间服务器定期调整的。如果您想要一个不同于 Fedora 默认设置的 NTP 服务器,也可以通过齿轮图标来设置。这在 Ubuntu 中是默认开启的,但是你可以看到 Fedora 对此有不同的处理方式。作为 Red Hat 遗产的一部分,也作为其不同哲学的一部分,您将继续看到 Fedora 是如何给用户更多的责任的,尽管它易于使用和安装。我建议您坚持使用默认的 NTP 选项。进行必要的调整或简单地检查一切是否正确,然后按下完成按钮。

A367684_1_En_5_Fig12_HTML.jpg

图 5-12。

Selection of time and date by region

网络和主机名部分(图 5-13 )有点复杂,因为您只能在这里更改主机名。网络配置的其余部分在 Gnome 的配置选项下。如果您不在本地网络上或者您不理解该选项,请将主机名保留为默认值。剩下的配置可以通过顶部 Gnome 菜单栏右边的图标来访问,在那里你可以看到音量、网络和电源图标。如果你点击这个图标,你会看到如图 5-14 第二个对话框。在这个对话框中,您将看到 Anaconda 检测到的当前网络配置;它可以是有线或无线连接。您还会看到用户和音量设置以及用于访问配置、屏幕锁定和电源设置的图标。如果您单击网络连接图标,它会显示两个选项:打开/关闭连接和访问设置。点击设置,弹出对话框显示所有网络设置,如图 5-14 底部所示。

A367684_1_En_5_Fig14_HTML.jpg

图 5-14。

How to access the network settings in the installation process

A367684_1_En_5_Fig13_HTML.jpg

图 5-13。

The first part of the network configuration

左侧是检测到的所有可用连接(您可以添加更多)和代理配置的列表。右边是关于当前所选连接的信息和一个开关按钮。如果您通过带有 DNS 服务器的路由器(有线或 Wi-Fi)或通过本地网络连接到互联网,所有这些都会自动正确配置。如果没有,或者如果你想调整一些东西,你可以随时通过齿轮图标改变设置。还有,你可以通过添加配置文件按钮管理不同的配置文件,这对于笔记本电脑连接不同的网络非常有用(自动或每次都要求输入密码;这是你的选择)。

此安装摘要屏幕的最后一部分是安装目的地部分。这些信息对您来说是独一无二的,必须进行审核(这是强制性的)。如图 5-15 所示,该屏幕有四个重要部分:

A367684_1_En_5_Fig15_HTML.jpg

图 5-15。

The Installation Destination section

  • 本地标准磁盘。在这里,您可以找到系统上目前可用的普通硬盘(HDD、SDD、USB)。目前,只有一个常规的 1TB 硬盘;其他的例子,我会给你看其他的情况。
  • 专用磁盘和网络磁盘。在这里你可以找到像 iSCSI 和 FCoE 那样的局域网磁盘。这些通常是为在本地网络上工作的高级用户准备的。我在这里跳过这一部分。
  • 其他存储选项。这是您决定接受已经为您做好的自动设置或自定义它们的地方。这是我接下来要探讨的部分。
  • 完整磁盘摘要。它看起来不重要,因为它只是底部的一个链接,但它是你的磁盘的汇总,你可以选择从哪个磁盘启动(通常你不需要改变它)。

在“其他储物选项”部分,您必须特别注意您正在做的事情。正如我在 Ubuntu 章节中解释的,你可以在这里决定是否加密你的数据(整个磁盘)。在这个安装示例中,我将跳过这一步。这是分区主题,我想花点时间解释一下选项。如前所述,这种配置通常是自动完成的,所以您可以简单地按下 Done 按钮并开始安装。我建议只有当你有一个空磁盘时才这样做(或者如果你不介意丢失当前的数据)。但是,如果您想留出一些磁盘空间(例如,安装另一个操作系统),您必须选择“我想腾出额外的可用空间”选项。

让我们忽略所有这些,通过选择“我将配置分区”选项来手动配置分区。选择该选项后,请按“完成”按钮。您将看到如图 5-16 所示的屏幕。

A367684_1_En_5_Fig16_HTML.jpg

图 5-16。

Manual disk partitioning

这是一块空白的画布,您可以在这里制作完全定制的分区,或者从 Anaconda 获得帮助。这里最重要的是分区方案。Fedora 目前提供四种选择:

  • 标准分区:默认情况下,常规分区和 ext4 文件系统的传统方案。
  • Btrfs:因为它处于技术的前沿,Fedora 提供了 Btrfs。Btrfs 是一个具有卷管理和容错能力的文件系统,它基于类似于 Solaris ZFS 的二叉树。
  • LVM:逻辑卷管理器比传统的分区提供了更多的灵活性和易用性(以及其他高级功能)。
  • LVM 精简配置:这是 LVM 的一项高级功能,可以在需要时为逻辑卷动态分配磁盘空间。如果您不是高级用户,请忽略这一点。

Fedora 默认选择 LVM 模式,因为它在特性/性能/易用性方面更平衡。如果你更喜欢传统的方式,你可以选择标准的。与 LVM 相比,Btrfs 提供了许多额外的功能,但它仍处于试验阶段,其性能比 ext4 fs 差。所以如果你没有什么特别的要求,就保持 LVM 方案吧。

Note

在选择 LVM 或 BTRFS 作为您的分区方案时,要考虑一个特殊的事情:虽然两者都提供了更多的管理分区的灵活性(比如分配或调整大小),但是只有少数 GUI 工具可以正确地管理它(而且它们不是很好),所以您应该通过命令行来管理这个卷。

选择分区方案后,您有两个选择:手动添加卷或让 Fedora 自动管理。Fedora 在这里不同于完成这项任务的传统方式;通常,您应该首先定义您的分区或逻辑卷,然后为每个分区或逻辑卷定义您的文件系统,然后选择挂载点。Anaconda 让您首先选择您的分区方案,然后选择您的挂载点,其余的是自动决定的(您可以稍后更改)。从我的角度和经验来看,这是一个好得多的方法,特别是对于非高级用户。

如果您决定手动添加挂载点,您必须使用屏幕底部的+图标。应出现类似图 5-17 的对话框。您选择一个挂载点,比如/、/boot、/swap 或/home,然后选择您想要分配给它的磁盘空间。在有可用空间的情况下,您可以根据需要创建任意数量的文件(您始终可以通过选择该挂载点来更改初始设置)。在这里,我想向您介绍我推荐的分区方案(它不同于 Ubuntu,我告诉过您我不喜欢 Ubuntu)。

A367684_1_En_5_Fig17_HTML.jpg

图 5-17。

Dialog to add a new mount point

为了刷新你的记忆,Ubuntu 只创建了两个分区,两个挂载点,一个用于交换分区,另一个用于根(/)分区。系统中的所有文件加上你的个人数据都在同一个分区,根分区。这种方式易于管理,并且浪费较少的磁盘空间,但只是短期的。我不喜欢它,因为从长远来看,它通常会给你带来更多的头痛和问题,所以不值得。例如,如果您想将您的 Linux 发行版升级到一个新的版本,而升级过程并不顺利,那么如果您想进行全新的安装,而不是以一种不可管理的混乱结束,那么您必须以一种强制的方式对您的所有数据(至少是/home目录)进行备份/删除/恢复循环(尽管我建议定期这样做)。所以我建议您将/挂载点分成两个不同的挂载点:一个是/挂载点,用于所有的系统文件,另一个是/home挂载点,用于存储您的个人文件和程序配置。我建议增加一个额外的/boot分区来管理引导文件,避免将来系统升级、迁移或某些 BIOS 出现问题。为了做到这一点,我推荐最小 500MB 的引导分区(并使用标准分区)和 15GB 的/挂载点。

如果让 Anaconda 为您做这件事,结果将如图 5-18 所示。它还显示了默认的自动分区,如果您选择默认的自动方式而不是这种伪手动方式,Fedora 将应用该分区。正如你所看到的,Fedora 选择了我推荐给你的那个分区方案,而且它比 Ubuntu 默认选择的那个要好得多。Fedora 总是选择这种模式,不管您选择标准、LVM 还是 BTRFS。因此,Fedora 为带有 ext4 fs 的/boot挂载点创建了一个标准分区,并为其余部分创建了一个名为fedora的 LVM 卷组,作为带有 ext4 fs 的逻辑卷(swap用于交换挂载卷)。最终的可用空间很小,不到 1MB,因此它在这方面工作得很好。专用于swap卷的空间大小是根据您系统中的物理 RAM 大小来分配的,因为如果您想让系统休眠,内存中的数据将存储在该分区中。在每个卷/分区中,您有一系列可以更改的数据/选项,从挂载点和容量到文件系统和名称。我喜欢改变专用于/卷的磁盘空间大小;50GB 有点保守和安全,所以也许 35GB 就够了。您可以减少/音量中的空间并按下更新设置按钮,然后增加/home音量。如您所见,您可以在这里加密单个卷,而不是像前面的屏幕选项那样全局加密。此外,您可以通过卷组的“修改”按钮设置其他高级功能,如 RAID(此设置会影响所有逻辑卷)。您还可以将 LVM 卷与 BTRFS 卷混合使用,或者使用 ext4 之外的文件系统。最后一件事:如果您进行了任何更改,并且认为它们不好,您可以随时通过按下“宗卷/分区”列表底部的“↻”按钮,然后在出现的新对话框中按下“重新扫描磁盘”按钮,从头开始。好了,让我们保留这些设置,然后按屏幕左上角的完成按钮。

A367684_1_En_5_Fig18_HTML.jpg

图 5-18。

The automatically defined partition scheme for LVM

出现一个对话框,显示将要对磁盘进行的更改。如果正常,按下接受更改按钮(图 5-19 )。您将返回到安装摘要屏幕。“开始安装”按钮已启用;按下按钮,安装过程会将更改写入您的磁盘,并开始在您的系统上安装操作系统。然而,即使在分区和安装 Fedora 的过程中,您仍然需要设置两个以上的东西(图 5-20 )。

A367684_1_En_5_Fig20_HTML.jpg

图 5-20。

The User Settings screen of the Fedora installation process

A367684_1_En_5_Fig19_HTML.jpg

图 5-19。

The summary of changes to write to the disk

这里和 Ubuntu 的另一个很大的区别是,你需要为 root 用户(主账号和默认的 admin 账号)设置密码;这在 Ubuntu 中是默认禁用的(你使用的是普通用户,管理事务需要你的密码)。这是应该做的事情,尽管这不太容易,并且需要用户承担责任。如果你想模仿 Ubuntu 的行为,你可以随时将你的用户添加到wheel组。让我们在根密码部分建立根密码(图 5-21 )。

A367684_1_En_5_Fig21_HTML.jpg

图 5-21。

Setting the root password

这里要注意设置一个强密码,因为这是我们讨论安全性时最关键的攻击点之一。如果有人知道你的根密码,他可以拥有你的整个系统,小心!设置密码并返回到上一个屏幕后,您可能会注意到一些奇怪的事情。用户创建部分现在可以了,不需要创建另一个用户。您可以继续,但是我强烈建议您永远不要使用 root 帐户来使用您的系统。始终使用另一个普通用户来操作您的系统。这是一个严重的安全缺陷(也是多年来 Window 用户的主要缺陷)。我认为 Fedora 这样做是为了允许 OEM 安装。(以后你随时可以自己创造;事实上,如果你现在不做的话,你会在 Gnome 设置中做的)。无论如何,让我们创建一个新用户,它将是您的计算机图 5-22 的默认用户。

A367684_1_En_5_Fig22_HTML.jpg

图 5-22。

Create a new user account

这里有两个主要选项:让该用户成为管理员,以及打开/关闭对密码的需求。如果你想模仿 Ubuntu 的行为,设置第一个选项;不应设置第二个选项(仅用于创建来宾帐户)。千万,绝对千万,不设置第二个就设置第一个选项;拥有管理员权限但没有密码的用户很容易导致灾难(尤其是当您的系统连接到互联网时)。在高级部分,你可以调整这些设置,但是如果你不理解就不要碰它们。设置这个新用户并返回到上一个屏幕后,您只需等待安装完成,然后重新启动系统就可以使用您的新 Fedora Linux 操作系统了(图 5-23 )。

A367684_1_En_5_Fig23_HTML.jpg

图 5-23。

The first screen of a fresh new Fedora Linux OS

重启系统后,出现的第一个屏幕很难看(图 5-24 ),但在 Linux 中很常见;这是一个文本菜单,允许您在常规 Fedora 会话和救援会话之间进行选择(如果常规会话无法启动,您可以使用救援会话)。还有两个面向高级用户的选项,如“e”和“c”键。如果您按 Enter 键或稍等片刻,系统将继续启动过程。

A367684_1_En_5_Fig24_HTML.jpg

图 5-24。

The Fedora login screen

当 Fedora 完成启动过程时,您将看到 Gnome 登录屏幕(图 5-24 ),其中列出了所有用户(此时,您只有一个用户)。如果您选择您的用户,它将询问您的密码。当您输入密码时,您会在登录按钮的右侧看到一个齿轮图标。此图标(图 5-25 )让您在系统上安装的可用桌面环境之间进行选择。默认情况下你只有三个:Gnome (Gnome 3)、Gnome Classic (Gnome 2)和 Wayland 上的 Gnome(Gnome 3)。我建议您保留默认的 Gnome,因为 Classic 会导致一些应用程序出现问题。Wayland 是 Fedora 使用新技术的另一个例子;Wayland 的目标是取代古老的 X window 系统,但它仍然太新,可能会与一些应用程序崩溃,特别是一些显卡。

A367684_1_En_5_Fig25_HTML.jpg

图 5-25。

The desktop environments available to you

现在你已经登录到了新的操作系统,但是一个新的惊喜在等着你:Gnome 初始设置。您可以在这里设置 Gnome 语言、键盘布局、隐私设置和在线帐户(如果您在安装过程中没有创建用户,还可以设置一个本地帐户)。这些设置通常是默认设置的,如果您不想更改任何内容,可以跳过所有这些设置。最后,Gnome 帮助系统的入门手册(图 5-26 )会帮助新用户熟悉如何使用 Gnome。

A367684_1_En_5_Fig26_HTML.jpg

图 5-26。

The Gnome initial setup and the Getting Started Help

就这样!你现在可以自由地享受你的 Fedora Linux 操作系统。在接下来的 Linux 发行版安装中,您将继续探索不同的东西。

保持

和 Ubuntu 一样(一般来说),维护你的 Linux 发行版有三个基本任务:更新和升级你的发行版,管理你的应用程序。但与 Ubuntu 不同,Fedora 的这些任务需要用户使用终端,这是大多数用户害怕的。

管理应用程序

在 Fedora 中,管理应用程序首先是一项简单的任务;您可以使用软件应用程序(gnome-software)来安装和删除应用程序。这是一个非常易于使用的应用程序,与 Ubuntu 中的应用程序非常相似。在图 5-27 中可以看到。但是你不能在那里找到所有的 Fedora 应用程序;对于 Fedora 自己的大多数包,无论喜欢与否,都必须使用命令行。

A367684_1_En_5_Fig27_HTML.jpg

图 5-27。

The Software manager application of Gnome

更新

图 5-27 显示了一个更新选项卡,所以你可能认为你可以从这里更新你的 Fedora。错了。这又是一次您必须使用终端和命令行应用程序的时候。要从命令行管理 Fedora 中的包,必须使用命令dnf(以前的yum),并且必须为此打开终端。如果您想更新 Fedora OS 的软件包,您应该使用以下命令:

$ sudo dnf update

基本上,这个命令从在线存储库中刷新关于包的信息(元数据)。如果有可用的更新,它会向您显示一个列表和一个摘要,并要求您确认更新所有更新。显然,您应该定期这样做,以使您的操作系统保持最新(至少可以避免安全问题)。

Note

我在这里使用sudo命令来执行管理任务(更新包),因为我假设您在安装时创建了具有管理权限的默认用户(正如我所建议的)。如果不是这样,您需要使用 root 用户来执行此任务。为此,请使用以下代码:

$ su root:      # you are going to switch here your user with root
Password:       # you have to introduce here the root password
# dnf update:   # then you can update, don't forget to log out (exit) after end

Tip

如果您不想再使用用户root,您可以将您的用户添加到wheel组,以便能够使用sudo命令和您的密码。使用此代码(来自root用户):

# usermod -a -G wheel youruser

图 5-28 是我告诉你的图形证明。软件应用程序说没有更新,一切都是最新的,而$ sudo dnf update命令告诉你一个完全不同的故事。所以,你要更新 552 个包(这也需要安装 11 个新的),加起来总共 799MB。你不能相信这里的gnome-software应用。如果您选择 Fedora 作为您的 Linux 发行版,请学习如何使用 dnf 包。这并不难,而且你可以更好地控制你的系统。

A367684_1_En_5_Fig28_HTML.jpg

图 5-28。

The gnome-software vs. the dnf package updates search results

您也可以从 dnf 设置自动更新,但不建议这样做,因为您无法控制更新的内容和时间。

升级

如果您想在新版本到来时升级当前版本的 Fedora,命令行和终端是您的好朋友。您也可以使用 dnf 包来做到这一点,但是我将向您展示一种更好的方法。有一个专门用于此任务的包,FedUp(用于 Fedora 升级程序)。默认不安装,首先要做的就是安装。

$ sudo dnf install fedup

之后,你必须更新你的系统(我刚刚给你看了)。这样做是很重要的,以避免升级过程中的任何问题(这是一个非常微妙的问题,正如我在 Ubuntu 一章中告诉你的;这里同样适用)。我强烈建议您备份您的数据,因为即使您有一个专用的/home卷来存储您的所有个人文件,也会发生不好的事情,并且您不会是第一个在升级失败后尝试全新安装而忘记不格式化当前/home卷的人。如果我每次看到这个只有一美元…

现在是升级的时候了。为了做到这一点,你需要有一个互联网连接。命令是这样的:

$ sudo fedup --network 23    # 23 would be the number of the relese to update to

这将需要一段时间,这只是第一步。完成后,您应该重新启动。然后将出现不同的启动屏幕(图 5-29 )。

A367684_1_En_5_Fig29_HTML.jpg

图 5-29。

The boot screen that appears after upgrading (21 to 22)

您应该选择第一个选项(或者什么都不做,等待)继续第二步,这也需要一段时间。如果一切顺利,你现在可以享受你的 Fedora 新版本。您还应该执行一系列命令来进行清理,避免在更新软件包时出现问题:

$ sudo rpm --rebuilddb
$ sudo dnf distro-sync --setopt=deltarpm=0
$ sudo dnf install rpmconf
$ sudo dnf install rpmconf

关于这个过程的更多信息,请访问 Fedora wiki 页面, https://fedoraproject.org/wiki/FedUp

利弊

以下是我个人认为 Fedora 发行版的利与弊。在这件事上总有讨论的余地,但我已经尽了最大努力做到尽可能客观。

赞成的意见

  • Fedora 在易用性和高级功能之间有很好的平衡。
  • 默认情况下,这是一个非常安全的发行版。
  • 它只使用免费的开源软件。
  • 它有一个定期的发布计划,所以你知道什么时候会有新的发布。
  • 它使用了最新的技术和创新,并给了 Linux 社区和其他发行版很多回馈。
  • 它背后有一个庞大而有才华的社区,这推动了它。
  • 红帽在 Fedora 后面,Fedora 是红帽的底座。
  • 它使用了一个最扩展的包管理器,rpm。
  • 这是一个原始的分配,而不是一个衍生物。
  • 有许多面向任务的预定义图像(音乐、游戏等。).
  • 它有一个非常好的安装应用程序。
  • 它的 DevAssistant 工具与 Docker 和虚拟化工具集成在一起,为软件开发人员提供了一个最好的环境。

骗局

  • 它在美学方面没有提供太多东西。
  • 它没有商业支持。
  • 它默认没有专有驱动,所以某些情况下硬件支持不好。
  • 缺乏专有的第三方软件。
  • 由于前面两点,许多人使用替代的存储库。这带来了安全和不稳定的风险。
  • Gnome 软件管理器是一个错误百出、运行缓慢的应用程序。
  • 您必须使用终端来完成许多管理任务。

摘要

Fedora 是我为您分析的第二个 Linux 发行版。在本章中,您将看到 Fedora 如何处理某些问题。现在你可以看到两个发行版并不一定是同一个东西。这种对比将在以后的章节中增加,你将会理解为什么会有这么多发行版,为什么知道你需要什么是如此重要。

在下一章中,我将 Debian 发行版放到了显微镜下。

六、Debian

Debian 不仅是最著名、最有魅力、最古老的 Linux 发行版之一,它也是独立的、社区驱动的发行版的完美范例。Linux 用户中有一种说法,“如果所有其他发行版都消失了,我们将永远拥有 Debian。”它是许多系统管理员、开发人员和用户最喜欢的发行版,这不仅仅是因为它的生命周期长;这也是因为 Debian 的社区、理念和管理使它成为一个独特的发行版。它的“系谱树”是所有发行版中最大的一个。Debian 是许多发行版的母体。事实上,目前活跃的、维护的发行版中,几乎有一半是基于 Debian 的,要么是直接的,比如 Ubuntu 或 Knoppix,要么是经过两三代的,比如 elementary OS 或 Mint。

历史

因为 Debian 是两个最古老的 Linux 发行版之一,我们可以说 Debian 的历史是 Linux 本身历史的基本部分。让我们把重点放在开头。正如我在第三章中所说的,Debian 是作为 SLS 的替代品而诞生的,SLS 是激励伊恩·默多克(当时是普渡大学的一名本科生)做得更好的发行版。他在 1993 年 8 月发布了 Debian 的第一版。他把他当时的女友(后来的妻子,现在的前妻)和他自己的名字组合在一起,创造了这个名字:Deborah + Ian = Debian。

随着 Debian 的诞生,也出现了 Debian 宣言 1 (后来在 1994 年修订),这是 Debian 应该和想要成为什么样的宣言。尽管它将自由软件命名为一个基本支柱(事实上,Debian 第一年是由 GNU 项目赞助的)和社区的重要性,这些指导方针主要集中在发行版的开发和维护上。

Debian's design process is open to ensure that the system has the highest quality and reflects the needs of user groups. Debian can develop in a modular way by involving others with extensive abilities and backgrounds. Its components are of high quality, because those who have expertise in a certain field have the opportunity to build or maintain various components in Debian related to this field. Involving others can also ensure that valuable improvement suggestions can be incorporated into the distribution during the development process; Therefore, the distribution is created based on the needs and desires of users rather than those of constructors. Without the direct participation of others, it is difficult for individuals or small groups to predict these needs in advance. Debian Declaration, ian murdock, 1993-1994.

1997 年 6 月,两名 Debian 开发者,Ean Schuessler(最初的想法)和 Bruce Perens(协调其创建),创建了 Debian Social Contract2来补充最初的宣言。这份合同提出了 Debian 项目的道德议程,以保持该项目的独立性、自由性、由社区驱动,并处于自由软件的保护伞之下。这些书面保证将塑造发行版的未来,但同时将保留其独特的身份。该合同还包含了 Debian 自由软件指南,它将作为开源定义 3 的基础。

同样在 1997 年,Bruce Perens 创建了公益软件,作为一个非盈利组织,允许 Debian 项目接受捐赠并支持它。多年以后,它会成为其他自由软件项目的支持者。

哲学

没有其他发行版像 Debian(嗯,也许是 Fedora)一样有如此清晰明确的宗旨和理念。最初的 Debian 宣言,Debian 社会契约,Debian 自由软件指导方针,连同 Debian 章程 4 和 Debian 行为准则 5 ,明确定义了发行版的指导方针。这种对自由软件的道德和伦理的坚定承诺是对其哲学的最好定义,但让我们看看 Debian 社会契约的要点来更好地理解这一点:

"Social Contract" and Free Software Community 1. Debian will keep it 100% free. 2. We will give back to the free software community. We won't hide the problem. We give priority to our users and free software. 5. Works that do not meet our free software standards [supported; See contract]. Debian social contract, version 1.1, April 2004.

发行版选择标准

现在你已经了解了 Debian 的一点历史,让我们看看这个特别的发行版在第二章的选择标准上表现如何。

目的和环境

Debian 本质上是一个通用的发行版,有一个唯一的版本用于所有目的,因此相同的镜像既可以用于桌面环境,也可以用于服务器环境(等等)。用户负责以这样或那样的方式使用它,并且几乎没有图形化和简单的帮助来做到这一点。然而,有几种方法可以安装它,从 Live CDs 或 DVD 到 netinstall ISOs。此外,您可以选择不同的内核:标准的和官方的 Linux 内核,FreeBSD 内核,以及实验性的和非官方的微内核,来自 GNU 项目的“Hurd”。

支持

显然,所有的支持都来自 Debian 社区,像 Fedora 或 Ubuntu 一样,它有多个渠道:

虽然 Debian 的支持来自社区,但是网站提供了可以提供非官方商业支持的第三方顾问(个人/公司)的链接(见 www.debian.org/consultants/index.en.html )。

用户友好性

Debian 不是一个特别友好的发行版。您必须了解什么是 Linux 以及如何管理日常管理任务的基础知识。它比 Fedora 或 Ubuntu 更难使用,但没有 Arch 或 Gentoo 那么难。尽管如此,在 Ubuntu 到来之前的很长一段时间里,它一直是许多人的首发发行版,现在仍然是,因为它仍然是最值得推荐的发行版之一。您将在安装过程中看到,尽管安装并不困难,但它为用户提供了更多空间。安装程序没有 Fedora 和 Ubuntu 友好。显然,如果你在所有的桌面系统中使用相同的桌面环境,它会平衡一些东西,但是最终,对事物如何工作的理解是最基本的。你可以在 Android 智能手机上看到同样的现象:有这么多不同的手机,它们之间的差异很小,但人们仍然对一个而不是另一个有强烈的感觉和偏好。

稳定性

Debian 对稳定性有一套非常特别的方法。它可以是一个非常稳定的发行版,也可以是一个非常不稳定的最新发行版。为此,它有三个主要分支:稳定、测试和不稳定。

  • 稳定:主版本和当前版本。它是最稳定的,只有经过良好测试的软件,而且非常保守(按照常规发行版的标准,软件包可能非常旧,除了 Red Hat/CentOS)。它只接受安全和重大修复。它遵循一个标准的发布模型,周期大约为两年,但这并不是一成不变的;新的主要版本只有在完成后才会发布。稳定版本是通常在服务器和工作站中使用的版本。
    • OldStable:是以前的稳定版。它被支持到一个新的稳定发布一年后,然后它被存档。
  • 测试:它是未来新的稳定版本,在决定需要新版本之前,所有的包、变化和创新都要经过测试。它接收持续的更新,当准备新版本时,它“冻结”,然后只进行错误修复和改进,直到它准备好成为新的稳定版本。
  • 不稳定:这里是 Debian 发展的地方;软件包几乎是最新的,它可能非常不稳定。它是为 Debian 开发者和喜欢总是拥有最新技术的人设计的,但是这是有代价的:系统崩溃。您找不到此分支的任何 ISO 映像(与其他分支相反);您必须将存储库更改为测试安装,然后升级发行版。它是一种滚动发行版,但从技术上讲,它是发行版的开发分支,不像真正的滚动发行版,如 Arch 或 Gentoo,它是主分支。
    • 实验性的:这是一种用于实验性的并且很有可能破坏系统的软件包的暂存区。它是唯一面向不稳定分支的存储库。

自 2014 年以来,Debian 还采用了 Ubuntu LTS 发布系统的衍生版本,用于发行版的稳定版本,其中 LTS 存储库主要用于安全更新。这样,每个稳定版本支持五年。(常规支持只有三年。)

Debian it 的一个奇怪之处在于它使用了基于《玩具总动员》电影中角色的代号。当前的稳定版本被称为 Jessie,测试和未来的稳定版本被称为 Stretch,不稳定版本被称为 Sid(显然这永远不会改变)。你可以在 www.debian.org/releases/ 了解更多关于 Debian 版本的信息。

硬件支持

Debian 在硬件支持方面处于 Fedora 和 Ubuntu 之间,因为虽然 Debian 只支持自由软件,但非自由软件也可以在他们的库中找到,比如网卡和显卡的二进制驱动程序。您还可以在内核中找到私有 blobs。因此,Debian 有相当好的硬件支持。

美学

Debian 的美学是你选择的桌面环境的默认;唯一需要注意的是徽标和桌面背景。尽管如此和安装程序,你可能必须定制 DE,以便有一些你喜欢的东西,如果这不是默认的审美。

桌面环境

Debian 事实上的标准桌面环境一直是 Gnome,但是其他的可以在 DVD ISO 镜像或者每个 de 替代品的专用 CD 镜像中获得(但不是全部)。目前,这些 DEs 可以直接从 DVD 映像安装(您可以从存储库中选择另一个):

  • gnome 3 版
  • XFCE 你好
  • K 桌面环境
  • 肉桂色
  • 交配
  • lxd 先生

初始化系统

直到 2015 年,init 系统还是传统的 SysV,但是现在它和几乎所有其他发行版一样:systemd。这个决定引起了巨大的争议,它甚至导致了一个新分支的创建,唯一的目的是继续使用旧 SysV init 系统的 Debian 发行版:Devuan 6 。Debian 仍然在他们的存储库中提供 SysV 作为替代,但是安装它并使它工作并不是一件容易或愉快的任务。这需要相当大的努力,尤其是一些设计。

包装管理系统

Debian 的包管理系统和 Ubuntu 是一样的,因为 Debian 是它的原创者:dpkg(作为apt的基础)。它的存储库拥有任何发行版中最多的包,目前大约有 50,000 个包。

体系结构

Debian 是支持大多数硬件架构的发行版,但是有些东西(比如对安全升级的 LTS 支持)只适用于 amd64 和 i386 架构。目前官方支持的架构有 amd64、i386、ARM、i64(英特尔安腾)、MIPS、PowerPC、SPARC、S390 以及这些架构的一些变体。Debian 也非正式地支持其他架构;他们中的一些不是积极开发的,但是你能为那些机器找到图像。因为 Debian 有一个很大的社区,并且专注于自由,所以它有能力维护一些对其他项目来说“不赚钱”的架构。

安全性/匿名性

Debian 提供开箱即用的常规安全级别。有一个特殊的安全团队负责寻找和修复其包中的安全漏洞,但发行版本身并没有默认启用任何额外的安全功能。当然,你可以拥有一个非常安全的 Debian 发行版,但是你必须自己加强它。有这样做的指南,但你应该知道你在做什么。在这件事上,Fedora 和 Ubuntu 默认更安全(按此顺序)。你可以在 www.debian.org/security/ 了解更多关于 Debian 安全的知识。

原则和道德

尽管 Debian 对软件 Libre 有明确的关注和承诺,但它对非自由软件也有一个务实的看法。正如 Debian Social Contract 中所述,Debian 可用的所有非自由软件都应该在发行版中运行,并且它鼓励这样做。这背后的意图是让那些不认同自由的用户仍然使用 Debian 作为他们的发行版。在这一点上,它的立场比 Fedora 更宽松。尽管非自由软件没有得到官方支持,但它可以从它们的存储库中安装;在 Fedora 中,您必须使用第三方存储库来实现这一点。

Debian 项目及其社区的道德和伦理可以通过“哲学”部分提供的链接进一步研究。

现场 CD

i386 和 amd64 架构有专用的实时 ISO 映像。这些仅适用于稳定分支。

专业认证

Debian 不提供任何专业认证,但它是 Linux 专业协会在其认证中认可的发行版之一,即众所周知的 LPIC。

装置

安装 Debian 并不像人们说的那么难(有个笑话说 Ubuntu 的意思是“我不知道如何安装 Debian”),但是,正如您将要看到的,这显然比我之前向您展示的安装要困难得多。不要让这吓倒你。任何人都完全可以做到;在过去,几乎每个 Linux 都是以这种方式安装的。

像往常一样,让我们从获取 ISO 映像来进行安装开始。你必须在 www.debian.org/distrib/ 进入 Debian 下载页面。你会看到类似图 6-1 的东西。

A367684_1_En_6_Fig1_HTML.jpg

图 6-1。

The downloads page from the Debian project

您可以从几个选项中选择:netinstall 映像(如果您有良好的互联网连接,可以从互联网安装几乎所有的软件包)、实时映像或完整映像。有了完整的映像,您可以下载所有的映像(有一个它们的集合)以便能够离线安装任何包,或者您可以只下载第一个映像来进行基本安装(您可以在以后从存储库中安装任何东西)。如果您想为那些没有互联网连接的地方安装并拥有一个“硬”脱机 CD/DVD 存储库,这是一个有趣的选择。在同一页的下面,Debian 还提供了从第三方购买 DVD/CD 或 Debian 预装电脑的选项。

让我们选择最常见的选项,完整的安装映像,因此单击链接并转到一个新的网页,如图 6-2 所示。

A367684_1_En_6_Fig2_HTML.jpg

图 6-2。

The Debian options to download a complete ISO Image

更多选项可供选择!基本上你可以使用传统的 HTTP/FTP 方式下载图片,使用 Bit Torrent 或 jidgo。不使 Debian 服务器饱和的最佳选择是 Bit Torrent one(特别是当新版本发布时)或 jidgo(一种从几个同步位置/文件下载文件的工具,一种基于客户机/服务器模型的 Bit Torrent)。让我们选择传统的方式。点击“使用 HTTP 或 FTP 下载 CD/DVD 图像”选项,您将被转到如图 6-3 所示的页面。

A367684_1_En_6_Fig3_HTML.jpg

图 6-3。

Debian Stable ISO images

现在您可以选择稳定版本或测试版本。选择稳定的;它有两种格式:CD 和 DVD。这张 CD 目前有八张;DVD 格式的只有三张。获取与您的计算机架构相对应的映像;在我的情况下,我得到了 amd64 版本。点击它,你会进入如图 6-4 所示的页面,在这里你可以下载你需要的图片。

A367684_1_En_6_Fig4_HTML.jpg

图 6-4。

The Debian DVD images currently available for amd64

选择第一张 DVD(您只需要第一张)后,它会开始下载。完成后,您可以使用该映像首次启动您的计算机(图 6-5 )。

A367684_1_En_6_Fig5_HTML.jpg

图 6-5。

The first screen of the Debian installation

当你的电脑完全启动后,第一个屏幕你会非常熟悉,因为它和你在 Ubuntu/Fedora 安装中看到的一样。然而,它提供了一些不寻常的选项。有三种安装选项(安装、图形安装和语音合成安装)。此外,高级选项包括专家安装、救援模式、自动安装及其图形版本。在图 6-5 中可以看到这两个菜单。开头没有“图形”这个词的选项是文本界面,这对于图形卡的自动检测不能很好工作的系统非常有用,或者对于那些习惯它的人来说是一个更快的选项(这是我更喜欢的一个)。图形化的是最友好的,可以用鼠标。你可以在图 6-6 中看到它们之间的区别。因此,选择图形安装选项并开始安装过程。

A367684_1_En_6_Fig6_HTML.jpg

图 6-6。

Both versions of the installation process: text-based and graphical

第一个屏幕(图 6-6 )询问您在剩余的过程中想要使用的语言,然后是您的位置和键盘模板,如图 6-7 所示。

A367684_1_En_6_Fig7_HTML.jpg

图 6-7。

Location and keyboard selection

接下来,安装程序将向您显示进度条,第一个是检测并安装您的 CD-ROM(或 USB 驱动器上的 ISO 映像),第二个是从映像加载安装程序的其余组件。第三个将出现以检测和自动配置网络;如果没有,它会提示您输入网络值。

下一个屏幕(图 6-8 )是关于您的系统的主机名;默认情况下,它建议使用“debian ”(我把它留下了),但是你可以选择任何你想要的。接下来,它会询问一个域名,但是你可以把它留为空白,就像我在图 6-9 中所做的那样。

A367684_1_En_6_Fig9_HTML.jpg

图 6-9。

The domain value

A367684_1_En_6_Fig8_HTML.jpg

图 6-8。

The hostname value

现在你要为 root 用户设置密码(图 6-10 )。记住我在前一章给你的建议,在这里选择一个强的,或者留空来禁用这个用户,像在 Ubuntu 中一样使用你的普通用户和命令“sudo ”;这取决于你。我在这里设置了一个,因为旧习惯很难改变,但后一个选项完全没问题(有些人更喜欢它,因为坏人必须猜测两件事,用户名和密码,以远程攻击系统)。

A367684_1_En_6_Fig10_HTML.jpg

图 6-10。

The root password

在接下来的三个屏幕中(图 6-11 到 6-13 ,您将填写您的全名、用户名和密码。选择一个好的、强的密码,特别是如果您将根密码留空并且您将使用sudo

A367684_1_En_6_Fig13_HTML.jpg

图 6-13。

The user password

A367684_1_En_6_Fig12_HTML.jpg

图 6-12。

The user name for the account

A367684_1_En_6_Fig11_HTML.jpg

图 6-11。

The full name of the user

下面的步骤是配置时区(图 6-14);如果您的国家只有一个区域,将跳过这一步。

A367684_1_En_6_Fig14_HTML.jpg

图 6-14。

Configuration of the time zone

现在您开始安装的困难部分:使用分区管理器。在它检测到你的磁盘后,你会看到一个类似图 6-15 的屏幕。

A367684_1_En_6_Fig15_HTML.jpg

图 6-15。

Selecting the partition method

我将展示一个与之前不同的场景。让我们想象一个非常常见的情况:一个台式机系统有两个硬盘,一个 SDD (250GB)和一个硬盘(2TB)。为了充分利用这两种驱动器,您可能希望将系统和配置文件放在 SSD 上以获得良好的总体性能,将个人文件和数据放在 HDD 上以获得良好的存储容量。为此,您必须选择菜单上的手动选项。

图 6-16 中的屏幕是你应该在我提出的场景中找到的。你可以看到两个圆盘。您可以通过容量和两者都没有任何分区来区分它们。好好看看他们。事实上,我建议你把这些信息写在纸上,因为你以后会用到。现在你必须做隔板。我会告诉你如何制作其中一个,你可以想出如何制作其余的。

A367684_1_En_6_Fig16_HTML.jpg

图 6-16。

The initial partition screen

在我看来,这是安装程序中最薄弱的部分,因为它没有那么直观,新手很难理解这部分的界面是如何工作的。我会告诉你最简单的方法。

让我们从 SDD 的第一部分开始。为此,请单击磁盘的描述。您将看到一个类似于图 6-17 的屏幕。它要求确认在磁盘上创建一个新的空分区表。在这种情况下,我们假设两个磁盘都是新的,所以说是。

A367684_1_En_6_Fig17_HTML.jpg

图 6-17。

New empty partition confirmation

在图 6-18 中,你可以看到 SSD 磁盘是如何拥有一个新的空分区表的。您还可以看到,您在上级菜单中有新的选项。为了简化,我将避免任何 LVM、RAID 或加密设置。因此,要创建您的第一个新分区,请单击分区表。

A367684_1_En_6_Fig18_HTML.jpg

图 6-18。

A new partition table is created

出现另一个屏幕(图 6-19 )。选择“创建新分区”菜单项。

A367684_1_En_6_Fig19_HTML.jpg

图 6-19。

Choosing the action on the free disk space

您将要创建的第一个分区是大小为 500MB 的引导分区(图 6-20 )。

A367684_1_En_6_Fig20_HTML.jpg

图 6-20。

Size of the partition

接下来,你必须设置分区的类型(图 6-21 ),在这种情况下是主分区,然后你必须说出你想要分配分区的位置,在空闲可用空间的开始或结束(图 6-22 )。显然你想在一开始就分配这个分区(实际上,作为一个 SSD,这并不像硬盘那样重要,但这是常态)。

A367684_1_En_6_Fig22_HTML.jpg

图 6-22。

Where the partition is allocated

A367684_1_En_6_Fig21_HTML.jpg

图 6-21。

Selecting the partition type

出现的屏幕将显示该分区的默认设置(图 6-23 )。每一个都可以定制;在这种情况下,让我们保留默认设置,除了您设置为/boot的挂载点和您需要激活的可引导标志。在其余的分区中,您只需要为交换分区设置挂载点和文件系统(作为“swap”而不是“Ext4”)。在大多数情况下,您可以安全地忽略其余的参数。您可能希望更改文件系统和典型用途,例如存储大文件(如视频),或者更改装载选项以建立磁盘配额。

A367684_1_En_6_Fig23_HTML.jpg

图 6-23。

Partition settings

如你所见,这种方法比 Fedora 和 Ubuntu 的图形安装程序稍微不太友好,但也没有传言中说的那么难。实际上,与之前的两个发行版相比,安装它并不困难。维护是与 Fedora 相比有些变化的地方,而与 Ubuntu 相比变化很大。

一旦您设置了分区设置,您就可以看到分区表是如何变化的(图 6-24 )。这里显示了所有重要的参数:数量、类型、大小、引导标志、格式标志、文件系统和挂载点。您可以看到创建新分区后剩余的可用空间量。

A367684_1_En_6_Fig24_HTML.jpg

图 6-24。

A new partition is created

您可以用同样的方式创建剩余的分区,以实现图 6-25 所示的目标。最后,您应该有以下分区/挂载点:

A367684_1_En_6_Fig25_HTML.jpg

图 6-25。

The final partition settings for both disks

  • /boot:存储引导系统所需文件的分区。它是唯一一个启动标志“B”被激活的。
  • /:根分区,存储系统文件。它位于 SSD 中,以提高读/写操作的性能。
  • 这个分区的大小取决于你的内存大小;现在,一个好的选择是让它几乎和你的 RAM 内存一样大(允许系统暂停到磁盘或休眠)。有人认为把这个分区放在 SSD 硬盘上是个馊主意;好了,它们容易磨损的日子已经过去了,当你有足够的内存时,这个分区通常只用来存放你休眠时 RAM 的内容。所以把这个分区定位在这里不成问题。
  • /home:你的配置文件将被存储在哪里。默认情况下,这个分区也应该用来存储您的数据文件,那么为什么不在 HHD 中创建这个分区呢?出于同样的原因,您在硬盘中创建了数据分区,以实现速度和大存储容量之间的平衡。您希望有一个大空间来存储您的文件(尤其是多媒体文件,如您的图片或视频),但同时您希望您的程序能够快速启动并具有良好的性能。你的程序的二进制文件将在/分区中,但是这些程序的配置文件默认存储在/home分区的根文件夹中。所以,不管你的程序启动得多快,如果它必须等待读取硬盘中的配置文件,那就有问题了。您应该只存储这些文件和您希望加速的文件,因为您经常使用它们,例如工作文件,如电子表格等。
  • 这是你应该存放所有大文件以及不经常使用的文件的地方。它的缺点是性能较差,但容量很大。注意,我对挂载点使用了下面的方案,/home/youruser/data,其中 john 是我之前创建的用户。通常这将被挂载为类似于/media/data/run/media/youruser/data的东西,但是我使用这个小技巧来避免稍后使用进入/home目录的符号链接,并使它对不习惯使用挂载/可移动设备的用户来说显得更自然,所以它将像另一个附加文件夹一样出现在你的home目录中。所有这些方法都有一些不便/烦恼,我稍后会向您展示;我还将向您展示如何轻松地修复它们。

最后,在您创建了所有这些分区之后,安装程序将通过向您显示它们的摘要来要求您确认将这些更改写入您的磁盘(图 6-26 )。如果一切正常,您可以继续安装。

A367684_1_En_6_Fig26_HTML.jpg

图 6-26。

Disk changes confirmation screen

安装程序将创建分区,格式化它们,然后开始安装基本系统。这需要一些时间(图 6-27 )。

A367684_1_En_6_Fig27_HTML.jpg

图 6-27。

Installing the base system

过一会儿,你可以选择扫描更多的 CD/DVD(图片),如果你已经下载了的话。当没有可用的互联网连接时,这非常有用。在这种情况下,选择否选项并继续(图 6-28 )。

A367684_1_En_6_Fig28_HTML.jpg

图 6-28。

Optional scanning of another CD/DVD

您下载的映像包含安装整个系统所需的所有软件包,但是如果您想要使用网络镜像(图 6-29 ),您可以从可用的最新版本中获益,并在下次更新时节省时间(此外,从您第一次启动新操作系统的那一刻起,您将拥有最新的安全更新)。选择是选项。然后,您必须配置一些设置来允许此功能。

A367684_1_En_6_Fig29_HTML.jpg

图 6-29。

Deciding to use a network mirror

你需要选择镜像服务器所在的国家(图 6-30 ),实际镜像服务器(图 6-31 ),以及你是否要使用网络代理(图 6-32 )。

A367684_1_En_6_Fig32_HTML.jpg

图 6-32。

Configuring an HTTP Proxy

A367684_1_En_6_Fig31_HTML.jpg

图 6-31。

Choosing an archive mirror

A367684_1_En_6_Fig30_HTML.jpg

图 6-30。

Choosing a mirror country

下一步(图 6-33 )询问您是否想要从将要安装在您系统上的软件包中发送信息(匿名)。这由您决定,但是能够收集数据来进行使用统计对 Debian 非常有帮助。

A367684_1_En_6_Fig33_HTML.jpg

图 6-33。

Participating in the package usage survey

现在,您必须选择想要安装的预定义软件集合(图 6-34 )。这里你主要看到 Debian 支持的桌面环境和其他一些东西,但是如果你扫描了另一张 CD/DVD,你会看到更多的收藏。尽管 Debian 的实际版本是 Gnome,但我想选择一个你在其他发行版中不会看到的版本:LXDE。所以选择它,并让其他选项默认选中。如果您选择 SSH 服务器,您最好知道如何保护它,因为它是 Linux 系统中最常见的攻击媒介之一。

A367684_1_En_6_Fig34_HTML.jpg

图 6-34。

Selecting the software to install

一旦您选择了软件,安装过程中最长的步骤(图 6-35 )就开始了,即将软件包安装(和下载)到您的 SSD 驱动器。

A367684_1_En_6_Fig35_HTML.jpg

图 6-35。

Installing the software

最后,您必须决定(图 6-36 )是否在您的硬盘上安装引导加载程序(这里是 Grub)来管理系统的引导。在这种情况下,选择是并继续。

A367684_1_En_6_Fig36_HTML.jpg

图 6-36。

Deciding to install Grub

最后要做的决定是你想在哪个磁盘上安装 Grub(图 6-37 )。您必须将它安装在具有可引导分区的驱动器上(在本例中为(/ boot),这就是 SSD。我之前告诉过你要记下磁盘的引用(sda 和 sdb ),因为这对以后会有帮助;嗯,那是现在。您可以看到,标识两个驱动器的唯一参考是 UUID(通用唯一标识符)和设备路径(例如/dev/sda)。你可以根据订单来判断,但是确定一下总是更好,不是吗?嗯,你的固态硬盘是/dev/sda设备,所以选择它并继续。

A367684_1_En_6_Fig37_HTML.jpg

图 6-37。

Choosing the disk upon which to install Grub

就这样!你的 Debian OS 已经安装好了(图 6-38 )。没那么难,对吧?您现在必须重新启动系统。

A367684_1_En_6_Fig38_HTML.jpg

图 6-38。

The installation is finished .

当你第一次启动你的系统时,你看到的第一个屏幕是你已经熟悉的 Grub 屏幕,你在 Fedora 安装中看到的(图 6-39 )。按回车键或等待启动你的新 Debian 操作系统。

A367684_1_En_6_Fig39_HTML.jpg

图 6-39。

First boot screen

图 6-40 显示了登录到您的会话的登录管理器。介绍您的用户名和密码,然后按登录按钮。

A367684_1_En_6_Fig40_HTML.jpg

图 6-40。

First login in Debian

您现在已经登录到 LXDE 桌面环境。你在屏幕中间首先看到的是一个弹出对话框(图 6-41 ),它给出了关于 ClipIt 和以纯文本格式保存信息的安全风险的建议。这取决于你;我都不用 ClipIt,所以不建议激活。(我用的是没有历史的剪贴板,里面只有当前的数据。)

A367684_1_En_6_Fig41_HTML.jpg

图 6-41。

First screen of LXDE

我之前告诉过你挂载数据分区会有一点不便/烦恼,就是这样。该分区是使用 root 用户权限创建的,不允许在其中写入任何内容(因此您必须创建一个新文件,如图 6-42 所示)。但是这很容易解决。

A367684_1_En_6_Fig42_HTML.jpg

图 6-42。

Wrong permissions in data partition

您必须将挂载分区的权限更改为您创建的用户。你可以在图 6-43 中看到如何做到这一点,但我在这里更容易阅读的地方重复一遍。

A367684_1_En_6_Fig43_HTML.jpg

图 6-43。

Permissions in data partition fixed

如果您为 root 用户提供了密码,您必须这样做:

$ su root
Password:                      # enter the root password
# chown john /home/john/data/  # user your username instead of john
# rm lost+found/ -r            # delete the lost+found folder
# exit                         # never let the root user log in
$

如果您将 root 密码留空,您必须使用sudo命令:

$ sudo chown john /home/john/data/  # user your username instead of john
Password:                           # enter your user password
$ sudo rm lost+found/ -r            # delete the lost+found folder
$

就这样!你的新 Linux Debian 操作系统已经可以使用了!好好享受吧!

您可以在 www.debian.org/releases/stable/amd64/index.html.en. 阅读安装指南

保持

同样,三个基本任务是更新、安装/删除应用程序和升级。像 Fedora 一样,无论你喜欢与否,你都必须与命令行打交道,并且熟悉完成这项工作的基本应用程序。

管理应用程序

要安装/删除应用程序,你可以使用一个图形应用程序,就像 Ubuntu/Fedora 一样,比如 Synaptic。但是几乎每个 Debian 用户都使用命令行来做这件事。你可以使用典型的apt工具,也可以使用更友好的aptitude。例如,如果你想安装一个应用程序(比如 gnome-chess),你应该使用这个命令:

# aptitude install gnome-chess

要删除它:

# aptitude remove gnome-chess

就这么简单,你对自己所做的事情有一个比图形应用程序更好的控制水平(从这样一个简单的例子中很难看出,但这是事实)。

更新

包更新过程也是如此:没有简单的方法。你可以使用 Synaptic,但是最好的方法是使用aptitude。为此,您只需键入以下内容:

# aptitude update

就这样!

Note

请注意,您用来安装发行版的 DVD 仍然被认为是软件包的来源,所以无论何时您使用任何 package 命令,Debian 都会首先在 DVD 中搜索软件包。如果你有网络连接,你不希望这种情况发生。您总是想要最新的软件包,因此您必须修复这种行为。同样,Debian 并没有提供一个简单的方法来做到这一点(嗯,这并不完全正确;您可以用 Synaptic 应用程序以图形化的方式做到这一点),因此您必须编辑一个纯文本配置文件。这里我使用 LXDE 附带的图形文本编辑器(我会使用 Vi(m)或 Emacs,但那是另一回事)来编辑文件:

# leafpad /etc/apt/sources.list   # open the file with Leafpad

现在,您必须在文件的开头找到类似以下内容的两行:

# deb cd rom:
deb cd rom:

您唯一需要做的就是像第一行一样,在第二行前面加上“#”字符进行注释。保存文件,关闭 Leafpad,就这样。

升级

要升级发行版,您必须更新当前安装的软件包。你也应该首先备份你的数据,因为这是一个关键的过程。让我们看看它是如何做到的:

# apt-get update         # update the current packates using apt tools
# apt-get upgrade        # a first minimal upgrade to avoid conflicts later
# apt-get dist-upgrade   # the full upgrade of the distribution

这在桌面安装和大多数情况下已经足够了。如果这是一台服务器或另一台关键的机器,你应该采取额外的步骤,但那是另一本书的故事。

利弊

以下是我个人认为 Debian 发行版的一些优点和缺点。当然,在这件事上总有讨论的余地,但我已经尽了最大努力做到尽可能客观。

赞成的意见

  • 《Debian 宣言》、《Debian 社会契约》、《Debian 章程》,加上它的长寿和庞大的社区,保证了 Debian 将在我们中间存在很长很长一段时间。
  • 稳定分支的稳定性是所有 Linux 发行版中最好的之一;总是有点过时但是稳如磐石。
  • 虽然 Debian 背后没有公司,但它的社区是最友好的,最愿意帮助用户的,所以你会得到很好的支持。
  • 其社区的规模。
  • 大量可用的软件包。
  • 它使用了一个扩展最多、最好的包管理器:dpkg。
  • 这是一个原始发行版,而不是一个衍生物。
  • 它被许多专业人士和组织广泛采用。
  • 它支持许多架构,甚至各种内核。

骗局

  • 稳定分支没有固定的发布周期,所以下一次发布可能要等很长时间。
  • 美学和设计在这个发行版中被大大忽略了。
  • 它没有官方的商业支持。
  • 您必须知道如何使用终端来执行管理任务。
  • 安装程序是不友好和过时的。
  • 它不是最容易管理和配置的发行版。你必须过多地使用终端。它是为高级用户或愿意学习的人准备的。
  • 稳定分支即使发布了也有过时的包。

摘要

通过对 Debian 的分析,你有了 Linux 发行版的第三个例子。正如你所看到的,Debian 与 Fedora 和 Ubuntu 有许多共同点,但也有明显的差异,使 Debian 与众不同。

关于 openSUSE 的下一章将向您介绍在 Linux 中做事情的另一种方式。

Footnotes 1

www.debian.org/doc/manuals/project-history/ap-manifesto.en.html

2

www.debian.org/social_contract.en.html

3

http://opensource.org/docs/osd

4

www.debian.org/devel/constitution.en.html

5

www.debian.org/code_of_conduct.en.html

6

https://devuan.org/

七、openSUSE

openSUSE,顾名思义,是一个开放的发行版,是 SUSE Linux Enterprise 商业版的基础。至少在 Ubuntu 出现之前,SUSE 是欧洲顶级发行版,是红帽的替代品。SUSE 采纳了 Red Hat 的商业发行版社区版本的想法,openSUSE 得到了社区的好评,以至于它最终取代 SUSE 成为普通用户选择的发行版。SUSE 系列发行版一直都是维护、设计和完成得非常好的产品。多年来,openSUSE 是为数不多的盒装发行版之一,并附有一份大型印刷手册;在德国,您仍然可以通过这种方式购买 openSUSE(不过,仅限德语版)。

历史

虽然 SUSE 在 1992 年作为一家德国公司开始,但 openSUSE 项目直到 2004 年才开始。SUSE 被美国 Novell 公司收购,openSUSE 于 2005 年 10 月发布。2011 年,Novell 被 Attachmate 集团收购(2014 年与英国事务所 Micro Focus 合并);它决定让 SUSE 成为一家独立的公司,总部设在德国,特别是纽伦堡。因此,德国和美国是 openSUSE 非常流行的主要地区;这些位置几乎占安装基数的一半。

哲学

openSUSE 是 SUSE 商业发行版的社区版,类似于 Fedora/Red Hat。openSUSE 和 Fedora 一样,也是一种新思想和新技术的实验室。此外,两家公司都有一个严格的政策,只在官方的存储库/安装镜像中使用开放和自由软件。至于区别,openSUSE 使用 KDE 作为默认桌面环境,而 Fedora 使用 Gnome。Fedora 提供了更好的安全性和创新性,而 openSUSE 为其社区提供了 OBS、openQA 和 SUSE Studio 等高级工具和服务。换句话说,两个发行版的最初目的是一样的,但它们的结果不同主要是因为它们的母发行版和社区的影响(在大小上,Fedora 社区比 openSUSE 社区大)。你可以在 https://en.opensuse.org/openSUSE:Guiding_principles 了解 openSUSE 的指导原则。

发行版选择标准

现在你已经了解了一点 openSUSE 的历史,让我们来看看这个特殊的发行版在第二章的选择标准上表现如何。

目的和环境

openSUSE 是一个通用的发行版,但是有一些社区开发的非官方版本是面向任务的 1 。和 Debian 一样,没有用于服务器目的的特殊版本(SUSE 有一个)。它只提供了发行版的两个官方版本:

  • Leap:发行版的常规发布版本,也是主要版本。Leap 是稳定版。
  • Tumbleweed:该发行版的滚动发布版本,经常更新最新的软件包,这是一个前沿版本。

此外,openSUSE(更具体地说,SUSE)提供了一种独特的服务,SUSE studio,它允许您创建自己的 openSUSE 衍生或定制图像。这是一个非常强大的工具,具有先进的功能,可以让您为 DVD、虚拟机、云等创建映像。您甚至可以将您的映像直接部署到云中,或者在线测试结果。你可以在 https://susestudio.com/ 找到素色工作室。

支持

与 Fedora 类似,openSUSE 只提供社区支持,尽管 SUSE 是这个发行版的赞助商。这个社区远没有 Ubuntu 或 Debian 那么大,但是和 Fedora 一样,它足够大,可以提供很好的支持。与大多数发行版一样,您可以通过多种渠道获得此帮助:

用户友好性

在 openSUSE 中,你可以通过图形界面(以及在安装过程中)在你的操作系统中配置多少高级设置,从而看到它的母发行版的定位(对公司世界)的影响。尽管如此,它还是相当容易使用。

它声称其独特的配置和安装工具 YaST(另一个安装工具)是 Linux 生态系统中最好和最容易使用的。操作系统的其余可用性取决于默认的桌面管理器实用程序。我个人认为 YaST 是一个非常好的工具,但是当你想要管理你的操作系统时,没有什么可以代替命令行。相比较而言,堪比 Fedora(可能稍微容易一点);不如 Ubuntu 容易,但比 Debian 容易。此外,YaST 是一个非常强大的工具,但正因为如此,它对于初学者来说可能不是最容易的。因此,我不建议初学者使用这个发行版;他们可能会被如此多的高级选项弄得不知所措。

稳定性

openSUSE 是一个非常稳定的发行版。它还有一个独特的(至少作为一个公共服务)特征:一个自动化测试工具,用于测试软件包的构建、安装过程和操作系统的几个特性,如 GUI 操作或程序是否按预期工作。有了这个工具 openQA ( https://openqa.opensuse.org/ ),他们可以在每次新的构建准备就绪时自动测试硬件和安装选项的几种组合(构建是通过另一个自动化的开放工具 openSUSE Build Service 完成的)。当然,测试不可能覆盖所有可能的错误和失败,但是它对构建一个非常稳定的版本非常有帮助。这个工具用于发行版的两个版本,常规版本(Leap)和滚动版本(Tumbleweed)。

Leap 版本的发布周期遵循标准发布模型,每个次要版本的发布周期为一年,主要版本的发布周期为三年。每个版本的支持生命周期大约是每个次要版本发布后的 18 个月,主要版本的支持生命周期是 3 年。另外,在当前版本中,openSUSE 是基于 SUSE Linux Enterprise (SLES)的。

此外,社区通过 Evergreen 计划选择几个 openSUSE 版本进行长期支持(由社区提供)。如果你想了解更多关于 openSUSE 版本的信息,请访问 https://en.opensuse.org/Lifetime

硬件支持

在硬件支持方面,openSUSE 和 Fedora 处于相似的位置。由于严格的不包含私有驱动的政策,硬件支持默认不如 Ubuntu。由于几个社区库和 rpm 包系统的使用(许多驱动程序都是这种格式),这个问题可以得到部分解决。

美学

像 Fedora 一样,openSUSE 的美学是所选桌面环境的默认美学,除了桌面背景、颜色和安装程序(YaST)。

桌面环境

传统上,SUSE(和 openSUSE)总是提供两个主要的桌面环境(Gnome 和 KDE)作为安装过程中的一个选项,但 KDE 是默认/官方的。openSUSE 还提供了在安装过程中选择 XFCE 或 LXDE 的选项。

初始化系统

openSUSE 的 init 系统是目前所有发行版中最常见的:systemd。openSUSE 是继 Fedora(它的创造者)和 Mageia 之后第三个采用 systemd 的大发行版。

包装管理系统

包管理系统与 Fedora: rpm 相同。因此,它受益于来自第三方开发者的这个包系统的广泛分发。为了管理这些包,它包括图形和命令行工具:YaST 和 zipper。

体系结构

直到最近,openSUSE 还支持两种硬件架构,32 位和 64 位,但从当前版本 Leap 42 开始,只支持 Intel/AMD 64 位架构。这是许多发行版期待很快做出的决定;Fedora 和 Ubuntu 在不久的将来做出了这一改变。

安全性/匿名性

openSUSE 是一个安全的发行版。像 Ubuntu 一样,它默认启用 AppArmor 和防火墙。它没有 Fedora 安全,但是通过 YaST 你可以定制 AppArmor,防火墙,并配置其他选项来加固操作系统。此外,您可以加密您的分区或您的个人文件夹。

原则和道德

和 Fedora 一样,openSUSE 默认只提供免费开源软件,甚至驱动。但是有一些非官方的社区存储库,你可以在那里找到软件,这些软件可以很容易地通过 YaST 添加。你可以在 https://en.opensuse.org/Restricted_formats 了解更多关于 openSUSE 的政策。

现场 CD

openSUSE 提供了两个实时的 DVD ISO 镜像,每个桌面管理器(KDE 和 Gnome)一个。

专业认证

像 Fedora 一样,openSUSE 不提供任何专业认证程序,但其母发行版 SUSE 提供(详见第二章)。

装置

在安装 openSUSE 之前,您必须做的第一件事是在常规发布版本和滚动发布版本之间进行选择。在这里,我将向您展示如何使用 Leap 版本(标准版本)安装发行版,因为它是主要版本,也是大多数用户最有可能选择的版本。

和以前的发行版一样,您必须到项目页面下载 ISO 映像来安装操作系统。如果你去 www.opensuse.org/ ,你会看到一个类似图 7-1 的屏幕。

A367684_1_En_7_Fig1_HTML.jpg

图 7-1。

The OpenSUSE project web page

单击 Leap 版本的安装 Leap 按钮。您将进入类似图 7-2 的屏幕,在这里您可以通过按下直接链接按钮直接访问您需要的 ISO 映像。您也可以选择其他下载方式,如 Bit Torrent。

A367684_1_En_7_Fig2_HTML.jpg

图 7-2。

The downloaded ISO image dialog

该屏幕显示了两个有趣的选项:

  • 切换到开发版本允许您下载发行版的当前测试版或开发版。
  • 网络版本是最低安装基础,它依赖于互联网连接来下载所有的软件包。

下载 Leap 版本的当前 ISO 映像并启动系统后,您将看到一个屏幕,从中可以看到 openSUSE 如何处理设计等某些事情(图 7-3 )。

A367684_1_En_7_Fig3_HTML.jpg

图 7-3。

The text installation menu screen of openSUSE

在这个经典的屏幕上,你可以看到(除了漂亮的 openSUSE 标志)你的选择。默认情况下,选择“从硬盘引导”菜单项是因为 YaST 结束安装的方式,在结束时不请求或弹出 DVD。因此,在第一次安装后的第一次重启中,openSUSE 将直接引导到您的新操作系统。下一个菜单项是我们感兴趣的一个:“Installation”将在您选择它时开始安装过程。“升级”旨在对当前 openSUSE 安装进行离线升级。其余的菜单项和你在其他发行版中看到的一样。

注意屏幕底部的线条。一行列出了常用的高级选项;它下面的一行显示了当前选择的值(在这种情况下,它们是默认值)。值得一提的是,如果您在此屏幕中按 Esc,然后按 OK,您将被发送到此屏幕的文本版本(安装程序仍然是图形版本)。

因此,按下安装选项,然后在 YaST 的第一个屏幕上开始安装(图 7-4 )。

A367684_1_En_7_Fig4_HTML.jpg

图 7-4。

The first screen of YaST is where you select the language, keyboard layout, and agree to the license

在第一个屏幕上,您可以看到选择语言和键盘布局的传统选项,一个帮助按钮,以及首次出现的许可协议。这是 openSUSE 的一个特点;在 Linux 发行版中很少看到这种情况,因为这是 GNU 许可下的自由软件,大多数发行版都希望避免这一步,以区别于其他操作系统及其 EULAs。

选择您的语言和键盘布局,按下 Next 按钮跳转到下一步,如图 7-5 所示(在一个简短的硬件系统自动检测过程之后)。

A367684_1_En_7_Fig5_HTML.jpg

图 7-5。

Source installation options

这个屏幕提供了为安装选择额外的软件包源的选项,比如默认的存储库或其他媒体(在线或离线)。如果您有一个良好的互联网连接,添加在线仓库,以获得最新版本的软件包。下一步如图 7-6 所示。

A367684_1_En_7_Fig6_HTML.jpg

图 7-6。

The suggested partitioning by YaST

这是驱动器分区步骤。openSUSE 建议的分区比你在本书中看到的要复杂得多。这是因为默认情况下,它在根分区中使用 btrfs 文件系统。openSUSE 使用一个名为 Snapper 的工具来拍摄该分区的快照(手动或自动)。该工具适用于 btrfs、ext4 和精简配置的 LVM 卷。xfs 用于/home目录的原因是因为 SUSE 采用了这个文件系统,因为它提供了错误处理和支持更适合企业环境的大量数据等优势。另外,它创建了许多子卷,利用了 btrfs 的优势。

有三种方法可以编辑向您建议的设置;前两个是半自动的,第三个是完全手动的。

  • 编辑提议设置:这允许您对已经提议的方案进行一些更改,比如选择使用 LVM 和加密以及//home分区的文件系统。

  • 创建分区设置:这与前面的选项非常相似,但是在这里您可以选择要安装操作系统的磁盘和分区/空闲空间(这在已经安装了其他操作系统的情况下很有用)。

  • Expert Partitioner: This is the completely customized manual procedure. Here you can see one of the best things about YaST; the partitioner program is one of the best and most powerful in all Linux distros. You can take a glance at it in Figures 7-7 and 7-8.

    A367684_1_En_7_Fig8_HTML.jpg

    图 7-8。

    Another view of the Expert Partitioner

    A367684_1_En_7_Fig7_HTML.jpg

    图 7-7。

    The Expert Partitioner from YaST

如果您是专家或者想要完全定制您的分区,那么最后一个选项适合您;其他两个都没问题。我认为专家分区器是一个很棒的工具,与其使用它,不如选择第一个按钮来定制默认方案。如果您按下编辑建议设置按钮,您将看到如图 7-9 左侧所示的对话框。这是默认设置,但您将对其稍加更改,看看小小的更改如何创建完美的设置。

A367684_1_En_7_Fig9_HTML.jpg

图 7-9。

Changing the partitioning proposal settings

首先,您希望为挂起扩大交换分区,这样当磁盘挂起时,您可以将 RAM 内存的内容存储在磁盘上。接下来,将/home分区文件系统改为 ext4,而不是 XFS;我认为这是家庭用户的最佳选择。最后,您将使用一个 LVM 分区(用于/home挂载点)并加密它。当你选择加密时,它会要求你输入密码,这是很严重的。如果你忘记了这个密码,也就忘记了你的数据:它已经不在了(没有那个密码你就无法访问它)。所以,选择一个好的,并使用一种帮助你记忆的方法(你可以使用我在第四章展示给你的方法)。最后,您会看到一个类似于图 7-9 右侧所示的设置。

按下 OK 按钮,您将看到摘要中反映的更改(图 7-10 )。按“下一步”按钮进入下一步。

A367684_1_En_7_Fig10_HTML.jpg

图 7-10。

The summary of partition actions before and after change the proposal settings

这是配置时钟和时区的常用步骤(图 7-11 )。与 Fedora 一样,您也可以通过其他设置按钮自定义高级选项,如与 NTP 服务器同步。你应该已经知道如何完成这一步。完成后,再次按下“下一步”按钮。

A367684_1_En_7_Fig11_HTML.jpg

图 7-11。

The clock and time zone settings

如果在第一步中您按照建议添加了在线存储库,那么现在您必须在这里选择您想要使用的存储库来进行安装(图 7-12 )。建议你选择前四个,默认选中。如果你不打算编译任何包,你不需要源代码(或者阅读源代码),调试版是为 openSUSE 的开发者准备的。选择它们并进入下一步。

A367684_1_En_7_Fig12_HTML.jpg

图 7-12。

Selection of online repositories

几分钟后,在读取在线存储库的内容期间,它将跳转到另一个 EULA 许可协议,如图 7-13 所示。我知道出现这种情况是因为主存储库的内容可能与 DVD 上的内容有所不同,但我怀疑您会和我一样对此感到恼火。无论如何,这是由于发行版的哲学,所以按下同意按钮,继续这个过程。

A367684_1_En_7_Fig13_HTML.jpg

图 7-13。

Another license agreement screen

添加完存储库后,您可以选择想要用于安装的桌面环境(图 7-14 )。默认的是 KDE(openSUSE 工具就是为这个环境编写的;如果你使用另一个,它将安装 KDE 的最小组件,Qt,以便能够使用它),但你可以选择 Gnome 或其他。让我们在这里选择 KDE。现在是最后一步了!

A367684_1_En_7_Fig14_HTML.jpg

图 7-14。

The desktop environment selection screen

正如您在图 7-15 中看到的,现在您必须像往常一样创建您将在操作系统中使用的用户。和 Fedora 一样,有一系列高级选项。第一个是“接收系统邮件”,能够接收发送给这个帐户的根用户的邮件。此外,您可以使用“更改”按钮来更改身份验证方法。在这种情况下,默认选项是最安全的,所以我建议您不要更改它们。选项“为 systemd 管理员使用这个密码”正是它所说的;不要将这与 sudo 命令混淆。因此,在字段中填入您的姓名和密码(请使用强有力的密码),然后您可以继续。

A367684_1_En_7_Fig15_HTML.jpg

图 7-15。

The user creation screen Note

我使用虚拟机管理器 VirtualBox 来安装我在本书中展示的发行版,主要有两个原因。第一个是方便;我可以在几秒钟内创建或删除一台新机器(这样我就可以在不同的场景下为同一个发行版拥有多台机器)。如果我必须用一台真正的机器来做这件事,那将是极其乏味的。第二个原因是因为在这种情况下截图要容易得多。

为了以合理的方式管理几台机器和发行版,我在所有的机器和发行版中使用了相同的密码。从一开始,我就打算使用一个短而简单的密码,因为它有助于使这个任务不那么烦人。此外,通过使用一个弱密码,我可以测试不同的发行版如何处理这种情况。直到现在,只有 Fedora 认为我的密码很弱。但是 openSUSE 是第一个建议我不要使用弱密码的(图 7-16 )。它也是第一个提醒我它非常弱的,因为它是基于一个字典单词(这是真的)。好奇的话,密码是pas$w0r.d。所以永远不要使用这样的密码,否则你很快就会被别人拥有。感谢 openSUSE 对这类事情的关注。

A367684_1_En_7_Fig16_HTML.jpg

图 7-16。

The weak password alert dialog

如果您之前没有选中对 root 用户使用相同密码的选项(我希望没有;是一个以后可以咬你一口的安全漏洞),那么它现在会要求你输入 root 密码,如图 7-17 所示。

A367684_1_En_7_Fig17_HTML.jpg

图 7-17。

The administrator password form

在开始安装之前,您将获得安装设置的摘要(图 7-18 )。请注意这里重要的一点—这是一个交互式摘要,因此您可以单击链接(带绿色下划线)来访问一些选项并进行更改。例如,您可以更改将要安装的软件(图 7-19 ),这是您以前没有的选项。此外,您可以导出此配置,以便能够使用 AutoYaST 以完全无人值守和自动化的方式进行与此完全相同的其他安装。值得一提的是,你可以看到你要从网上下载的软件包的大小。如果您没有快速连接,并且文件太大,您可以随时返回并取消选择存储库。

A367684_1_En_7_Fig19_HTML.jpg

图 7-19。

The software selection of the openSUSE installation

A367684_1_En_7_Fig18_HTML.jpg

图 7-18。

Summary of the installation settings

因为开始安装过程需要确认,所以接受它。在磁盘上安装操作系统时,您可以看到一个屏幕,屏幕底部有一个进度条,上面显示了一系列关于发行版的消息(图 7-20 )。还有另外两个选项卡,您可以在其中查看当时正在执行的操作的详细信息以及关于此特定版本的注释。

A367684_1_En_7_Fig20_HTML.jpg

图 7-20。

openSUSE is installing

当在磁盘上安装所有软件包的过程完成后,它会告诉你它将重新启动。重启后,你将再次回到第一屏。如果你什么都不做,它将从硬盘启动,从而启动你的 openSUSE 的新安装。当从磁盘引导时,你将看到的第一个屏幕是你已经熟悉的 Grub 引导管理器,如图 7-21 所示。

A367684_1_En_7_Fig21_HTML.jpg

图 7-21。

The Grub boot loader of openSUSE

下一个屏幕是最关键的:解密硬盘内容的加密密码。如果你忘记了密码,那就太倒霉了!不能继续(图 7-22 )。

A367684_1_En_7_Fig22_HTML.jpg

图 7-22。

The decrypt password for your files. I hope you remember it!

如果您成功输入了密码,引导过程将继续。如果您没有选择自动登录(我希望没有),那么您将会看到图 7-23 中的屏幕。一旦你介绍了你的名字和密码,你就可以开始你的第一次 KDE 会议。

A367684_1_En_7_Fig23_HTML.jpg

图 7-23。

The openSUSE login screen

瞧啊。你可以享受你的新操作系统(图 7-24 )。

A367684_1_En_7_Fig24_HTML.jpg

图 7-24。

The openSUSE KDE desktop

保持

嗯,在某种程度上介于 Ubuntu one 和 Fedora one 之间,openSUSE 旨在以一种简单的方式进行维护,集中在 YaST 工具中。所以,让我们看看这些任务是如何在 openSUSE 中执行的。

更新和管理应用程序

虽然您可以使用命令行和 zypper 工具来更新和安装/删除您的应用程序,但默认目标是使用 YaST 来完成所有这些工作。YaST 有一个完整的管理软件部分,如图 7-25 所示。

A367684_1_En_7_Fig25_HTML.jpg

图 7-25。

The software section of YaST

与 Ubuntu 一样,openSUSE 会在有新的更新时提醒您(图 7-26 ),因此您可以使用该对话框直接进行更新。

A367684_1_En_7_Fig26_HTML.jpg

图 7-26。

New updates available notification

但是您可以通过使用 YaST 的在线更新选项(图 7-27 )执行更新来手动检查更新。它是 YaST 中的常规软件管理器,但默认情况下只选择修补程序选项卡。这是您必须用来删除或安装软件的同一工具。这确实是一个非常强大的工具,但我认为它不够直观,所以初学者可能会发现一开始很难使用。我个人觉得这个工具和 Synaptic(一个你可以在 Debian 或者 Ubuntu 中使用的工具)在可用性方面非常差;我更喜欢使用命令行工具来完成这些任务,因为一旦您知道如何操作,它们就更容易控制和使用。然而,openSUSE 专注于企业世界和高级用户,所以这些工具是他们的用户期望找到的。

A367684_1_En_7_Fig27_HTML.jpg

图 7-27。

The YaST software updater

升级

在 openSUSE 中有两种方式来执行版本升级:在线方式和离线方式。要执行在线方法,请使用命令行、zypper 命令和在线存储库。离线方法只需要新版本的 ISO 映像,然后在第一个屏幕上选择升级选项,而不是安装选项。执行 online 方法的命令乍看起来非常容易使用,# zypper dup,但是你需要先执行一系列的操作来改变库,更新你的包,等等 2 。所以,如果你是发行版的新用户,我建议你选择离线方式并按照说明进行操作。

利弊

以下是我个人认为的 openSUSE 发行版的利与弊。当然,在这件事上总有讨论的余地,但我已经尽了最大努力做到尽可能客观。

赞成的意见

  • YaST 是配置和安装 Linux 操作系统的最好和最强大的工具之一。
  • openSUSE 是一个安全的发行版,可以直接从 YaST 进行加固。
  • 它会处理很多小事。
  • 如果您希望获得最新的更新,您可以选择滚动发布版本,也可以选择非常稳定的版本。
  • openSUSE 只支持自由和开源软件,但是如果你想的话,你可以很容易地访问专有软件。
  • 开发人员贡献并与软件包的上游版本合作,并且是内核的重要贡献者。
  • 这是一个原始的分配,而不是一个衍生物。
  • 它使用最广泛的包格式之一,rpm。
  • SUSE 的背后是 openSUSE,openSUSE 是 SUSE 基础的一部分。
  • 这是有据可查的,如果你懂德语,你甚至可以买盒装的,并得到一本印刷手册。

骗局

  • openSUSE 专注于企业界和高级用户。对新手来说不太用户友好。
  • YaST 功能强大但不够直观,对一些东西的配置也不是最好的方式。
  • 默认的硬件支持不如其他发行版;您可能需要手动使用专有驱动程序。
  • 主发行版的常规发布方案没有 Ubuntu 或 Fedora 的常规,但也没有 Debian 的差。
  • 它没有商业支持。
  • 它只支持一种架构。
  • 安装基数没有 Fedora,Debian,或者 Ubuntu 那么大。

摘要

另一个发行版 openSUSE 被放到了显微镜下。它对许多普通的事情采取了不同的方法。在前几章中看到的任何发行版中都没有与 YaST 等同的版本,我保证这不会是你在本书中看到的最后一个新事物。

因此,在下一章中,你将看到 Linux Mint 是如何处理各种主题的。

Footnotes 1

https://en.opensuse.org/Derivatives

2

https://en.opensuse.org/SDB:System_upgrade

八、Linux Mint

Linux Mint 是新的感觉。它是过去四年中最受欢迎的发行版,甚至比它所基于的 Ubuntu 发行版还要受欢迎。这很讽刺,因为 Ubuntu 是六年前最流行的发行版,它是基于另一个版本 Debian 1 。然而,有受欢迎程度,也有安装基础,在后者中,Ubuntu 仍然有更大的数量。那么,是什么让 Linux Mint 如此成功呢?主要原因是 Linux Mint 在使发行版更容易使用方面比 Ubuntu 走得更远,并且它听取了用户群关于其发展方向的意见。

历史

Linux Mint 是由法国开发者 Clement Lefebvre 于 2006 年创建的。它是基于 Kubuntu(只针对最初的版本;在那之后,Ubuntu 是基础发行版)。列斐伏尔的目标是创造一个更优雅的发行版。发布后,它慢慢地但不断地被越来越多的社区采用,主要是在欧洲。然而,有两个事件会在短时间内对扩大 Mint 的受欢迎程度和采用产生很大的影响。

大约在 2011 年,Gnome 桌面环境在其版本 3 中进行了彻底的改变。大量的 Gnome 用户不喜欢这种变化,并开始寻找替代方案。当时,KDE 也在从版本 3 过渡到版本 4,由于新版本的不成熟,频繁出现错误。在少数没有升级到 Gnome 3 版的发行版中,Mint 是最友好、最稳定、最完美的。另一个事件是当 Ubuntu 从 Gnome 切换到 Unity 时,一个比 Gnome 3 更加讨厌和不受欢迎的桌面环境;这引发了用户从 Ubuntu 到 Mint 的大迁移。

Mint 能够利用大量用户涌入其社区的优势,开发自己的桌面环境 Cinnamon,作为 Gnome 3 的替代品;它还采用并帮助开发了 MATE 作为 Gnome 2 的替代品。Mint 再次听取了用户的意见:它创建了一个基于 Debian Stable 的替代版本,作为 Mint 的半滚动发布版本。

多年来,Linux Mint 从古老的 openSUSE 发行版中篡夺了欧洲顶级发行版的宝座。

哲学

当 Clement Lefebvre 将 Linux Mint 的目标定义为一个优雅的发行版时,他的意思是一个专注于易用性、吸引人的设计、稳定性和用户反馈的发行版。对可用性的关注反映在诸如开箱即用的完整多媒体支持上,这在其他发行版中是不容易实现的。听取其用户的反馈是 Cinnamon 开发以及采用 MATE 和其他软件贡献背后的原因。此外,Linux Mint 被认为是一个非常完美的发行版,所有的东西都可以工作,小细节都得到了处理。

因此,在易用性方面,Linux Mint 可能是前三名之一。另一件值得一提的事情是,Linux Mint 只专注于桌面用户,这显然有助于它最终得到一个更加完美的产品。

发行版选择标准

现在你已经了解了 Mint 的一点历史,让我们看看这个特别的发行版在第二章的章节标准上的表现。

目的和环境

Linux Mint 是一个只面向桌面用户的通用发行版。它有两个版本:

  • Linux Mint:主发行版,它是一个常规发布版本,基于 Ubuntu。支持的每个桌面环境都有不同的映像(Cinnamon、MATE、KDE、Xfce)。此外,两个主要的 DEs 提供没有编解码器的版本,用于多媒体编解码器获得专利的国家。
  • LMDE:基于 Debian 的版本(LMDE 指 Linux Mint Debian 版),它有一个半滚动的发布周期。

支持

显然,在没有公司支持的情况下,Linux Mint 只提供社区支持,并且由于它拥有本书迄今为止所见的所有发行版中最小的社区,所以支持没有那么好。获得这种支持的可用渠道如下:

因为 Linux Mint 是基于 Ubuntu 的,有些事情可以通过 Ubuntu 的支持渠道来解决,所以如果你在 Mint 中没有找到帮助,你可以随时尝试这些渠道。

从社区网站 http://community.linuxmint.com/idea 的创意部分收集、讨论并经常实施来自用户的反馈。

用户友好性

如前所述,Linux Mint 是最容易使用的 Linux 发行版之一,你可以从一开始就看到这一点。它吸取了 Ubuntu 最好的部分,并添加了自己的功能,使总体体验非常愉快。有许多小细节旨在最大限度地减少与操作系统的摩擦,如域拦截器(不必与防火墙打交道来设置家长控制)或上传管理器(用于管理 FTP 和 SCP 服务)。在“维护”一节中,您将看到 Linux Mint 在使某些事情变得更容易方面走了多远。这是我推荐给初学者的发行版之一。

稳定性

Linux Mint 是一个非常稳定的发行版。我认为它比它的母亲 Ubuntu 更稳定,因为 Mint 使用 Ubuntu 的长期支持版本,并且它默认只提供“安全”的更新。Linux Mint 开发者所说的“安全”是指这些更新不会破坏你的操作系统。因此,这个发行版没有最新的包(事实上,它通常比 Ubuntu 更过时),但它在稳定性和新鲜度之间提供了更好的平衡,例如,比 Debian Stable。

Mint 遵循一个标准的发布模型(至少是基于 Ubuntu 的模型),它基于 Ubuntu 的 LTS 版本。因此,在 Ubuntu LTS 发行版(每两年一次)发布后,Mint 的主要版本也会发布,而在每次 Ubuntu 常规发行版(每 3 个月一次)发布后,Mint 的次要版本(没有太多变化)也会发布。每个版本都有一个代号,通常是以“a”结尾的女性名称。它们按照字母顺序排列,代号的第一个字母位于与版本号相对应的字母位置。

显然,因为它依赖于 Ubuntu 版本,所以 Linux Mint 不能像 Ubuntu 一样有规律,因为它的开发人员需要一些时间来准备他们自己的版本,而这个时间量在每个版本中是不同的。

硬件支持

作为 Ubuntu 的衍生产品,硬件支持几乎和 Ubuntu 一样好,但 Mint 总是优先考虑开源驱动,而不是私有驱动。(你可以通过驱动管理器安装私有的。)

美学

良好的全球审美是 Linux Mint 的主要目标之一。Mint 开发了自己的桌面环境,它是以设计为出发点的。你可以在发行版的每个角落看到这一点,从颜色、桌面、徽标、主题、图标到壁纸。整个桌面有一个普遍的一致性,很容易看。Linux Mint 经常被认为是所有发行版中最有吸引力的(当然这是一个非常主观的问题,但这是一个全球共识)。

桌面环境

Linux Mint 主要有两个官方桌面环境:Cinnamon 和 MATE。第一个是 Gnome Shell (Gnome 3)的分支,第二个是 Gnome 2 的分支。如前所述,肉桂是由薄荷社区开发的;它是最受欢迎的,也是事实上的官方造币厂。其他桌面环境,如 KDE 和 Xfce,在单独的 ISO 映像中提供。

初始化系统

目前 Linux Mint 仍然使用 Upstart(和 LMDE 的 SysV)作为它的 init 系统,但是这将在下一个版本中改变(这将在下一个 Ubuntu LTS 版本之后不久发生),届时它将采用 systemd,大多数发行版已经这样做了。

包装管理系统

既然是基于 Ubuntu,显然包管理系统是 dpkg,所以用。deb 套餐。尽管 Linux Mint 有自己的软件包库,但它也使用 Ubuntu 的库,所以它获得了 Ubuntu 可用的软件包的好处。你可以为 Ubuntu 包配置其他流行的源码,比如 PPAs 或者 Getdeb 库。Linux Mint 提供了一个很好的图形化工具来管理这些包,软件管理器(mintinstall)但是你也可以使用 Synaptic 来完成同样的任务。

体系结构

Mint 只支持两大架构:32 位和 64 位版本的 Intel 和 AMD。

安全性/匿名性

Mint 是基于 Ubuntu 的,所以默认情况下是安全的。但是,它不像 Ubuntu 那样安全,因为它不实现开箱即用的 AppArmor。此外,级别更新策略可能会使操作系统有点不安全,因为内核更新(其中一些带有安全补丁)不是默认进行的。一如既往,在易用性和安全性之间有一个平衡;通常你需要更多的知识来维护一个更安全的发行版。

原则和道德

Linux Mint 优先选择自由软件而不是专有软件,但它也提供专有软件,如 Adobe Flash 支持和多媒体编解码器。尽管图形驱动默认设置为开源驱动,但它有像驱动管理器这样的工具来处理专有驱动,你总是可以在资源库中找到一些。

现场 CD

和 Ubuntu 一样,Linux Mint 的 ISO 镜像也是直播 DVD 镜像。

专业认证

Linux Mint 不提供任何专业认证。

装置

因为 Linux Mint 是基于 Ubuntu 的,所以 Mint 的安装过程与 Ubuntu 的安装过程非常相似(事实上,它是同一个,只有很少的美学上的变化),所以我将在这里介绍另一个场景,向您展示与 Ubuntu 章节中的安装不同的东西。

首先像往常一样,进入分发版的下载页面, www.linuxmint.com/download.php ,在这里你会看到类似图 8-1 的东西。

A367684_1_En_8_Fig1_HTML.jpg

图 8-1。

The Linux Mint downloads page

选择当前的主版本(基于 Ubuntu 的版本);在写这篇文章的时候,是 17.3 版本。您可以根据要使用的桌面环境选择不同的图像;肉桂是默认的。此外,每个主要的 DEs (Cinnamon 和 MATE)都有不同的版本,因此您可以选择是否想要没有多媒体编解码器或 OEM 图像的版本。让我们选择最流行的,肉桂 64 位版本。点击该链接后,您将看到图 8-2 中的屏幕。

A367684_1_En_8_Fig2_HTML.jpg

图 8-2。

The download options for the ISO image of Linux Mint

您在这里看到的第一个选项是通过 Bit Torrent 下载 ISO 映像,这是最适合像这样的 Linux 发行版的选项,经济资源很少。下面是一个很长的镜像列表,你可以通过 HTTP 下载 ISO 镜像。这取决于你,但我选择下载图像的种子文件。

下载完映像后,您就可以开始安装了。在我的例子中,我将在一台有 2TB 硬盘的机器上安装 Linux Mint,默认的 Windows 8 安装会占用整个硬盘。目标是在机器上同时安装两个操作系统,并且能够在启动时选择您想要使用的操作系统。

从 Linux Mint ISO 启动时出现的第一个屏幕与其他发行版略有不同(十秒倒计时)。如果你不等待那十秒钟,一个 Linux Mint 的现场会议开始;否则,如果您按任意键,您将看到如图 8-3 所示的屏幕。这是你在其他发行版中看到的常见菜单,但 Mint 在这里隐藏了它,以使安装过程更容易,不那么吓人。

A367684_1_En_8_Fig3_HTML.jpg

图 8-3。

The boot-up menu of Linux Mint

一旦进入 Linux Mint 的直播环节(图 8-4 ),就可以稍微玩一玩;最后,点击“安装 Linux Mint”图标开始实际安装(见图 8-5 )。

A367684_1_En_8_Fig5_HTML.jpg

图 8-5。

The first step of the Mint installation

A367684_1_En_8_Fig4_HTML.jpg

图 8-4。

The Linux Mint Live session

第一步是您必须选择在流程和操作系统中使用的语言。您也可以阅读版本说明或更新安装软件本身(此选项仅在必要时,在您检查升级后出现)。接下来是容易的部分(图 8-6 )。

A367684_1_En_8_Fig6_HTML.jpg

图 8-6。

Checking for prerequisites

这里不需要你做什么。这只是测试系统,以确保它有安装所需的硬件。继续下一步。

在图 8-7 中可以看到检测到了 Windows OS 你可以选择安装 Mint,或者删除硬盘上的所有数据,然后安装 Mint。正如我在开始时所说的,目的是让两个操作系统同时可用。默认情况下该选项被选中,所以按继续进入下一步(图 8-8 )。

A367684_1_En_8_Fig8_HTML.jpg

图 8-8。

Size of the disk distribution for both operating systems

A367684_1_En_8_Fig7_HTML.jpg

图 8-7。

Installation type screen

现在,您必须决定为每个操作系统分配多少磁盘空间。默认情况下,安装程序使用 50/50 分割,但是您可以通过简单地移动出现在两个绿色方块之间的条来修改它。您还可以通过链接访问高级分区工具。

您可以在图 8-9 中看到我的磁盘的当前状态。目前有两个分区,一个非常小的用于 Windows 8 加载程序,一个大的用于操作系统和数据。

A367684_1_En_8_Fig9_HTML.jpg

图 8-9。

The current partitions of the disk with Windows 8

返回上一屏幕(图 8-8 )。如果您按下 Install Now 按钮,将弹出如图 8-10 所示的对话框,通知您将要执行一些磁盘操作,特别是调整 Windows 的大 ntfs 分区的大小。当然,此时您应该已经备份了您的数据,因为这个操作很微妙,可能会出错(这种情况很少见,但您知道,事情总是会发生)。如果您准备好了,请按继续按钮。

A367684_1_En_8_Fig10_HTML.jpg

图 8-10。

The warning dialog about the resize operation

一旦调整了分区的大小,在它创建新分区来分配您的 Linux Mint 安装之前,会出现一个弹出对话框,向您显示将要进行的更改,并要求您确认(图 8-11 )。此时,您应该知道,从长远来看,默认的建议分区(一个根分区和一个交换分区)并不是最好的计划。所以,与其从这里继续,不如让我们回去建立一个更好的分区方案。

A367684_1_En_8_Fig11_HTML.jpg

图 8-11。

Are you sure you want to write the changes to the disk?

如果您返回,您将再次进入图 8-7 屏幕。这一次,选择“其他东西”选项来创建您自己的分区方案。高级分区现在显示类似图 8-12 的东西,其中 Windows 分区已经变小了。所以现在你有一半的可用空间。在那个空间中,让我们创建类似于图 8-13 的新分区。是的,它们可能不同,但这已经足够好了,不会太复杂。

A367684_1_En_8_Fig13_HTML.jpg

图 8-13。

The new partition scheme to install Linux Mint

A367684_1_En_8_Fig12_HTML.jpg

图 8-12。

The Windows partition already resized

如果您按下“立即安装”按钮,您将看到如图 8-14 所示的摘要。

A367684_1_En_8_Fig14_HTML.jpg

图 8-14。

The summary of t he new partition scheme

如果继续,更改将被写入磁盘,安装过程将继续。接下来的步骤是设置您所在的当前时区(图 8-15 )和键盘布局(图 8-16 )。

A367684_1_En_8_Fig16_HTML.jpg

图 8-16。

The keyboard layout settings

A367684_1_En_8_Fig15_HTML.jpg

图 8-15。

Time zone settings

在图 8-17 中,可以观察用户设置;这些都是我一直用的。然而,Fedora 尤其是 openSUSE 认为很弱的密码在这里被认为是合理的。不管怎样,按下继续键。

A367684_1_En_8_Fig17_HTML.jpg

图 8-17。

The user settings

安装过程中令人厌烦的部分,也就是将操作系统的文件复制到磁盘,将会开始。最后,您会看到如图 8-18 所示的对话框。当您按下“立即重启”按钮时,实时会话将关闭并要求您从系统中移除 ISO 镜像文件(图 8-19 )。

A367684_1_En_8_Fig19_HTML.jpg

图 8-19。

Remove the image from the DVD/USB to restart the system

A367684_1_En_8_Fig18_HTML.jpg

图 8-18。

The installation is complete

操作系统现在已经安装好了,这是您第一次用它来启动机器。像往常一样,第一个屏幕是 Grub 屏幕,如图 8-20 所示。

A367684_1_En_8_Fig20_HTML.jpg

图 8-20。

The Linux Mint Grub screen

你可以在这里观察各种事物。首先,在顶部的第一行,你可以看到这里使用的 Grub 版本是一个原始的 Ubuntu 包,这是 Linux Mint 的人留下的一个小细节。此外,您可以看到,您可以选择引导至 Linux Mint(默认选项),也可以引导至 Windows 8 操作系统。如果您选择 Windows 8,它将照常启动,就像您没有对磁盘进行任何更改一样。最后,您应该注意到有两个选项来启动 Mint 第二个显示为“高级选项……”(见图 8-21 )。事实上,在几乎所有发行版中常见的两个条目是正常条目和恢复条目。我认为 Mint 开发者采用这种方法是为了让新手更容易使用。

A367684_1_En_8_Fig21_HTML.jpg

图 8-21。

The advanced options for Linux Mint

选择第一个选项,开始第一次引导您的新操作系统。登录界面如图 8-22 所示。然后你会看到 Linux Mint 的肉桂色桌面(图 8-23 )。与其他发行版一样,它向您显示了一个欢迎屏幕,提供了一些开始使用系统的可能性。恭喜你!您已经安装了新的 Linux 操作系统。

A367684_1_En_8_Fig23_HTML.jpg

图 8-23。

The Linux Mint 17.3 Cinnamon screen

A367684_1_En_8_Fig22_HTML.jpg

图 8-22。

Mint’s login screen

保持

根据其创建理念,Linux Mint 是易于维护的发行版之一。您可以从图形界面完成所有这些,这使得 Linux Mint 非常适合初学者。

管理应用程序

如果你想在 Linux Mint 中安装或删除应用程序,你有和 Ubuntu 一样的选择:你可以通过一个专用的图形应用程序,通过 Synaptic 工具,或者在终端中使用。deb 包(apt-get,aptitude,dpkg)。这里唯一的区别就是专用的图形 app 和 Ubuntu 的不一样。

软件管理器应用程序(图 8-24 )是一个简单、易用、直观的应用程序,与 Ubuntu 的同类应用程序一样,将应用程序按类别分组。但是一旦你开始使用它,你首先会注意到的是它的搜索和导航比它的 Ubuntu 版本快得多;其实它的 bug 更少,效果更好一点。Mint 的开发者用这个应用做了一件好事。

A367684_1_En_8_Fig24_HTML.jpg

图 8-24。

The Software Manager application

这个应用程序将帮助初学者以一种简单的方式管理他们的应用程序,而不必处理终端。

更新和升级

在 Mint 中,包更新和发行版升级是用同一个工具管理的:更新管理器(mintupdate),如图 8-25 所示。Linux Mint 有一种特殊的管理更新的方式;它并不遵循与 Ubuntu 相同的方式,尽管它基于 Ubuntu 发行版并使用相同的包和库。Mint 根据功能、稳定性或安全性将更新分为不同的级别。这不是一个受很多人欢迎的分类系统,因为他们认为内核更新默认更新是不安全的(因为他们可以破坏一些配置,如硬件驱动程序)。我个人认为这对 Linux 新手来说是件好事,可以让操作系统更加稳定,但这可能会带来安全风险。如果你不喜欢这个策略,你可以随时配置它来显示那些更新;这取决于你(你可以在图 8-26 中看到这一点)。此外,你甚至可以看到一个内核版本是否解决了一个特定的安全问题或者有一些倒退(图 8-27 ),以及一个特定的内核版本是否被推荐。我觉得对于新手来说这是一个比较好的管理事情的方法。

A367684_1_En_8_Fig27_HTML.jpg

图 8-27。

The kernels section of the Update Manager

A367684_1_En_8_Fig26_HTML.jpg

图 8-26。

The update levels of the Update Manager

A367684_1_En_8_Fig25_HTML.jpg

图 8-25。

The Update Manager application

更新管理器也可以处理发行版升级;当一个新的发行版可用时,你会在编辑菜单中看到一个升级发行版的新选项。如果一个初学者遵循 Linux Mint 的方式,不更新任何不安全的更新,这将是一个比 Ubuntu 常规升级更安全的升级(但永远记得先做好备份!).

利弊

下面的列表包含了一些我个人认为的 Linux Mint 发行版的利与弊。当然在这件事上总有讨论的余地,但是我已经尽可能的客观了。

赞成的意见

  • Linux Mint 是一个非常容易使用的发行版,推荐给初学者。
  • 它有自己的桌面环境 Cinnamon,比 Unity 和 Gnome Shell 本身更受欢迎。
  • 它基于一个可靠且受欢迎的发行版 Ubuntu。
  • 它提供社区驱动的开发,并遵循其社区建议的思想。
  • 它提供现成的多媒体支持。
  • 它关心设计和美学,让事情变得简单。
  • 这是一个非常稳定的发行版,基于 Ubuntu LTS 版本和“安全”更新。

骗局

  • 有些人不喜欢它的更新水平,这意味着一定的安全风险。
  • Linux Min 只专注于桌面(但有些人认为这是优势)。
  • 包装有点过时了。
  • 如果你只想要自由软件,这不是你的发行版。
  • Cinnamon 和 Mate 的桌面仍然不够完美,缺少一些功能。

摘要

有了 Linux Mint,你可以看到一个完全基于社区的发行版如何用很少的资源变得比它的基础发行版更受欢迎。使用不同的桌面环境或不同的更新/升级方法足以吸引用户从另一个发行版转移。在所有的操作系统中,总是有改进的空间,即使是最好的操作系统,感谢自由软件,你可以在 Linux 中做到这一点。如果你能在 Windows 10 或 OS X 上做同样的事情,你能想象会发生什么吗?

在下一章,你会看到另一种不同的方法:Mageia。

Footnotes 1

Popularity ranks based on DistroWatch (http://distrowatch.com)

九、Mageia

Mageia 是我在本书中选择分析的较新的 Linux 发行版之一,它是欧洲第三大流行的 Linux 发行版。Mageia 是旧发行版 Mandriva(以前的 Mandrake)的一个分支,Mandriva 现已停止发行,但它是有史以来第二著名的欧洲 Linux 发行版。Mandrake 本来是红帽的叉。它也受到了苏塞的启发,今天你仍然可以在《马吉亚》中找到它的回声。

历史

Mageia 是“魔法”的希腊语术语,它是对最初的 Mandrake 发行版的一种表示,该发行版以意大利裔美国魔术师 Leon Mandrake 的名字命名。Mageia 是一个由非营利组织 Mageia.org 支持的社区发行版。

玛吉娅出生在曼德拉的痛苦中。Mageia 是始于 1998 年 Mandrake 的伟大血统的继承人之一(与 PCLinuxOS 和其他人一起)。它在 2005 年与另一个老牌红帽分叉 Conectiva (1997)合并,最终更名为 Mandriva (Mandrake + Conectiva)。Mandriva/Mandrake 一直是一个公司支持的发行版,但是公司在财政上有困难。预见到它即将灭亡,Mandriva 背后的公司的一些开发者和一些其他社区成员决定分叉发行版;因此,Mageia 项目于 2010 年 9 月宣布。第一个版本于 2011 年 6 月发布。Mandriva 是在同一年发布的最后一个版本。

Mandriva/Mandrake 是一个法国发行版,它被商业化了,和其他伟大的欧洲发行版,OpenSUSE/SUSE,有着相似的发展。这绝非偶然。你可以在两个发行版中看到相似之处和影响。其实我看到了这些发行版是怎么进化的,但是连我都记不清每个方面是谁启发了谁。

哲学

嗯,事实是 Mageia 的主要目的是延续 Mandriva 的遗产,并在它停止的地方继续分发。Mageia/Mandriva 的主要目标之一是为所有用户创建一个愉快且易于使用的发行版。很长一段时间,这个发行版(和 SUSE 一起)是为那些想要友好发行版的新用户准备的。Mageia 将它的使命定义为为人们建造伟大的工具。

发行版选择标准

现在你已经了解了一些历史,让我们看看 Mageia 在第二章的选择标准中是如何排名的。

目的和环境

Mageia 是一个通用发行版,和 Mint 一样,只是它专注于桌面。Mageia 为此环境提供了一个独特的版本。

支持

老曼德拉草有一个很大的支撑;它甚至出版了一本手册(与 Mandriva Powerpack 一起提供),就像 SUSE 过去做的那样。但现在 Mageia 是一个基于社区的发行版,支持来自成员。它不像一个公司所能提供的支持那样全面。但是有很多好方法可以获得社区的支持:

用户友好性

Mageia(更确切地说,以前的 Mandriva)有着非常用户友好的名声。这种声望来自无处不在的控制中心(相当于 OpenSUSE 的 YaST ),在这里您可以配置几乎所有最重要的用户分布参数(从用户的角度来看)。但重要的是要知道,这种轻松并不是一个你可以客观衡量的绝对值,因为即使你可以从一个地方控制几乎任何事情,你仍然必须知道你在做什么。因此,对于一个习惯于 Linux 的用户来说,Mageia 或 OpenSUSE 可能看起来非常容易使用和友好,但是对于一个新手来说,这似乎很难。新手可能会更喜欢其他发行版,比如 Ubuntu、Mint 或 elementary OS。事实是,这种荣耀来自多年前,当时安装 Linux 不是一件容易的事情,对于那些害怕安装 Debian 或 Slackware 等更苛刻的软件的人来说,Mageia 是一个受欢迎的选择。但是 Ubuntu 的到来,改变了这一切;从那以后,Mageia/OpenSUSE 和类似的产品在新用户眼中的友好程度上又下降了一步(坦率地说,忽视 Mac OS X 在这方面的影响是愚蠢的)。

稳定性

Mageia 是一个合理的稳定分布。它遵循标准的发布模式,并试图每九个月发布一个新版本,然后是 18 个月的支持。

当这个发布周期计划在 2011 年宣布时,曾考虑过 LTS 版本,但从未实现。社区缺乏力量(维护人员和 QA 团队)来完成这项巨大的工作。这是一个完美的例子,一个发行版习惯于有一个公司在背后支持,但后来被各种社区“稀释”了,这些社区想保持速度和质量,但仍在努力恢复它过去的荣耀。这并不意味着 Mageia 不是一个质量合理的稳定发行版;这只是意味着维护一个 LTS 版本,或者几个不同的版本,是一个昂贵的任务,不是太多发行版可以负担得起的(特别是社区版)。

有一个开发版本叫做大锅,总是最新的。当然,它是固有的不稳定,它是针对 Mageia 包装。

硬件支持

在硬件支持方面,Mandriva 传统上被认为是一个好的发行版,它的继任者似乎会沿着这条路线继续下去。Mageia 提供了专有的驱动程序,它可以很好地检测硬件,所以我可以说它有很好的硬件支持。

美学

在这个发行版中,除了背景、颜色和标志之外,没有太多的美学关注。其余的都是默认的审美。

桌面环境

Mageia 支持各种桌面环境,其中八个正式来自发行版的 DVD ISO 镜像:KDE、Gnome、XCFE、Mate、Cinnamon、LXDE、LxQT 和 Enlightenment。Mageia/Mandriva 的传统名称是 KDE。

初始化系统

Mageia 使用 systemd 作为它的初始化系统。事实上,它是 2011 年的早期采用者之一。

包装管理系统

作为很久以前从 Red Hat 继承的遗产的一部分,Mageia 中使用的包管理系统是 RPM。有一个图形工具来管理软件包(rpmdrake)和几个命令行工具(urpmiurpmeurpmqurmpf),而不是一个独特的终端工具来完成所有的操作。

体系结构

它只支持两种主要架构,AMD/Intel 32 位和 64 位架构。

安全性/匿名性

Mageia 的安全性与其他通用发行版非常相似。默认情况下,防火墙处于启用状态,并且在安全工具(称为 MSEC)中默认选择“标准”级别。当然,就像几乎所有的 Linux 一样,你总是可以强化你的安装,但是 MSEC 非常有助于以一种简单的方式管理这个主题(或者用 grain)。MSEC 是由 Mandriva 开发的,默认支持 Apparmor 或 SELinux 等常用工具。

原则和道德

Mageia 的核心软件库只提供自由软件,但是你可以从“非自由”和“污染”的软件库中安装专有软件或混合软件(例如,使用专利和版权代码的软件)。因此,关于自由软件的妥协是以一种非常务实的方式解决的,就像在大多数发行版中一样。另一方面,Mageia 是第一个从 MySQL 转换到 MariaDB 以避开 Oracle 版权保护的发行版。

现场 CD

Mageia 有实时 ISO 图像,可以下载成 DVD 和 CD。唯一不方便的是 CD 图像只有英文版,你必须选择是要 KDE 还是 Gnome 桌面环境。

专业认证

没有专门针对 Mageia 的专业认证。

装置

到目前为止,本书中显示的所有发行版安装都是在具有传统 BIOS 的系统上进行的,但在过去几年中,新的计算机(主要是笔记本电脑)已经配备了传统的基本固件 UEFI 的现代“替代品”。一些 UEFI 固件有一个传统的 BIOS 兼容模式,你可以选择你想引导系统的模式。传统 BIOS 模式对那些仍然对 UEFI 感到不舒服的人很有用,因为尽管它比 BIOS 好,但也更复杂。但是对于安装不支持 UEFI 的发行版是很有用的。本书之前展示的所有发行版都支持在 UEFI 模式下安装,但是由于安装过程也更加复杂,在一些发行版中这可能更加困难或麻烦(对于所有之前的发行版来说,这并不难做到),并且一些用户更喜欢在 BIOS 模式下引导。在 Mageia 中,遵循其简化事情的传统,在 UEFI 模式下安装发行版并不比在 BIOS 模式下难多少。

首先,去 Mageia 网站( www.mageia.org/en/downloads )下载 ISO 镜像(见图 9-1 )。

A367684_1_En_9_Fig1_HTML.jpg

图 9-1。

The Mageia downloads page

与许多其他发行版一样,您必须选择您需要的映像类型。在这种情况下,您可以选择标准映像、实时映像或网络映像。选择标准的(Mageia 称之为“经典”),你会有三个新的选项可供选择,如图 9-2 所示。

A367684_1_En_9_Fig2_HTML.jpg

图 9-2。

The architecture options for the ISO image

这些选项是可以安装映像的不同体系结构。它们中的每一个都有一个 ISO 映像,其他的可以安装在两种体系结构中。在这种情况下,请选择 64 位架构。这将导致一个新的双重选项,以选择下载图像的方式,通过 BitTorrent 或标准 HTTP 链接(见图 9-3 )。

A367684_1_En_9_Fig3_HTML.jpg

图 9-3。

The available protocols to download the ISO image

一旦选择了其中一种方式并下载了映像,就可以开始安装了。当你第一次启动时,你会看到在 BIOS 系统和 UEFI 系统中安装发行版的第一个区别。图 9-4 在左侧显示了 BIOS 系统的启动屏幕,在右侧显示了 UEFI 系统的类似屏幕。

A367684_1_En_9_Fig4_HTML.jpg

图 9-4。

The boot screen for both firmware types

正如你所看到的,菜单是不同的,但它们基本上有相同的安装 Mageia 的选项。其他选项对于此任务并不重要。BIOS 模式中可用的选项之一是硬件检测工具;这在你之前看到的任何发行版的引导菜单中都没有,但在过去的许多发行版中却很常见。这是一个对解决硬件问题非常有用的工具,您可以在图 9-5 中查看它。

A367684_1_En_9_Fig5_HTML.jpg

图 9-5。

The Hardware Detection Tool

在 UEFI 模式的菜单中,选择“Start Mageia install from …”选项(或等待几秒钟让它自动启动)进入下一步。从这里开始,两种情况下的安装都是相似的,所以我只展示一个屏幕。Mageia 安装程序中出现的第一个屏幕如图 9-6 所示,这是选择安装过程和/或发行版中使用的语言的常用选项。一个特点是,你可以在这个屏幕上选择使用多种语言(通过点击“多种语言”按钮),然后当你使用 Mageia 时,你可以在它们之间切换。

A367684_1_En_9_Fig6_HTML.jpg

图 9-6。

The language selection screen in the Mageia installer

下一步(图 9-7 )是您必须接受许可协议以便继续安装过程的一步(人们通常不会阅读此内容,但我建议您这样做;了解一下这个许可证是如何工作的总是好的,然后你可以把它与其他操作系统的 EULA 进行比较。

A367684_1_En_9_Fig7_HTML.jpg

图 9-7。

The License Agreement screen

如果您接受许可,您可以继续进入下一个屏幕(图 9-8 ,在这里您可以选择您的键盘布局。

A367684_1_En_9_Fig8_HTML.jpg

图 9-8。

Keyboard layout selection

和以前的发行版一样,默认情况下应该选择正确的键盘布局;如果没有,请选择正确的选项,然后按“下一步”按钮。下一步总是最关键的一步;您可以在这里选择如何对磁盘驱动器进行分区。如图 9-9 所示,该屏幕显示了所选磁盘驱动器的当前状态,并为您提供了两个分区选项:使用磁盘上可用空间的自动分区或通过自定义分区。

A367684_1_En_9_Fig9_HTML.jpg

图 9-9。

The partitioning tool

让我们选择自定义分区选项。这也将显示 BIOS 和 UEFI 安装之间微妙但重要的差异。因此,选择“自定义磁盘分区”并按下一步按钮。

图 9-10 显示了该自定义选项的工作原理。有两个选项可供选择,一个是称为“自动分配”的自动化选项(与之前相同,但现在在工具的这一部分),另一个是通过界面手动对磁盘进行分区(通过单击分区或空闲空间)。此外,您可以在普通模式和专家模式之间进行选择,在这两种模式下会显示更多信息,并且有更多选项可供配置。为了显示 BIOS/UEFI 安装之间的差异,最好的方法是选择 automated partition 选项,查看在每种情况下如何创建分区方案。首先,让我们切换到专家模式来显示更多信息。接下来,通过点击“自动分配按钮”创建预定义的分区方案如图 9-11 所示,一个新的对话框出现,询问您想要哪种类型的分区(该对话框仅在专家模式下出现)。

A367684_1_En_9_Fig11_HTML.jpg

图 9-11。

Type of partition to choose

A367684_1_En_9_Fig10_HTML.jpg

图 9-10。

The custom partitioning option

选择“简单”选项,然后单击“确定”按钮。创建了一个新的分区方案,其中在书中第一次出现了一个新的分区,它被分配在磁盘的开头,被“着色”为 Windows 分区(蓝色),并被安装在/boot/EFI '下。该分区存储引导系统所需的系统文件,并且是 DOS 分区类型,这就是它显示为 Windows 分区的原因。剩下的分区都是常用的(//homeswap`)。您可以在图 9-12 中看到结果,并将其与图 9-13 进行比较,图中显示了在 BIOS 系统中执行相同的操作。

A367684_1_En_9_Fig13_HTML.jpg

图 9-13。

The default partitions in a BIOS system

A367684_1_En_9_Fig12_HTML.jpg

图 9-12。

The default partitions in a UEFI system

现在您已经创建了分区,您可以按下 Done 按钮。在对磁盘进行更改的常见警告之后,分区过程完成,您进入下一步。这一步是你在 OpenSUSE 等其他发行版中看到的,会询问你是否有另一个介质可以在安装中使用(如图 9-14 所示)。

A367684_1_En_9_Fig14_HTML.jpg

图 9-14。

Is there another installation medium available?

在以下屏幕中,您可以选择想要安装的软件包(图 9-15 )。您可以坚持使用核心软件包,也可以在安装中添加非自由软件包(例如私有固件)。这个屏幕对我来说似乎有点混乱,因为有些人可能会把本地存储库和在线存储库混淆起来,从而产生错误的想法。

A367684_1_En_9_Fig15_HTML.jpg

图 9-15。

Select local repositories

接下来,您可以选择您想要在 Linux 安装中使用的桌面环境(图 9-16 )。你可以选择其中一个主要的,KDE 或 Gnome 或另一个替代品(肉桂,LXDE,LxQT,启示,伴侣,和 XFCE)。默认的 DE 是 KDE,因为它是 Mandriva 的传统 DE。所以让我们选择它并继续安装过程。将系统文件复制到磁盘,如图 9-17 所示。

A367684_1_En_9_Fig17_HTML.jpg

图 9-17。

Copy the files to the disk

A367684_1_En_9_Fig16_HTML.jpg

图 9-16。

Select the desktop environment

当 Mageia 安装程序完成任务时,您必须引入根目录和用户信息。这里没有你没见过的东西。正如它应该的那样,Mageia 将向您显示警告,该密码无法抵御基本攻击,这意味着它不是一个强密码(图 9-18 )。

A367684_1_En_9_Fig18_HTML.jpg

图 9-18。

The user information

接下来是一个奇怪的请求:安装工具要求您从一组选项中选择一个显示器(图 9-19 )。大多数发行版会自动检测这个设置,所以现在很少看到这个请求。我怀疑这与虚拟机上的安装有关;在真实系统上安装这个发行版可能会跳过这一步。无论哪种方式,如果你看到这个屏幕,选择一个即插即用一个(或一个通用的),如果你不知道你有确切的显示器。

A367684_1_En_9_Fig19_HTML.jpg

图 9-19。

Monitor selection

之后,安装程序会向您显示安装概要,包括系统和设置的详细信息;您可以在这里进行修改(图 9-20 )。摘要分为四个部分:系统、硬件、网络&互联网和安全。有一些高级选项只能在这里更改(当然,您可以在安装后随时更改系统配置)。如果你不知道或不理解每个选项,就让它保持原样。

A367684_1_En_9_Fig20_HTML.jpg

图 9-20。

The installation summary

接下来的步骤是决定你是否想要使用在线存储库来获得任何可能存在的软件包更新(图 9-21 )。

A367684_1_En_9_Fig21_HTML.jpg

图 9-21。

Use the online repositories to install the last security updates

如果您选择使用在线资料库,它将开始下载所有安全更新。下载所有安全更新后,屏幕会要求您确认是否要下载所有更新的软件包(图 9-22 )。

A367684_1_En_9_Fig22_HTML.jpg

图 9-22。

Confirmation screen to install all of the packages that have an update

会出现一些弹出对话框,要求您允许安装这些软件包。如果您允许,安装将在所有软件包安装到磁盘驱动器后结束。当您看到图 9-23 所示的屏幕时,您就知道安装完成了。

A367684_1_En_9_Fig23_HTML.jpg

图 9-23。

It’s done. You have installed Mageia

现在是时候重启你的系统,第一次享受你的 Mageia Linux 了。启动系统时看到的第一个屏幕是传统 BIOS 和现代 UEFI 之间的最后一个区别。它们非常相似(都有引导加载程序 Grub ),但是在呈现方式上有细微的区别。图 9-24 显示了 BIOS Grub,图 9-25 显示了 UEFI Grub。

A367684_1_En_9_Fig25_HTML.jpg

图 9-25。

The Grub screen in an UEFI system

A367684_1_En_9_Fig24_HTML.jpg

图 9-24。

The Grub screen in a BIOS system

登录界面是对你的新 Mageia 发行版的欢迎。输入您的密码并进入桌面。这个登录屏幕有一个更老的设计(图 9-26 ),因为它仍然使用 KDE 4。

A367684_1_En_9_Fig26_HTML.jpg

图 9-26。

The login screen for KDE

桌面是典型的 KDE 4,带有 Mageia 自定义背景(图 9-27 )。几秒钟后,屏幕中央出现一个窗口,欢迎您加入分发(图 9-28);你在其他发行版中看到过类似的东西。

A367684_1_En_9_Fig28_HTML.jpg

图 9-28。

The welcome window

A367684_1_En_9_Fig27_HTML.jpg

图 9-27。

The KDE Mageia desktop

像 OpenSUSE 一样,一个与 Mageia 非常相似的发行版,它检测到正在 VirtualBox 机器中安装,并向您显示一个警告,要求您将来宾附件更新到最新版本(图 9-29 )。这是一个很好的接触。

A367684_1_En_9_Fig29_HTML.jpg

图 9-29。

Mageia detects VirtualBox

正如你所看到的,在 BIOS 系统中安装发行版和在 UEFI 系统中没有太大的区别,这也是为什么我选择传统的 BIOS 系统来安装所有以前的发行版。在一些发行版中,这些差异更大,但这些通常是高级的。

保持

Mageia 中的维护任务以类似于 OpenSUSE 的方式完成,您可以从 GUI 界面完成几乎所有的任务,而不需要使用命令行。发行版升级是个例外。

更新和管理应用程序

在 Mageia 中,最明显的途径是到控制中心执行基本的管理任务。这也是处理升级和管理应用的理想方式(图 9-30 )。

A367684_1_En_9_Fig30_HTML.jpg

图 9-30。

The Software Management section of the Mageia Control Center

在那里,您可以管理或更新您的应用程序。这两个选项将分别打开一个 GUI 程序(如果你愿意,你可以直接调用它),rpmdrake 和 drakrpm-update(图 9-31 )。这些工具只是 urpmi 工具的前端,您可以选择从控制台使用它,这是许多用户更喜欢的。

A367684_1_En_9_Fig31_HTML.jpg

图 9-31。

The Software Management tool (rmpdrake)

与其他发行版一样,当有新的更新可用时,您会收到警告,并且您可以从这里使用相同的对话框来执行任务。

升级

升级总是发行版中最敏感的任务之一;有些发行版没有一个合适的方法,而其他发行版有一个复杂的方法。Mageia 有两种选择:

  • 当有新版本时,请按照出现的说明进行操作。这些包将从互联网仓库中获取。

  • Use the ISO image of the new release and select the upgrade option from the installation program. You can use the online repositories to update all the packages not included by default in the ISO image (and this is recommended). You can take a look at the upgrade option in the installation menu in Figure 9-32.

    A367684_1_En_9_Fig32_HTML.jpg

    图 9-32。

    An upgrade option is available on the installation program

不明显的方法是使用命令行和 urpmi 工具来升级发行版。这种方式最适合高级用户,但也是升级发行版最可靠的方式。

利弊

以下是我个人认为 Mageia 发行版的利与弊。这件事总有讨论的余地,但我已经尽可能客观了。

赞成的意见

  • Mageia 控制中心使得调整和管理发行版变得更加容易。
  • Mageia 使用 rpm 包格式。
  • 它有一个定期发布计划。
  • 这是一个社区驱动的发行版。
  • 这是一个稳定的发行版,但有点过时。
  • 它有着伟大的遗产,而且似乎延续了这一传统。
  • 它是一个原始发行版,而不是一个衍生品(虽然 Mandrake 是红帽的一个分支)。
  • 它提供了合理的安全性,并且很容易再加强一点。

骗局

  • 它只有一个官方桌面版本。
  • 与其他发行版相比,官方软件库中的可用软件包较少。
  • 这不是一个纯粹的免费软件发行版。
  • 对审美照顾不够。
  • 它没有商业支持。
  • 仅支持两种架构。
  • 虽然它是一个非常受欢迎的发行版(大部分在欧洲),但与其他优秀的发行版相比,它的社区并不是很大。

摘要

在这一章中,你看到了自由软件是 Linux 发行版生存的基础的完美例子。Mageia 是一个被社区拯救的废弃项目。它开始是曼德拉草,然后是曼德拉草,最后以 Mageia 的身份重新出现。社区也在不断改进发行版,着眼于过去来维护它的伟大遗产,另一方面着眼于未来来改进自己和 Linux 的未来。

在下一章,我将分析一个侧重于易用性和美观性的发行版,初级操作系统。

十、ElementaryOS

elementary OS 是我在本书中分析的最新发行版。它只有五年的历史,至今只发布了三个主要版本。它也有一个不寻常的起源,背后是一个非常小的社区,它是 Ubuntu 的衍生品。尽管有这些不利因素,elementary OS 已经成为一个非常受欢迎的发行版,也是新一代 Linux 发行版(以及 Solus、Cub、deepin 和其他发行版)的最知名代表,这些发行版希望在 Linux 中建立一个新的友好和设计水平,就像 Ubuntu 多年前所做的那样。

这些发行版并不假装是万能的发行版。相反,elementary OS 和其他操作系统侧重于具有简单需求的用户,如浏览网络和管理一些文档、视频和照片。极简主义、伟大的设计和易用性是新一代 Linux 发行版的支柱。(是的,如果你想知道,“初级”总是以小写字母“e”开头,即使是在句子的开头。)

历史

一开始,elementary OS 不是 Linux 发行版。事实上,它甚至不是一个软件项目,而是一个设计项目。elementary OS 最初是一个 Gnome 2 图标集,然后是一个 Gnome 主题,旨在与 Ubuntu 一起使用。丹尼尔·佛雷在 2009 年创作了它,这个主题很快变得非常流行。由于这个恶名,Foré甚至以设计师的身份在 Canonical(Ubuntu 背后的公司)工作了将近两年。在离开 Ubuntu 之前,他开始了一个新项目,这个项目可以实现他对 Linux 发行版(实际上是一个操作系统)应该是什么样的愿景:初级项目。

这个基础项目最初是作为一个理想桌面环境的模型/概念开始的。然后一些开发人员开发了一些东西,像修改过的 Nautilus(Gnome 2 文件管理器),以及 Dexter 和 Postler(分别是联系人管理器和电子邮件客户端)。然后他们构建了自己的桌面环境 Pantheon,最后是自己的发行版 elementary OS。

基于 Ubuntu 10.10 的 elementary OS 的第一个版本是 2011 年 3 月的 Jupiter。露娜于 2013 年 8 月上映,芙蕾雅于 2015 年 4 月上映。木星发布了定制的 Gnome 桌面;Luna 是第一个以 Pantheon 为桌面环境的版本。

哲学

基本的操作系统理念包含在它自己的名字中。简单、容易、极简、美丽、基本和不复杂是定义这个项目的目标和愿景的词语。开发人员表示,他们希望成为 MS Windows 和 OS X 的美丽而直观的替代品。更现实的描述是,他们是 Chrome OS 或其他将 Android 引入 PC 的项目(如 Remix OS)的替代品。简而言之,如果你曾经认为平板电脑可以满足你的所有需求,并且你想放弃笔记本电脑/台式机而选择平板电脑,这是一个很好的线索,告诉你可以从初级操作系统中得到什么(我不是说初级操作系统可以在平板电脑上工作,因为它不能;我说的是你希望在平板电脑上执行的任务)。当然,作为一个 Linux 发行版,你可以超越基本的功能,但代价是打破所有应用程序的简单性/设计一致性。

为了保持设计的一致性,开发者使用 Ubuntu 作为基础,然后添加他们自己的桌面环境和一些简约的应用程序来满足一大群用户的简单需求。开箱即用的应用程序包括邮件客户端、日历、多媒体管理(照片、音乐和视频)、文本编辑器、浏览互联网的方式和一些系统管理应用程序(文件、终端和设置)。基本上,他们用一个非常简单友好的替代品取代了通常的 DE 和 apps。同样,类似的选择是 Chrome OS,它使用云和更简单的 Google apps 来完成任务;然而,初级操作系统使用传统的本地存储和本地应用程序方法。

我认为初级操作系统在未来可能会提供非常有趣的东西,即使它只是作为其他项目的灵感。但是,与此同时,它也有一些障碍需要克服。在我看来,它只能向一个方向发展,即增加更多内置应用,因为根据它自己的定义,如果它在现有的基础上增加更多功能,它将打破自己的原则。

发行版选择标准

让我们看看这个特别的发行版在第二章的决策点上表现如何。

目的和环境

初级操作系统只专注于桌面;它只有桌面版。

支持

初级操作系统背后的社区非常小。目前约有 30 名正规开发者。所以你不能期望得到和大公司或社区发行版一样的支持。然而,初级操作系统从各种来源获得了相当好的支持:

用户友好性

在这个主题上,初级操作系统项目的意图是非常清楚的。我们开发初级操作系统的主要动机一直是尽可能打造绝对最佳的计算体验。—丹尼尔·福尔,2014 年 1 月接受 LME Linux 采访

他们成功了吗?嗯,很多人觉得 elementary OS 是最好的 Linux 发行版;其他人认为它正在走向伟大;还有一些人认为这仅仅是 OS X 的拙劣翻版;还有一些人认为有比设计和简单更重要的东西。我将计算机用户分为两大类:内容创造者和内容消费者。对于第一组人来说,显然初级操作系统没什么可提供的,即使他们中的一些人非常喜欢它的设计和视觉。大多数初级操作系统爱好者属于第二类,他们中的许多人只需要内置的应用程序就可以满足他们的所有需求,而其他人只需要再安装几个。

正是在这最后一点上,初级操作系统的主要弱点出现了。如果您只需要使用内置的应用程序,那么您就有了一个易于安装的操作系统,它可以满足您的需要。这是非常基本和友好的。但一旦你安装了更多的应用,你可能会保持万神殿的主题,但除此之外,一致性就没有了。由于与桌面环境的不良集成,您甚至可能会遇到一些基本问题。事实上,我在 Blender 这样的应用程序和另一个 KDE 应用程序中看到了这一点。

但是 elementary OS 是一个非常友好的 Linux 发行版吗?当然,如果你按计划使用它,并且你不需要更多的东西。现实情况是,在这样一个小项目中很难获得一致性,因为开放和自由软件的本质以及缺乏设计、GUI 开发和用户体验的通用指南。即使对于大型的 Linux 发行版来说也很困难。事实上,即使是封闭生态系统的苹果公司,也存在第三方应用程序不遵守他们的指导方针的问题。同样,Android 在应用程序设计者少量采用材料设计方面也存在同样的问题。

话虽如此,一小群人如何在如此少的资源下实现如此高水平的易用性和卓越性是非常了不起的。想象一下他们可以用像 Canonical 这样的公司的资源做什么。

稳定性

在第二个版本 Luna 之后,elementary OS 转而基于 Ubuntu 的 LTS 版本。因此,它遵循一个常规的发布方案,但不是一个严格的时间表;新版本在准备好的时候就会出现。版本号方案以 0.1 开始,每个主要版本将在该数字上再加 0.1,如下所示:

  • 0.1 Jupiter,基于 Ubuntu 10.10
  • 0.2 Luna,基于 LTS Ubuntu 12.04
  • 0.3 芙蕾雅,基于 LTS 的 Ubuntu 14.04

0.4 Loki(基于 Ubuntu 16.04 LTS)有望成为下一个基础 OS 版本。芙蕾雅的两个次要版本 3.1 和 3.2 修复了一些错误,并引入了新功能和更新。

所以,因为它是基于 LTS 版本的 Ubuntu,elementary OS 应该有点过时,但却坚如磐石,对吗?实际上,由于 elementary OS 背后的小团队,总会有一些小错误和小故障,这使得发行版有时有点不稳定,有时甚至有点烦人。

硬件支持

硬件支持本质上和它现在使用的 Ubuntu 版本是一样的,所以这是很好的支持。

美学

由于这个项目的目标是极简和美丽的设计,每一个小东西的审美都得到了很好的打磨。使用他们自己的内置应用程序有助于确保整个环境的设计一致性(但如果您安装了第三方应用程序,则不会如此)。当你启动发行版时,你会注意到简洁的设计。

一些批评者说,elementary OS 仅仅是 OS X 设计的翻版,其灵感是不可否认的。调色板、图标外观和 dock 都参考了 OS X(图 10-1 )。但这并不是什么新鲜事;有很多主题、图标和发行版想要复制其他操作系统的外观和感觉,比如 OS X 和 Windows。事实上,你可以调整几乎任何发行版的桌面环境,直到你看起来像那些操作系统中的一个。无论如何,你都不能否认为了获得专业级的设计而在发行版中付出的努力,以及为了获得有凝聚力的设计而开发新应用的进一步步骤。

A367684_1_En_10_Fig1_HTML.jpg

图 10-1。

The elementary OS dock (Plank)

初级的 OS 设计是不是最好的,最美的?好吧,我不想在这里介绍一个观点。我想向您展示一个基本工具——文件管理器——的设计在不同发行版之间是如何变化的。你可以自己判断设计对你有多重要,哪些发行版最吸引眼球。要做到这一点,看看三个处理美学的发行版(图 10-2 、 10-3 和 10-4 )和另一个不处理美学的发行版(图 10-5 )。你可以看到他们中的一些人如何投射阴影,而另一些人却没有;这是一个桌面环境特性,但也是一个设计决策。很明显,除了味道之外,前三个比最后一个设计得更好。但是前三者之间,哪一个最好呢?挺主观的。

A367684_1_En_10_Fig5_HTML.jpg

图 10-5。

The Debian file manager on a LXDE DE

A367684_1_En_10_Fig4_HTML.jpg

图 10-4。

The Linux Mint file manager on a Cinnamon DE

A367684_1_En_10_Fig3_HTML.jpg

图 10-3。

The Ubuntu file manager on a Unity DE

A367684_1_En_10_Fig2_HTML.jpg

图 10-2。

The elementary OS file manager on a Pantheon DE

桌面环境

初级操作系统使用自己的桌面环境 Pantheon。它使用 GTK 3 工具包(最初来自 Gnome ),用 Vala 和 c 编程。虽然这个 DE 是由初级操作系统团队开发的,但你可以在其他发行版上非正式地安装它,如 Arch Linux 或 Ubuntu。

初始化系统

因为 elementary OS 基于 Ubuntu,所以它使用相同的 init 系统,但是因为当前的芙蕾雅版本基于旧的 Ubuntu 版本 14.04,所以它仍然使用 sysv init 系统。这将在下一个版本 Loki 后改变,该版本将基于 Ubuntu 16.04 LTS,因此将使用 systemd。

包装管理系统

因为它是基于 Ubuntu 的,elementary OS 不仅使用相同的包管理系统,还使用 Ubuntu 库和软件管理应用程序。事实上,elementary OS 的软件是通过托管在 Launchpad(来自 Canonical)的 PPAs(个人包存档)获得和更新的。

体系结构

基本操作系统仅支持英特尔和 AMD 32/64 位架构。

安全性/匿名性

安全性方面,elementary OS 基于 Ubuntu,应该和 Ubuntu 持平。至于匿名,elementary OS 项目声称,它不做广告交易,也不收集任何敏感的个人数据。

原则和道德

此外,原则和伦理与 Ubuntu 相似,因为 elementary OS 使用 Ubuntu 的存储库。

现场 CD

初级操作系统的 ISO 映像也可以作为实况 DVD。

专业认证

很明显,像这样非常小的项目,是没有专业认证可用的。

装置

安装 elementary OS 非常容易,因为它是基于 Ubuntu 的,所以像 Mint 一样,它使用相同的安装程序。因为我已经详细介绍了 Ubuntu 和 Mint 的安装,请参考那些章节。在这里,我将只提及您将遇到的主要差异。

和往常一样,你应该去初级操作系统网站 https://elementary.io 下载 ISO 镜像。在图 10-6 中,可以看到好像要付费才能下载;事实上,按钮上写着“购买初级操作系统”这仅仅是建议你捐款来支持这个项目的一种方式,但是你可以输入 0 美元来下载它。这在当时是一个有争议的步骤,但现实是 Ubuntu 在没有太多噪音的情况下做了类似的事情。因此,选择一个预定义的数量或引入一个自定义数量,然后单击“购买初级操作系统”按钮。下一个窗口要求您选择想要下载的版本,32 位或 64 位(图 10-7 )。我推荐选择 64 位版本。

A367684_1_En_10_Fig7_HTML.jpg

图 10-7。

Choosing the elementary OS version to download

A367684_1_En_10_Fig6_HTML.jpg

图 10-6。

The elementary OS site where you can download the OS

然后你必须安装发行版,它和 Ubuntu 一模一样,但是是灰色的。当你第一次启动系统,并登录后,你会看到如图 10-8 所示的桌面。这些是您在安装初级操作系统时会遇到的唯一不同之处。

A367684_1_En_10_Fig8_HTML.jpg

图 10-8。

The elementary OS desktop

您可以在 https://elementary.io/docs/installation 了解更多关于基础操作系统安装的信息。

保持

出于显而易见的原因,维护初级操作系统类似于维护 Ubuntu。

更新和管理应用程序

目前,初级操作系统使用与软件中心 Ubuntu 相同的应用程序来执行更新任务。一个用于相同目的的新应用程序 AppCenter 正在开发中,它可能会成为下一个版本 0.4 Loki 的默认应用程序。

升级

没有预定义或简单的方法来升级基本操作系统。甚至开发者也建议你进行全新安装。

利弊

以下是我个人认为基本操作系统发行版的一些优点和缺点。这件事总有讨论的余地,但我会尽最大努力做到尽可能客观。

赞成的意见

  • 这是最容易使用的方法之一。
  • 它有一个精致,现代,一致的设计。
  • 因为 Ubuntu 是它的基础系统,所以你可以从它的优势中获益。
  • 内置的应用程序简单、直观、轻便、快速。
  • 适合要求不高或者有计算机经验的用户。
  • 对于来自其他操作系统的用户来说,这是一个良好的开端。

骗局

  • 从技术上来说,它是一个不同的桌面环境和其他默认应用程序的 Ubuntu。
  • 由于背后的小团队,每次新版本发布时发现几个错误并不罕见,这些错误通常通过小更新解决。
  • 内置的应用程序过于简单,无法执行任何半专业的任务。
  • 你不能指望第三方应用程序有同样的纯粹设计和简单性。

摘要

在这一章中,你看到了 Linux 发行版中的一个新范例,这个发行版可能对那些用眼睛选择的人和那些想要简单东西的人有吸引力。初级操作系统基本上都是关于设计和简单性。你不会因为技术实力而选择这个发行版。它涵盖了一个利基市场,基于它的受欢迎程度,它似乎做得相当好。

在下一章,我将讨论另一个发行版,它涵盖了另一个领域,高级用户和想要一个非常可定制的系统的用户:Arch Linux。

十一、Arch Linux

Arch Linux 是这里介绍的第一个面向高级用户的发行版,也是第一个纯滚动发行版。它也不是用户友好的,但这并没有阻止它变得非常受欢迎。也许它的成功在于它的简单性,因为 Arch 只给了你一个非常基本的基础,你可以在这个基础上构建你需要或想要的 Linux。它出名的另一个关键是它吸引了那些总是想拥有任何软件最新版本的用户。但是,如果没有令人印象深刻的文档及其背后的巨大社区的支持,这一切都是不可能的。

历史

2001 年,一位名叫 Judd Vinet 的加拿大程序员受 CRUX 和 BSD Unix 等其他软件的简单性的启发,开始开发一个新的 Linux 发行版。他喜欢这种简单性带来的内在优雅,但他非常不喜欢这些选项中缺乏包管理,所以他也基于相同的原则开发了一个新的包管理器 pacman。他在 2002 年 3 月 11 日发布了这个新发行版的第一个版本,Arch Linux 0.1 (Homer)。 1

Judd Vinet 在 2007 年末将发行版的主要开发者和领导者的角色移交给了美国程序员 Aaron Griffin,他至今仍在掌舵。

多年来,社区对 Arch Linux 的接受是逐渐的,稳步增长的。即使在今天,与 Ubuntu 或 Debian 等发行版相比,它的安装规模仍然适中。

哲学

极简主义、简单性和代码优雅(KISS 原则)是 Arch Linux 开发的核心指导方针。拱门哲学,通常称为拱门方式,定义如下:

  • 简单:对软件没有不必要的添加或修改。这些包几乎和他们最初的开发者发布的一样;只有在运行发行版时,才进行必要的(和最小的)修改。
  • 现代性:提供软件的最新稳定版本和 Linux 中可用的最新特性。成为最前沿的发行版。
  • 实用主义:Arch 是一个基于事实和需求的发行版,而不是意识形态的发行版。这种方法跨越了软件许可的开发决策;你可以自由选择自由软件和专有软件。
  • 用户中心性:Arch Linux 并不试图成为每个人的一切;它试图满足其贡献者和社区的需求。它提倡一种 DIY(自己动手)的态度。
  • 多功能性:Arch 提供了一个非常基本的命令行系统。您可以安装和设置您想要的任何任务和需求。

Note

KISS(保持简单愚蠢)原则指出,如果简单是其设计的关键目标,任何系统都是最好的。要避免不必要的复杂性。这是一个在工程和计算机科学中广泛使用的原则,它是 UNIX 操作系统设计等伟大成就的背后,因此也是 Linux 的背后。

发行版选择标准

现在你已经了解了一些历史,让我们看看 Arch Linux 在第二章中概述的选择标准上是如何排名的。

目的和环境

Arch Linux 是一个通用发行版。其实很难有比这个发行版更通用的了。因为没有什么是预定义的,所以您可以构建您想要的系统,甚至是面向任务的系统(这证明了 Arch Linux 是一个通用的系统)。它提供一个版本作为一个 ISO 映像。

支持

作为一个社区发行版,它的支持显然没有公司支持的那么专业和广泛。此外,它的哲学是期望用户解决他们自己的问题。所以你可能会认为社区支持会很少而且质量很差。但矛盾的是,Arch Linux 拥有所有发行版中最开放、最友好、最有帮助的社区之一,而且它可能拥有最好的文档(由社区自己维护)。众所周知,许多其他发行版的用户使用 Arch Wiki 来回答关于他们发行版的问题。也许文档质量的原因是因为在 wiki 上写下一个主题比在其他渠道多次回答相同的问题要好。每个人都希望你在问任何问题之前先查阅文件。

您可以通过以下渠道获得 Arch 社区的支持:

用户友好性

如前所述,Arch Linux 哲学并不强调用户友好性。典型的 Linux Arch 用户是那些拥有高级知识或者愿意自己先阅读文档来完成所有工作的人(修补者)。

我不建议初学者使用这个发行版。然而,许多人被滚动发布方案所吸引,厌倦了升级他们的用户友好的发行版。由于文档的非凡质量,他们很想测试这个发行版,而且他们中的大部分仍然是 Linux 的忠实用户。还有一类用户是想多了解 Linux 本身,用一个像这样的低级发行版可以教会你很多东西。当然,如果你讨厌命令行,就避开这个发行版。

稳定性

Arch Linux 是最不稳定的。它遵循一个滚动发布方案,所以从内核到其余的包,你总是拥有软件的最新版本。这样你永远不需要升级你的发行版;你只需安装一次 Arch Linux,你只需要定期更新以保持最新。Arch Linux 每月更新它的 ISO 映像,但是如果出现严重问题,你只需要重新安装。

你可以将你的压力和不稳定性调整到一个更合理的水平,或者只是停留在出血的边缘。您可以通过选择要启用的存储库来实现这一点。如果您启用了测试库,您将总是拥有最新和最不稳定的版本;如果你不这样做,你会有一个合理稳定的系统,给定的背景。例如,如果您不使用测试库,您可能会经历几个月的延迟才能获得最新版本的内核。此外,滚动发布方案的一个优点是,如果一个版本有一个 bug,而这个 bug 在下一个版本中被解决了,那么几乎在它的作者发布的时候,您的系统中就有了可用的解决方案。在标准的发布方案中,可能需要数年时间来修复。如果想要更稳定,也可以安装linux-lts内核,这是一个更稳定的内核,不会频繁升级。

那么一个 Arch Linux 系统能有多可靠呢?嗯,看情况。首先,除非您真的知道自己在做什么,否则不应该在生产服务器中使用 Arch Linux。否则,有很多程序员、系统管理员和其他 IT 专业人员在他们的主计算机上使用 Arch Linux 多年来都没有问题。这完全取决于你如何管理它和你的知识水平。我们举个例子:我。我已经在几台机器上使用 Arch Linux 好几年了。最老的是一台使用了四年的台式机,和它安装 Linux 的时间一样长。我不需要重新安装任何一个。但是我用了最简单的设置。我不用桌面环境,只用窗口管理器(牛逼的 WM)。我没有专用显卡;我使用集成在处理器中的那个。我还禁用了测试库。我总是每天更新软件包。结果,我在这些机器上只遇到过一两个恼人的问题,而且在几个小时或更短的时间内就很容易解决了。部分秘密是桌面管理器和硬件驱动程序(尤其是图形驱动程序)是几乎所有 Linux 发行版中最麻烦的包。如果你去掉等式中的这些部分,你在统计上的问题会更少。

硬件支持

这个发行版中的硬件支持依赖于存储库中可用的内核和驱动程序。此外,您可以使用 ABS 系统和 AUR 库来查找或构建额外的驱动程序。和这个发行版的其他方面一样,这个主题很大程度上依赖于用户和他的学习能力或意愿。

美学

很明显,在这样一个非常小的发行版中,你要对你构建的东西负责,没有关注美学。

桌面环境

在这个发行版中没有预定义的东西,这包括桌面环境。你想要一个只有命令行的发行版吗?就是这里。您想安装传统的桌面环境吗?你可以这样做,从八个官方支持的(Gnome、KDE 等离子、Cinnamon、MATE、LXDE、LXQt、Enlightenment 和 Xfce)或大约十五个非官方的(包括 Unity、Pantheon、Deepin 等)中选择。).您想安装窗口管理器吗?你可以这样做,从大约六十种不同的选择。你甚至可以选择 windows 服务器,要么 Xorg,要么 Wayland。基本上有很多可能性,所以你只需要选择一个(或者多个,如果你想的话)并使用它。

初始化系统

Arch Linux 在 2012 年 10 月采用 systemd 作为默认的 init 系统。

包装管理系统

Arch Linux 使用它自己的包管理系统 pacman,这个名字由用于管理包的命令行工具共享。它不像 dpkg 或 rpm 那样受欢迎(它主要被它的衍生产品使用),但是它作为一个简单而可靠的包管理器享有很高的声誉。pacman 包的扩展名为.pkg.tar.xz

它还拥有 Arch Build 系统(ABS ),允许任何用户定制任何官方软件包,甚至从第三方来源创建自己的软件包。这些包以包描述的形式配置,称为 PKGBUILD(一个 shell 脚本),可以从源代码编译并构建到一个包中,然后可以通过 pacman 安装。这个特性被用来创建 Arch 用户库(AUR ),这是一个由用户创建和维护的 PKGBUILDs 库。默认情况下,这些软件包不受官方支持,也不安全,但是这个系统被广泛使用,并且随着时间的推移,它被证明是为用户提供大量软件包的好方法。多亏了 AUR,许多软件包在作者发布后几个小时就可以使用了,这使得 Arch Linux 比其他发行版有很大的优势,因为其他发行版在安装相同的软件包之前需要等待一段时间。也可以选择制作自己的 PKGBUILD 并提交给 AUR;这也是 Arch Linux 如此受一些开发者欢迎的原因之一。

体系结构

Arch Linux 仅支持 Intel 和 AMD 32/64 位架构。ARM 架构还有一个非官方的独立端口,Arch Linux ARM。

安全性/匿名性

和这个发行版的其他方面一样,保证 Arch Linux 的安全主要是用户的责任。如果您愿意,您可以将 Arch 强化到偏执的级别(通过使用 grsecurity 内核或沙盒化您的浏览器),但这取决于您。你可以参考维基上的指南来帮助你;前往 https://wiki.archlinux.org/index.php/security

原则和道德

正如 Arch Way 所说,这个发行版过于实用,意识形态或道德动机是最终用户的责任。你可以只使用自由软件来构建发行版,也可以不使用;这取决于你。

现场 CD

在这样一个由每个用户量身定制的发行版中,Live CD 毫无意义。

专业认证

这种分配没有特定的专业认证。

装置

安装 Arch Linux 是一个与本书之前介绍的其他发行版完全不同的过程。区别不在于所有的安装都是在命令行上完成的;如果你愿意,你可以在 Debian 和大多数其他发行版中这样做。主要的区别是没有程序在工作流程中帮助你。安装过程完全是手动的,不需要任何帮助。在过去,有一个基于文本的应用程序来帮助你,但现在只有少数衍生发行版有一个程序来做这件事(其中一些是图形化的)。请记住,这是一个受 KISS 原则和 DIY 文化启发的发行版;然而,你并不孤单。有很好的文档可以帮助你。所以,如果你是这种安装 Linux 发行版的新手,我强烈建议你去 https://wiki.archlinux.org/index.php/Beginners'_guide 的初学者指南。

好吧,首先。在 www.archlinux.org/download/ 进入 Arch Linux 下载页面。正如你在图 11-1 中看到的,它列出了本月发布的发布信息和几种下载方式。在这种情况下,通过点击rackspace. com链接获得全球 HTTP 直接下载。

A367684_1_En_11_Fig1_HTML.jpg

图 11-1。

The Arch Linux Downloads page

如果您使用 HTTP 服务器下载图像,您将看到不同的可用文件(图 11-2 )。单击 ISO 映像文件链接并继续下载。

A367684_1_En_11_Fig2_HTML.jpg

图 11-2。

The Arch Linux files available to download

一旦你下载了 ISO 镜像并从它启动你的系统,如果你启动一个经典的 BIOS 系统,你会看到的第一个屏幕(如图 11-3 所示)与你在其他发行版中看到的非常相似。这里的主要区别是,它是一个双架构 ISO 映像,所以它允许您选择在相应的一个启动。它甚至不会尝试自己检测它。

A367684_1_En_11_Fig3_HTML.jpg

图 11-3。

The first Arch Linux boot screen

想象一个现代 UEFI 系统。在这种情况下,系统会自动引导,您会进入一个简单的zsh shell 提示符,以 root 用户身份登录(如果您在 BIOS 系统中引导,您会得到相同的最终结果)。你可以在图 11-4 中看到这一点。对于初学者来说,这是人间地狱,因为他们完全迷失了,但曾经有一段时间,几乎所有的发行版都是这样安装的。

A367684_1_En_11_Fig4_HTML.jpg

图 11-4。

The root zsh shell where you boot for the first time

我将指导你完成一个简单的安装,并让你决定它是否像谣言所说的那样可怕。

注意,内核版本是最近的版本;它通常是构建 ISO 映像时核心存储库中可用的最新版本。第一步是配置您的键盘布局。如果您使用的是 ANSI 布局键盘(美国),请不要执行任何操作。否则,您应该使用以下命令进行配置:

# loadkeys es

在本例中,如果您使用的是西班牙 ISO 布局,那么现在您已经加载了键盘的正确布局。通常布局是两个字母的国家代码,但也有一些变体。我来自西班牙,但我经常使用 ANSI 键盘,因为它更适合管理服务器和编程,所以我在这里什么也没做。但是不要轻易迈出这一步;当您必须配置密码时,这可能会影响登录与否。(当您输入或创建密码时,您看不到正在键入的字符。如果布局不是你在键盘上使用的布局,那么,你可以想象会出什么问题。)

下一步是配置您的网络。如果您使用的是有线网络,像我这样,并且您有一个带 DHCP 服务器的路由器,那么您可能已经连接到了互联网,因为 systemd dhcpd守护进程已经启动。最好的检查方法是 ping 一个已知的地址,比如 google.com 或者它的一个 DNS 服务器,比如 8.8.8.8。如果您的路由器或防火墙没有阻止 ICMP 响应,您应该会看到服务器回答您。

# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=63 time=46.6.ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=63 time=14.5.ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev/ = 14.505/30.585/46.666/16.081 ms

另一种方法是使用已经安装的elinks text web 浏览器打开一个已知的 URL(您可以稍后通过按“q”然后按“yes”退出)。这是一个非常有用的资源,可以帮助你安装发行版:你可以切换到另一个终端(通过 CTRL+ALT+F2),用 root 登录(不需要密码),然后打开 ArchWiki 并导航到安装部分,当你有问题时检查它(图 11-5 显示了它实际的样子)。

A367684_1_En_11_Fig5_HTML.jpg

图 11-5。

The ArchWiki in a elinks browser in a terminal

# elinks wiki.archlinux.org

我在这里假设一切正常,您确实连接到了互联网。如果没有,请咨询 ArchWiki 来帮助您设置网络(这里有几种情况,我无法在本书中一一介绍)。

现在,您必须同步您的系统时钟,以确保时间准确。这似乎是一个多余的步骤,但是如果您的系统时间不正确,您可能会在以后安装软件包时遇到问题,因为可能很难导入所需的 pgp 密钥。为此,请使用以下命令:

# timedatectl set-ntp true

接下来,使用以下命令检查状态

# timedatectl status

所有发行版安装的关键步骤是磁盘分区,这是您的下一步。首先,您需要确定您当前的磁盘和分区,以便对它们进行操作。在这个例子中,我使用了一个 2TB 的空硬盘。因此,执行下面的工具lsblk,列出系统中的块设备,如硬盘驱动器、CD-ROM 阅读器、DVD 阅读器等等:

# lsblk --paths
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/sda          8:0    0     2T  0 disk
/dev/sr0         11:0    1   701M  0 rom  /run/archiso/bootmnt
/dev/loop0        7:0    0 307.8M  1 loop /run/archiso/sfs/airports

我们这里有一个 2TB 的硬盘,名为路径/dev/sda中的sda。Arch Linux ISO 镜像挂载为sr0,还有另一个辅助虚拟设备只在安装中使用。在sda设备上没有显示任何分区。

现在你必须做分区。在本例中,我将在 UEFI 系统中安装 Arch Linux,因此我将在这个磁盘上使用 GPT 分区表。如果您使用的是 BIOS,您将使用 MBR 分区表。要进行分区,使用parted工具,它支持两种分区表。这两种情况下的过程非常相似(您可以使用其他工具)。

首先,启动程序,指定要使用的正确设备:

# parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

接下来,创建您的分区表:

(parted) mklabel gpt

在这种情况下,让我们创建一个非常简单的分区方案,只有三个分区,一个用于 EFI,另一个用于/挂载点,另一个用于/home挂载点。我将展示所有的步骤,但它们足够简单易懂。我为/目录选择了一个 50GB 的分区;它可以更小,但对于 2TB 的磁盘来说,最好不要吝啬。毕竟,有了 Arch Linux,你不必在很长一段时间内再次执行全新的安装,而且你也不知道将来会安装什么。(当然,对于 lvm 或 btrfs,您可以有一个更复杂的方案,现在不必担心大小,但让我们继续使用一个简单的方案。)

(parted) mkpart ESP fat32 1MiB 513MiB
(parted) set 1 boot on

(parted) mkpart primary ext4 513MiB 50.5GiB
(parted) mkpart primary ext4 50.5GiB 100%

在 parted 内部执行以下命令后,最终方案如图 11-6 所示:

A367684_1_En_11_Fig6_HTML.jpg

图 11-6。

The partition scheme

(parted) unit GiB
(parted) print

最后,用quit命令退出 parted 工具,并获得您的块设备的状态:

(parted) quit
# lsblk --paths
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/sda          8:0    0     2T  0 disk
 ├─/dev/sda1        8:1    0   512M  0 part
 ├─/dev/sda2        8:2    0    50G  0 part
 └─/dev/sda3        8:3    0     2T  0 part
/dev/sr0         11:0    1   701M  0 rom  /run/archiso/bootmnt
/dev/loop0        7:0    0 307.8M  1 loop /run/archiso/sfs/airports

现在是格式化分区并挂载它们的时候了。EFI ( sda1)分区需要是 FAT32 分区,对于其他分区,选择一个安全的选项,比如 ext4。让我们格式化它们:

# mkfs.fat -F32 /dev/sda1
# mkfs.ext4 /dev/sda2
# mkfs.ext4 /dev/sda3

您必须在实时系统中安装它们才能执行安装;这些不是最终的挂载点:

# mount /dev/sda2 /mnt
# mkdir -p /mnt/boot
# mount /dev/sda1 /mnt/boot
# mkdir -p /mnt/home
# mount /dev/sda3 /mnt/home

您可以在图 11-7 中看到分区的当前状态。

A367684_1_En_11_Fig7_HTML.jpg

图 11-7。

The disk is ready to perform the installation and the partitions have been made

准备好磁盘后,继续安装,首先安装基本系统。你可以用pacstrap脚本来完成这个任务(?? 是用 ABS 或 AUR 来构建包)。将这个包安装在/mnt目录中,这个目录将成为您未来的/根目录:

# pacstrap -i /mnt base base-devel

该脚本将向您显示将要安装的软件包,并要求您确认,如图 11-8 所示。在这个版本中有大约 150 个包,虽然它们将占用 750 MiB 的磁盘空间,但 pacman 使用了一种非常好的压缩算法(lzma2 ),因此您将只下载大约 230 MiB 的数据。

A367684_1_En_11_Fig8_HTML.jpg

图 11-8。

The base system installation script

在安装完所有的基础包之后,您将创建一个fstab文件,该文件管理如何使用正确的挂载点(与没有前面的/mnt目录的当前挂载点相同)和参数在您的系统上挂载分区。

# genfstab -U /mnt >> /mnt/etc/fstab

接下来,创建一个 chroot jail,它将根目录从当前目录(在从 ISO 映像引导的虚拟系统中)更改为您磁盘上的真实目录。因此,其余的命令会将您的磁盘视为当前引导的系统,并应用更改。请注意,命令提示符略有变化,以反映这一变化:

# arch-chroot /mnt /bin/bash

在接下来的步骤中,您需要使用文本编辑器。如果你知道怎么用vi,我强烈推荐你用;如果没有,用nano代替,这是一个更传统的文本编辑器。当然你可以用pacman安装另一个你喜欢的终端文本编辑器,比如emacs或者joe

若要继续,您需要选择您将在系统中使用的语言(和区域设置)。为此,您需要编辑/etc/locale.gen文件并取消注释(删除行首的#字符)您想要安装的语言代码行(例如enUS.UTF-8 UTF-8)。然后执行命令locale-gen:

# vi /etc/locale.gen
# locale-gen

现在,您需要创建一个/etc/locale.conf文件,在其中指定您将使用的默认语言,比如LANG=enUS.UTF-8。如果你也设置了不同于 ANSI US 的键盘布局,你也需要编辑/etc/vconsole.conf文件;如果你需要帮助,检查拱门。

# vi /etc/locale.conf
# cat /etc/locale.conf
LANG=en_US.UTF-8

时区是下一步。首先,使用工具tzselect获取时区代码,这将您从在/usr/share/zoneinfo目录中查找时区的繁琐工作中解放出来。当您调用这个工具时,它会显示几个选项供您选择,并缩小搜索范围,直到找到您所在的时区。最后,它会显示相应文件的路径。因此,运行tzselect,在遵循指令之后,使用那个时区代码(例如,America/New_York)通过一个到它在全局/etc/localtime配置文件中的路径的符号链接来使更改永久化。最后,调整时间并将时间标准设置为 UTC(强烈建议这样做)。

# tzselect
# ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
# hwclock --systohc --utc

接下来,您需要安装一个引导加载程序。有几个选项(我使用 rEFInd),但是让我们使用 systemd 自带的那个。接下来,在/boot/loader/loader.conf文件上配置一个默认的引导条目。最后,将该条目添加到引导加载程序中,使用 helper 命令获取根分区的 PARTUUID。

# bootctl install
# vi /boot/loader/loader.conf
# cat /boot/loader/loader.conf
default  arch
timeout  3
editor   0
# blkid -s PARTUUID -o value /dev/sda2
58507240-c577-41c0-b228-e5fee0dfaee3
# vi /boot/loader/entries/arch.conf
# cat /boot/loader/entries/arch.conf
title          Arch Linux
linux          /vmlinuz-linux
initrd         /initramfs-linux.img
options        root=PARTUUID=58507240-c577-41c0-b228-e5fee0dfaee3 rw

接下来,配置网络。在我的例子中,这非常简单,只需要两步:设置系统名称和启用systemd-dhcpcd服务。

# echo myarch /etc/hostname
# cat /etc/hostname
Myarch
# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:2a:3b:64:15 brd ff:ff:ff:ff:ff:ff
# systemctl enable dhcpcd@enp0s3.service

最后一步是安装一个基本的 Arch Linux 系统。首先,设置 root 密码,然后卸载分区并重启。记住为你的根用户设置一个非常强的密码。

# passwd
# exit
# umount -R /mnt
# reboot

就这样!现在您的系统上已经安装了一个非常基本的 Arch Linux 发行版。当你第一次启动新的 Linux 发行版时,如果你在 Arch Linux 条目上按 Enter 键或者等待 4 秒钟,你将再次进入 Linux 终端会话(见图 11-9 )。那是因为你安装的只是发行版,仅此而已;是基本核心。如前所述,现在您在安装中构建了您真正想要的东西;没有什么是预先定义的。因此,与其他 Linux 发行版相反,当你第一次启动系统时,你真正的工作就开始了;友好的发行版可以立即使用。此时,您只有一个根用户,没有任何种类的图形环境。但这是一个 DIY 发行版,所以这是你得到的。

A367684_1_En_11_Fig9_HTML.jpg

图 11-9。

An Arch Linux base system before any customization

从这里开始,很难说什么是“标准”路径。我将向你展示几个非常基本的步骤,帮助你知道该去哪里。不要把它们作为指南,因为我不涉及安全性、多媒体、存储库等等。完全定制一个 Arch Linux 安装可能需要几个小时,这取决于您想做什么和您的知识。但是请记住,您只需安装一次,然后几年内都不必重新安装,并且您始终拥有最新的系统。

首先要做的是添加一个用户,让 root 用户只执行管理任务。此外,让我们安装sudo来提升你的用户的权限,以完成管理任务,如更新发行版。

# useradd -m -G users,wheel johndoe
# passwd johndoe
# pacman -S sudo

现在让我们授权您的用户使用sudo,方法是将这些权限授予您之前为 user 添加的 wheel users 组。只有当你不想使用vi编辑器而使用nano时,第一个命令才是必要的。使用命令visudo您必须编辑/etc/sudoers文件并取消注释行# %wheel ALL=(ALL) ALL。最后一个命令安装包bash-completion,以便更容易在终端中编写自动完成的命令。

# EDITOR=nano visudo
# visudo

# sudo -lU johndoe
User johndoe may run the following commands on myarch:
    (ALL) ALL
# pacman -S bash-completion

我将向您展示的最后一步是安装一个图形环境和一个非常简单的窗口管理器(而不是安装一个经典的桌面环境,如果您愿意,您可以这样做)。首先安装 Xorg 服务器和视频驱动程序。它将提供一些选择;如果你没有 Nvidia 显卡,默认就可以了。第二个命令是识别您的视频卡,第三个命令列出所有可用的视频驱动程序。我会选择英特尔驱动程序。

# pacman -S xorg-server xorg-server-utils xorg-apps
# lspci | grep -e VGA -e 3D
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
# pacman -Ss xf86-video
# pacman -S xf86-video-intel

现在是时候安装窗口管理器了。首先,您需要安装一个显示管理器,以便能够登录并选择您想要使用的窗口管理器/桌面环境。你可以直接启动窗口管理器,或者在终端启动,然后手动启动窗口管理器,但是我认为这样做更友好(相当于你在其他发行版中看到的那样)。我以前用 Slim 也是这样做的,但是现在已经停产了。现在我更喜欢用 LightDM,它可以和多个 DM 和 WM 配合使用,非常轻便。有许多选择,你可以用你喜欢的那个。

# pacman -S lightdm lightdm-gtk-greeter
# systemctl enable lightdm.service

窗口管理器也有几种选择。让我们选择一个平铺窗口管理器。(我个人用的是牛逼的 WM,也喜欢 i3 或者 dwm。)选择 i3,因为它是最容易学的一个。还有,让我们安装一些辅助程序;当系统询问您在执行该命令后要安装什么时,请选择“默认全部”。最后,让我们安装一个图形 web 浏览器和一个终端工具,向您展示它们在 i3 中的样子。然后,您需要重新启动系统,看看它是如何直接引导到显示管理器的。

# pacman -S i3 dmenu termite
# pacman -S chromium htop ttf-dejavu

# systemctl reboot

系统重启后,你可以看到你进入了 LightDM 而不是终端(图 11-10 )。输入您的密码,然后进入 i3 窗口管理器。如果它询问您有关配置的问题,只需按 ESC 键使用默认配置。你会看到一个黑屏,下面有一个最小的文本状态栏;这是你能得到的最低限度了。如果你用htop和 Chromium 浏览器打开一对类似终端的程序,你会看到类似图 11-11 的东西。像这样的最小系统的一个优点是,正如您在htop输出中看到的,只有几个程序启动,资源使用最少。为了便于理解,我在 Ubuntu 15.10 中测试了一个类似的场景,我得到了 715MB 的内存和 120 个任务,而你在这里看到的是 212MB 和 34 个任务(我只向你展示了由当前用户发起的任务)。在一个像我这样配置的系统中,这个例子与 Ubuntu 例子的差别并不大,甚至相差很远(可能是 Fedora、openSUSE……)。

A367684_1_En_11_Fig11_HTML.jpg

图 11-11。

The window manage r i3 with a pair of windows opened

A367684_1_En_11_Fig10_HTML.jpg

图 11-10。

The LightDM screen to log into your i3 session

公平地说,像这样的发行版,安装工作比传统发行版复杂得多,你必须考虑你能达到的定制化和轻量级。例如,在像我这样的情况下,我更喜欢使用窗口管理器而不是桌面环境,如果我安装了 Ubuntu 发行版,在安装和设置窗口管理器后,我会有两个选择:

  • 使用窗口管理器并保持缺省的 DE(在本例中是 Unity ),伴随而来的是空间和资源的浪费。此外,我需要更新通常带有 DE 的大量软件包。
  • 使用窗口管理器并卸载默认的 DE。这不是一项容易的任务。在像 Ubuntu 这样的发行版中,由于依赖性,不可能执行干净的卸载;如果你不小心,它甚至可能会破坏系统。

所以,在像我这样的情况下,从一个最小的基础上构建一个系统通常是一个更好的选择,而不是试图让一个传统的发行版变得更轻或者使用不足。当然,你要接受几次妥协,放弃一些便利。

保持

在 Arch Linux 中,你只需要管理应用程序和执行更新;这是一个滚动发行版,所以没有必要升级。

管理应用和更新

管理应用程序和升级应用程序的任务是在 Arch Linux 中从命令行执行的。有一些工具可以作为图形前端,但是没有人使用它们,它们也没有得到官方支持。您使用同一个应用程序完成两项任务,pacman。若要安装应用程序,请使用以下命令:

# pacman -S firefox

要删除它,请使用以下命令:

# pacman -R firefox

为了进行定期更新,命令应该是这样的:

# pacman -Syu

有了这些简单的命令,大多数人可以生存很长一段时间,没有大问题。当然,有一些必要的长期任务,像刷新钥匙圈,但这个发行版期望你在 DIY 文化中感到舒适,并能照顾好自己。在这样的发行版中,强烈建议您经常更新,甚至每天更新,因为如果有需要手动干预的更改,或者在发行版的设置或工作方式中引入更改,如果这些更新推迟太久,它可能会停止正常工作。当前的软件包版本期望立即执行这些任务。简而言之,定期更新可以让你避免一些不必要的麻烦。

至于从 AUR 安装的软件包,有几个工具可以帮你自动完成,比如pacauryaourt,或者半自动完成,比如cower.,它们都是非官方应用。有些人喜欢手工操作,以便在这个过程中有更多的控制。

Note

为了保持一致,我在本书的所有章节中都使用了“升级”这个术语,但是 Arch Linux 的人更喜欢使用“升级”,因为他们说你真正做的是定期升级整个系统,而不是简单的升级。这是事实,因为它不支持部分升级;您必须更新所有可用的软件包。(您仍然可以阻止软件包更新,并进行部分升级,但不建议这样做。)所以技术上你可以说你每次都在全面升级系统。但是,要比较发行版,我觉得更容易理解为“更新”

利弊

以下几点是我个人认为的 Arch Linux 发行版的利与弊。我尽量做到客观。

赞成的意见

  • 它是一个滚动发布的发行版,所以它总是处于最前沿。
  • 它提供了很好的文档。
  • 它有一个非常友好的社区。
  • 它配备了一个伟大的包经理,和 ABS 和 AUR。
  • Arch Linux 是你自己创造的;它是完全可定制的。
  • 你可以使用免费的和专有的软件,如果官方没有,你可以自己制作软件包。
  • 这是一个原始发行版,而不是一个衍生物。

骗局

  • 它面向愿意自己做所有事情的用户,所以它不是一个友好的发行版。
  • 它具有滚动发行版固有的不稳定性。
  • 你必须熟悉命令行来安装它。
  • 完全没有审美;外观由你决定。
  • 它没有商业支持。

摘要

Arch Linux 是我介绍的第一个适合高级用户的 Linux 发行版;这也是我报道的第一个真正的滚动发行版。你可以看到这种发行版和传统发行版之间的巨大差异。这种发行版不仅要求你自己完成所有的工作,还要求你知道你想要构建什么,因为没有为你预先定义的设置。

在下一章,你会看到另一个类似的发行版,但是 Gentoo 更进一步。

Footnotes 1

www.archlinux.org/news/arch-linux-01-homer-released/

十二、Gentoo Linux

Gentoo Linux 是典型的定制 Linux 发行版。事实上,它的适应性如此之强,以至于 Gentoo 人更愿意称之为元分布。和 Arch Linux 一样,Gentoo 可以是您需要的任何东西。它也是一个滚动发布的发行版,但它更进了一步;您可以从源代码构建每个包,并根据您的系统和需求对它们进行优化。它的流行轨迹与 Arch Linux 相反:它曾经是一个非常受欢迎的发行版,但在过去几年里这一趋势有所减弱。然而,它背后仍然有一个强大而忠诚的社区。

历史

1999 年 4 月,美国程序员 Daniel Robbins 开始编写 Enoch Linux 发行版。这个想法是通过编译每个针对特定硬件的包来创建一个尽可能快的 Linux 发行版,而不是使用通用的预编译二进制文件。您只需要安装您真正需要/想要的包,所以这也是一个轻量级的通用发行版。

1999 年 5 月,在购买了一台新机器(双赛扬)后,Robbins 发现 Linux 内核无法在其上启动,因此当其他程序员继续维护 Enoch 发行版时,他转而使用 FreeBSD,直到错误被修复。在使用 FreeBSD 几个月之后,他重新开始开发 Enoch,他从两个重要的步骤开始:

  • 他把发行版的名字改成了 Gentoo Linux(这个名字是另一个贡献者的建议)。
  • 他结合了 FreeBSD 的一些想法来创建 Portage,一个现代的港口系统。

Gentoo Linux 的第一个版本(之前有一个版本叫做 Enoch)于 2002 年 3 月 31 日发布。

发布两年后,Daniel Robbins 作为首席架构师离开了 Gentoo 项目,并将所有的 Gentoo 知识产权转让给了他创建的非营利性的 Gentoo 基金会。Gentoo Linux 项目今天仍然在 Gentoo 基金会的保护下,所以它是一个基于社区的发行版。丹尼尔·罗宾斯现在在 Zenoss 工作,同时还参与了 Funtoo 项目,这是他在 2007 年创建的一个 Gentoo 衍生产品。

Gentoo 的定制化和多功能性的力量以及它所拥有的用户/用途类型的一个证明是,Google 在 2009 年 7 月使用 Gentoo 作为其自己的基于网络的操作系统 Chrome OS 的基础,以配合其云。

Note

Gentoo 的名字是鲍勃·穆奇的一个想法,它与 Linux 的吉祥物有关。如第一章所述,Linux 的吉祥物是一只企鹅。巴布亚企鹅是企鹅的一种;它们被认为是最快的水下游泳企鹅,速度可达 22 英里/小时(36 公里/小时)。这个想法是为了传递最快的企鹅和最快的 Linux 发行版之间的联系。

哲学

Gentoo 的哲学与 Arch Linux 有一些共同点,但是 Gentoo 采用了一种更激进的方法。一切都可以定制和优化,以适应用户。您可以从源代码编译内核和几乎所有的包,在非常基础的层次上进行定制,比如使用什么编译器选项或者您想要为每个包安装哪些依赖项(如果有的话)。因此,如果在 Arch 中你可以按照自己的意愿构建系统,那么在 Gentoo 中,你几乎可以完全控制发行版的每一个微小方面。最重要的是,Gentoo 还遵循滚动发布模型,所以最新更新的包是可用的。

我们的目标是拥有一个完全定制的 Linux 安装,它根据您的硬件和需求进行了更好的调整和优化。但是就安装(和更新)投入的时间而言,这是一个巨大的成本。如果安装一个 Arch Linux 系统需要几个小时来完成一个巨大的定制安装,那么 Gentoo 可能需要一天多的时间来编译您想要安装的包。因此,Gentoo 用户是非常特别的,他们喜欢完全控制,并准备花时间来实现这一点;这包括系统管理员、开发人员、爱好者以及一般的高级用户。如果我必须用一个词来定义巴布亚哲学,那就是“选择”

两个发行版强加的强大约束在任何发行版的两个关键方面都产生了相似的结果:一个非常友好和乐于助人的社区和高质量的文档。

发行版选择标准

现在你已经了解了一些历史,让我们来看看 Gentoo Linux 在第二章的选择标准上的表现。

目的和环境

显然,Gentoo 实际上是通用发行版的定义。因为您可以出于任何目的用 Gentoo 构建任何您想要的 Linux,所以它也可以用于创建面向任务的安装。因此,这个发行版只有一个版本。实际上,对于两种主要架构(amd64/x86 ),还有另一个版本叫做 Hardened Gentoo,但它本质上是一个相同的版本,已经预先定义了安全措施,以获得一个非常坚固的 Linux 系统。所以我几乎不认为这是一个不同的版本。

支持

Gentoo 从它的社区中获得支持,这个社区规模不大,但是他们精通技术并且乐于助人。社区维护着一份详细的高质量文档。也许它不像 Arch Linux 那样涵盖那么多主题,但是它涵盖了更多技术和更深层次的一些主题。支持渠道如下:

用户友好性

这不是一个用户友好的发行版,不仅因为你需要自己完成所有的工作,没有工具来帮助你,还因为你需要编译软件包,这需要更多的知识。幸运的是,有优秀的文档指导您。另一个不友好的方面是只编译一个大的软件包(例如 OpenOffice、Mozilla Firefox 或桌面环境)所花费的时间;这可能是发行版受欢迎程度下降的主要原因。

一些没有经验的用户仍然被这个发行版所吸引,因为它是最好的初级 Linux 学习工具之一;该文档也很好地覆盖了 Linux 基础知识。除此之外,我不会向初学者推荐这个发行版,尤其是新手,因为编译过程是用来批评 Linux 的要点之一(这是不公平的,因为现在在更传统的发行版中你很少这样做)。但是如果你想真正了解一个操作系统是如何在底层工作的,Gentoo 肯定是我的推荐之一。

稳定性

和 Arch Linux 一样,Gentoo 本质上是不稳定的,因为它是一个滚动发行版。和 Arch 一样,你可以选择你的鲁莽程度;您可以从三个级别选择包的稳定性:

  • 稳定:没有问题、安全或其他问题的稳定软件包。
  • 关键字屏蔽:包仍然没有得到充分的测试。
  • 硬屏蔽:它已经打破或非常不安全的包。

稳定的软件包可能有点过时(但仍然比经典发行版更新鲜),但系统是相当稳定的。如果你遵循类似于第十一章中概述的策略,你可以得到一个非常稳定的系统,一个滚动发布的发行版。此外,与 Arch Linux 相反,您可以非常有选择性地选择想要更新的包,而不会危及发行版的稳定性(在 Arch 中,不建议这样做)。此外,您可以选择单个包的稳定性,例如为核心系统设置稳定的包,为开发人员工具测试稳定的包。通过非常严格和一丝不苟地坚持这一实践,你可以实现一个非常健壮的系统,一个可以像 Debian stable 一样稳定的系统。毕竟,Gentoo 是您希望它成为的任何东西。

硬件支持

Gentoo 的硬件支持依赖于 Portage 树和覆盖层上可用的内核、固件和驱动程序。和这个发行版的其他方面一样,这个主题很大程度上依赖于用户及其学习能力或意愿。

美学

Gentoo 遵循构建适合您的独特安装的理念。它没有强加任何特定的审美。这里或那里只应用了一些品牌补丁,但它们大多是附带的(并且您必须使用该选项编译软件包)。

桌面环境

在这个发行版中几乎没有预定义的东西,这延伸到了桌面环境。你可以决定你想安装什么。您可以安装各种各样的桌面环境(Gnome、KDE、Unity、Mate、Cinnamon、Pantheon、LXDE、LXQt、Budgie 和 Xfce)。同样,如果你更喜欢一个窗口管理器,你也可以从多种软件中选择(Awesome、Xmonad、Dwm、i3、Openbox、Sawfish、Fluxbox、Enlightenment、Ratpoison、FVWM 和 Wm2)。与 Arch Linux 一样,您甚至可以决定是使用传统的 X.org 窗口服务器还是新的 Wayland,或者如果您只想使用命令行,就什么都不用。

初始化系统

Gentoo 是少数几个仍然没有将 systemd 实现为其 init 系统的发行版之一,而且将来也不打算这样做。Gentoo 使用 OpenRC,一个基于 BSD 的 init 系统。但是你可以选择安装和使用 systemd,例如,如果你想使用 Gnome 3,但是同样,这是你的选择。

包装管理系统

Gentoo 使用自己的包管理系统 Portage。Portage 基于 Robbins 在 FreeBSD 的经验;它基于它的 ports 系统,用 Python 编写。Portage 是 Gentoo 的灵魂,它定义了发行版。Portage 管理软件包的方式不同于传统的 Linux 软件包管理器。它不从存储库中获取二进制文件;它从源代码编译包。即使你也可以编译其他发行版中的包,或者其他一些发行版如 Arch Linux 有自己的基于端口的系统如 ABS,在 Portage 中标准是编译所有的包。

Portage 有一个 ebuilds (shell 脚本)的集合(通常称为 Portage tree ), ebuilds 是定义如何构建每个包的方法。为了解决这个问题,还有一个叫做 emerge 的工具,它可以作为 Portage 的接口。还有一个本地 ebuilds 集合,你可以把它看作是一种可以与主存储库同步的本地存储库,Portage 树,emerge 是管理这个本地存储库的工具。对此半信半疑;这里就不赘述了。我只是想让你大致了解一下它是如何工作的。

有一些 Portage 的 GUI 界面可以用来代替 emerge,比如 paradol 和 Himerge,但是通常选择 Gentoo 作为发行版的人更倾向于使用命令行工具。

Portage/emerge 是一个非常强大的工具,它允许您完全控制软件包和您的系统。您可以通过配置文件和“CFLAGS and USE flags”配置全局设置来编译所有的包您也可以通过软件包或临时设置来设置单独的设置。

编译包而不是使用预编译的二进制文件有一些不便,例如:

  • 这是一个非常缓慢的过程:当使用设置MAKEOPTS="-j2"(两个同时执行的任务,一个内核)时,像 Chromium 这样的简单包花了我大约三个小时来编译,而使用英特尔 i7 处理器的MAKEOPTS="-j5"(五个任务,四个内核)大约一个小时。所以,想象一下,像默认安装 Fedora 或者 Ubuntu 一样,构建一个完整的系统。当然,你可以使用一些预编译的包(你可以使用# eix *-bin找到它们);目前有 94 个包),这将有所帮助,但仍然需要很长时间。然而,随着时间的推移,计算机速度越来越快,而封装尺寸的增长速度越来越慢,这个因素变得越来越不令人讨厌。
  • 包构建可能会失败:有时甚至在更改编译选项后也不容易修复。在极少数情况下,这甚至是不可能的,只有上游的变化才能修复它。

但是它也有一些优点,例如以下(以及其他):

  • 您可以选择依赖项/组件:例如,您可以选择删除对桌面环境 KDE/Qt 的支持,而只在支持两者的包中支持 Gnome/GTK。或者您可以删除支持它的工具的图形界面和服务器中的命令行。
  • 您可以为您的硬件编译软件包:例如,这可以让您在过时的体系结构中构建更新的 Linux 系统,这些体系结构只受其他发行版的支持或者根本不受支持(例如 PowerPC)。它也非常适合利用计算/多媒体包。
  • 您可以选择版本并维护各种版本:您可以从可用的版本中手动选择软件包的版本,甚至可以在具有插槽功能的同一系统中安装各种版本。在虚拟机和容器到来之前,这曾经是开发者的一大优势。
  • 您可以更新一个无人维护的系统:您可以轻松地恢复一个很长时间没有更新的 Gentoo 系统。一如既往,不是立竿见影;这需要时间和精力,但是你不能在大多数发行版中做到这一点(即使是在 Debian 不稳定或 Arch Linux 中,这可能是非常痛苦的,这是我亲身经历的),而且如果没有全新的安装,这可能是不可能的。

除了 Portage 主存储库,Gentoo 还支持覆盖,这是一种创建额外 ebuilds 存储库的方法,大致相当于 Arch 的 AUR(或 Ubuntu 的 PPAs)。有官方和非官方的覆盖;后者由社区支持和维护。有一些工具可以管理叠加,如外行、eix 和 emaint。目前 Gentoo 只在 Portage 树中保存了大约 19,000 个包,其余的包通常是从这些覆盖图中获得的。

几年前,性能的提高是编译所有适合你的硬件的包的优势,但是现在与二进制包发行版相比,性能上的差别并没有那么大,也不能弥补编译所花费的时间。只有当你需要一个特别调优的系统来完成特定的任务时,你才有理由在性能方面选择 Gentoo 而不是其他发行版。简而言之,性能不再是用户选择 Gentoo 作为他们发行版的原因,即使他们说是。

体系结构

Gentoo 支持广泛的硬件架构。它涵盖了常见的英特尔/AMD 32 位和 64 位选项,以及 Alpha、ARM、Sparc、PowerPC、安腾和 PA-RISC。另外三种仅作为实验性的支持:MIPS、S390 和 Super H。

安全性/匿名性

在这样的发行版中,这完全取决于你如何管理安全性和匿名性。然而,众所周知,Gentoo 非常重视这个话题。从一开始,用 Portage/emerge 编译的包在被合并到实际系统之前,就被可选地构建并安装在沙箱(隔离的)环境中。此外,稳定的软件包没有已知的安全缺陷,而且 Gentoo 包含了检查系统中不安全软件包的工具。

此外,二进制文件或内核可以根据您的硬件和喜好进行大量定制,这使得特定的软件包漏洞不太可能像在其他发行版中那样影响您。

有一个完整的项目可以帮助您强化您的 Gentoo 系统:强化的 Gentoo 项目。它在安全领域享有盛誉。您可以使用它来强化您的 Gentoo 系统,并获得一个非常安全的系统,甚至可以达到偏执的程度。可以在https://wiki.gentoo.org/wiki/Hardened_Gentoohttps://wiki.gentoo.org/wiki/Project:Hardened看到。

原则和道德

就原则和道德而言,Gentoo 是一个非常实用的发行版。它不强加任何特定的愿景;你选择你的方式来解决这些问题。但是你可以通过将 Portage 中的一个选项改为ACCEPT_LICENSE="@FREE".来轻松设置系统只安装免费软件

现场 CD

Gentoo 提供了一个 LiveDVD,它称之为 Hybrid ISO(在安装部分有更多的介绍)。显然,在这种情况下(与其他发行版不同),这只是对您可以构建什么的概念证明,而不是您在安装过程结束时会得到什么(没有两个 Gentoo 安装是相同的)。还有,这张 DVD 是零星发行的;最后一个可用的是 2014 年 8 月的。

Note

Gentoo 也称他们的最小 ISO 映像为实时媒体。这是真的;这是一个实时的 Linux 系统,但不是我在本书中使用的那种。

专业认证

这种分配没有专业认证。

装置

Gentoo 哲学,通过选择来总结,是您从尝试安装 Gentoo 的第一瞬间就能感受到的东西。与其他发行版不同的是,你可以从它的最小安装 ISO 或者从它的 LiveDVD 开始安装 Gentoo,也可以从另一个 LiveCD/DVD,一个 netboot 镜像,另一个已经安装的发行版等等。基本上,您可以从几乎任何基本的最小 Linux 环境中安装 Gentoo。你可以在 Slackware 等其他发行版上做类似的事情,但是 Gentoo 从一开始就没有强加任何东西。

我不可能在这里涵盖所有可能的场景,尤其是像这样的发行版,所以我强烈建议在 https://wiki.gentoo.org/wiki/Handbook:Main_Page 看一看 Gentoo 手册。此外,我不打算花太多时间讨论我在第十一章中提到的关于 Arch Linux 的主题,因为我想把重点放在特定于 Gentoo 安装的主题上。

我将使用 Gentoo 在其网站上提供的最小安装 CD,因为我认为这是大多数用户的选择,尽管他们中的许多人更喜欢使用 LiveCD,为他们提供一个像 Ubuntu one 这样的动态桌面环境,以准备安装,并使用 Gparted 这样的图形工具来进行分区。

和往常一样,首先进入 Gentoo 网站的下载页面 www.gentoo.org/downloads/ 。你可以在图 12-1 中看到它目前的样子。注意这些图像是如何按照建筑来组织的;在每个体系结构中,您都有“引导介质”(ISO 映像)和“阶段归档”(稍后将详细介绍)。在页面底部(图中未显示),您还可以选择其他体系结构或顶部已显示的体系结构的高级选项。其中一些选项包括“强化阶段 3”(仅适用于 amd64 和 x86),您可以使用它来获得一个先前安全的环境,从而获得一个非常安全的 Gentoo 系统。在这种情况下,请下载 amd64 架构的最小安装光盘。这些最小安装 iso 每周发布一次,所以它们总是在更新。

A367684_1_En_12_Fig1_HTML.jpg

图 12-1。

The Gentoo Linux downloads page

下载完成后,您必须从 ISO 引导您的系统。你看到的第一个屏幕(如图 12-2 所示)比你在本书前面的其他发行版中看到的更粗糙。如果你在 15 秒内没有按下任何键,它会尝试从你的硬盘启动。所以如果你想继续,按回车键,或者像在其他发行版中一样,你可以选择用 F1(内核)和 F2(选项)键来改变默认值。所以按回车键继续。

A367684_1_En_12_Fig2_HTML.jpg

图 12-2。

The ISOLINUX boot loader of Gentoo's Minimal Installation CD

系统将开始启动,但过一会儿它会停下来询问你的键盘布局,如图 12-3 所示。在它自动选择默认布局之前,您只有几秒钟的时间来介绍您的布局或按回车键(如果您打算使用默认布局)。

A367684_1_En_12_Fig3_HTML.jpg

图 12-3。

Keyboard layout configuration

那就继续。您最终会看到一个命令行提示符(就像在 Arch Linux 安装中一样);见图 12-4 。

A367684_1_En_12_Fig4_HTML.jpg

图 12-4。

The prompt of Gentoo's Minimal Installation CD

这是所有工作开始的地方。默认情况下,如果检测到您的网卡并且您有 DHCP 服务器,它应该已经设置了您的以太网连接。如果没有,请按照说明或者看一下 Gentoo 手册。通过文本浏览器链接打开手册(最好在另一个控制台中打开)。您可以通过 ping 到gentoo.org来检查连接,或者通过链接打开站点(记得用“q”键退出)。

# ping gentoo.org
# links gentoo.org

第一步是准备磁盘。在我的例子中,我将在一个有 2TB 磁盘的 BIOS 系统中安装发行版,所以我将使用 MBR 分区表(我可以使用 GPT,但是这个选项在某些情况下可能会导致一些问题)。在 Arch Linux 示例中,它首先显示了有多少设备以及它们是如何分区的。

# lsblk --paths
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/sda          8:0    0     2T  0 disk
/dev/sr0         11:0    1   256M  0 rom  /mnt/cdrom
/dev/loop0        7:0    0 224.5M  1 loop /mnt/livecd
# parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) u GiB
(parted) p
Error: /dev/sda: unrecognised disk label
Model: ATA QEMU HARDISK (scsi)
Disk /dev/sda: 2048GiB
Sector size (logical/physical): 512B/512B
Partition Table: Unknow
Disk Flags:

它显示的是一个没有任何分区或分区表的磁盘。让我们使用parted在磁盘中创建分区。使用一个非常简单的分区方案,只有根分区和/home分区,都是 ext4。

# parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) u GiB
(parted) mklabel msdos
(parted) mkpart primary ext4 1MiB 50.5GiB
(parted) set 1 boot on
(parted) mkpart primary ext4 50.5GiB 100%
(parted) q
# lsblk --paths
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/sda          8:0    0     2T  0 disk
├─/dev/sda1         8:2    0    50G  0 part
└─/dev/sda2         8:3    0     2T  0 part
/dev/sr0         11:0    1   256M  0 rom  /mnt/cdrom
/dev/loop0        7:0    0 224.5M  1 loop /mnt/livecd

现在格式化分区并挂载它们。

# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda2
# mount /dev/sda1 /mnt/gentoo
# mkdir -p /mnt/gentoo/home
# mount /dev/sda2 /mnt/gentoo/home

Note

考虑到最小安装 CD,您只有制作 ext2、ext3 和 ext4 文件系统的工具。如果您想使用另一个文件系统,比如 btrfs,那么您应该使用另一种介质来安装它。

最后你有了一个硬盘分区方案,如图 12-5 所示。

A367684_1_En_12_Fig5_HTML.jpg

图 12-5。

The disk partitioning scheme

接下来,检查日期,并在必要时进行更正。注意语法很讲究:MMDDhhmmYYYY。这代表月、日、小时、分钟和年。

# date

下一步是完全排除 Gentoo 的第一步。您将下载并安装您在 Gentoo 下载页面上看到的 Stage 3 tarball。阶段 3 是一个归档文件,包含一个最小的 Gentoo 环境,用于继续安装。这个过程的结果几乎类似于 Arch Linux 安装中的pacstrap脚本执行。下载阶段 3 文件的最佳方式是使用链接浏览器转到下载镜像,选择离您最近的一个,然后下载文件。你可以使用另一个工具,比如wget或者curl,但是你应该知道完整的 URL(并且写下来)。习惯了这种方式将会更容易适应 Gentoo 网站未来的变化。一旦你选择了一个镜像并打开它,你应该寻找releases/amd64/autobuilds/目录。在那里,寻找 amd64(或您的架构)的当前阶段 3 文件,并通过按“d”下载它。它应该是一个压缩的 tarball 文件(扩展名为.tar.bz2),如图 12-6 所示。那里还有其他第三阶段的文件,但你并不关心它们。以后,如果你喜欢上了 Gentoo,你肯定会了解他们的。

A367684_1_En_12_Fig6_HTML.jpg

图 12-6。

The directory for the stage 3 tarball file in a Gentoo mirror

# cd /mnt/gentoo

# links https://www.gentoo.org/downloads/mirrors/

下载完文件后,您需要在硬盘中提取并解压缩该文件(请记住,现在您位于/mnt/gentoo目录中,该目录实际上是/dev/sda1,您未来的根分区)。

# tar xvjpf stage3-*.tar.bz2 --xattrs

这需要一点时间,在我的机器里大概一分钟。接下来,您需要更改位于/etc/portage/make.conf的编译选项配置文件中的一些内容。您可以在这里更改一些东西来优化编译,但是让我们只更改两件事:第CFLAGS行和一个新的变量MAKEOPTS(参见下面的代码)。我为最后一个变量选择了值 7,因为我创建了一个具有六个内核的虚拟机,我想使用它们来加速编译。如果我保留默认值 2,我会花很多时间等待。为此,您可以使用以下文本编辑器之一:nanoviEmacs

# vi /mnt/gentoo/etc/portage/make.conf
# cat /mnt/gentoo/etc/portage/make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="x86_64-pc-linux-gnu"
# These are the USE flags that were used in addition to what is provided by the
# profile used for building.
USE="bindist mmx sse sse2"
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"
MAKEOPTS="-j7"

现在是开始安装基础系统的时候了。第一件事是指出您想要用来下载源代码的镜像。如果镜子快就更好了,通常这意味着离你最近的那个。这是用make.conf文件中的一个变量设置的,但是有一个工具允许你从一个列表中选择它们(我建议两个或更多)并将它们添加到文件中,而不是手动选择它们。接下来,将主要的 Gentoo 存储库配置文件复制到它的目的地,并复制 DNS 信息,以便在重新启动系统时保持 Internet 连接。

# mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
# mkdir /mnt/gentoo/etc/portage/repos.conf
# cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
# cp -L /etc/resolv.conf /mnt/gentoo/etc/

您还必须挂载某些必要的文件系统,以便在新环境中继续正常工作(一会儿您将被关进监狱)。

# mount -t proc proc /mnt/gentoo/proc
# mount --rbind /sys /mnt/gentoo/sys
# mount --make-rslave /mnt/gentoo/sys
# mount --rbind /dev /mnt/gentoo/dev
# mount --make-rslave /mnt/gentoo/dev

让我们以一个监狱根(chroot)进入新的环境。那么所有的命令都将应用于以硬盘为基础设置的环境,而不是实时环境。最后一行是一个很好的提示,提醒您处于 chroot 环境中。

# chroot /mnt/gentoo /bin/bash
# source /etc/profile
# export PS1="(chroot) $PS1"

接下来,配置 Portage。首先,获取当前 Portage 树的快照,然后将最新更新的版本与新的本地树同步。忽略关于/usr/portage位置的错误和关于新闻的警告(这是一个非常好的特性,我建议您在文档中查看它)。

# emerge-webrsync
# emerge --sync --quiet

您现在应该已经选择了一个概要文件,这个概要文件应该为将来的包的编译定义全局设置。因为我想向您展示类似于 Arch Linux 安装的东西,所以在这种情况下,正确的选择是选择“desktop”概要文件。

# eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/13.0 *
  [2]   default/linux/amd64/13.0/selinux
  [3]   default/linux/amd64/13.0/desktop
  [4]   default/linux/amd64/13.0/desktop/gnome
  [5]   default/linux/amd64/13.0/desktop/gnome/systemd
  [6]   default/linux/amd64/13.0/desktop/kde
  [7]   default/linux/amd64/13.0/desktop/kde/systemd
  [8]   default/linux/amd64/13.0/desktop/plasma
  [9]   default/linux/amd64/13.0/desktop/plasma/systemd
  [10]  default/linux/amd64/13.0/developer
  [11]  default/linux/amd64/13.0/no-multilib
  [12]  default/linux/amd64/13.0/systemd
  [13]  default/linux/amd64/13.0/X32
...
# eselect profile set 3

接下来,您可以/应该配置USE变量来设置编译包的全局选项。这是重要的一步,但在这种情况下,您将使用默认设置。我建议您熟悉 Gentoo,并在处理这个问题之前仔细阅读文档。

让我们采取另一个步骤,所有发行版中的传统步骤:设置时区、语言和本地值。第一个命令将显示存储时区文件的目录树;然后,您必须设置一个并自动更新日期。接下来,编辑locale.gen文件(在这个环境中,您只有 nano 来编辑文件)并取消您想要使用的语言的注释(在本例中是enUS.UTF-8 UTF-8)。最后,再次使用eselect来选择系统范围的语言并重新加载环境。

# ls /usr/share/zoneinfo

# echo "America/New_York" > /etc/timezone
# emerge --config sys-libs/timezone-data
# nano -w /etc/locale.gen
# locale-gen
# eselect locale list
Available targets for the LANG variable:
  [1] C
  [2] POSIX
  [3] en_US.utf8
  [ ] (free form)
# eselect locale set 3
# env-update
# source /etc/profile
# export PS1="(chroot) $PS1"

现在是 Linux 新手中最艰巨的任务的时候了,这是许多谣言和神话的素材:安装和配置 Linux 内核。抱歉,但你必须这么做,所以让我们尽可能用最不痛苦的方式来做:自动地。我向你保证,这并不可怕,但我明白你可能需要一些经验来获得信心。首先,你需要安装它。

# emerge --ask sys-kernel/gentoo-sources

这需要一段时间,在我的系统上大约三分钟。要配置内核,您将使用一个名为genkernel的工具来自动完成。首先,您需要安装工具。

# emerge --ask sys-kernel/genkernel

现在您需要编辑/etc/fstab文件并注释/boot和交换行,因为您没有创建那些分区;您还需要为/home分区创建一个新行。

# nano -w /etc/fstab
# cat /etc/fstab
# /etc/fstab: static file system information.
#
# noatime turns off atimes for increased performance (atimes normally aren't
# needed); notail increases performance of ReiserFS (at the expense of storage
# efficiency). It's safe to drop the noatime options if you want and to
# switch between notail / tail freely.
#
# The root filesystem should have a pass number of either 0 or 1.
# All other filesystems should have a pass number of 0 or greater than 1.
#
# See the manpage fstab(5) for more information.
#

# <fs>          <mountpoint>    <type>      <opts>      <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
#/dev/BOOT      /boot       ext2        noauto,noatime  1 2
/dev/sda1       /           ext4        noatime     0 1
/dev/sda2       /home       ext4        noatime     0 2
#/dev/SWAP      none        swap        sw      0 0
/dev/cdrom      /mnt/cdrom  auto        noauto,ro   0 0
#/dev/fd0       /mnt/floppy auto        noauto      0 0

接下来,用 genkernel 自动配置内核。

# genkernel all

这需要一段时间,在我的系统上大约需要 17 分钟。这是第一个速度不快的编译,向您展示了编译几乎所有东西需要什么。接下来,通过/etc/conf.d/modules配置需要自动启动的模块。在这种情况下,我们假设您不需要任何额外的模块。但我建议你安装固件,因为你永远不知道,有些驱动程序需要它(特别是在笔记本电脑)。

# emerge --ask sys-kernel/linux-firmware

继续配置系统。让我们现在设置网络。第一步是将默认主机名“hostname”更改为您想要的主机名。之后,将互联网配置为使用 DHCP,并使其成为启动时启动的网络。

# nano -w /etc/conf.d/hostname
# cat /etc/conf.d/hostname
# Set the hostname variable to the selected host name
hostname="does_pc"
# emerge --ask --noreplace net-misc/netifrc
# nano -w /etc/conf.d/net
# cat /etc/conf.d/net
config_eth0="dhcp"
# cd /etc/init.d
# ln -s net.lo net.eth0
# rc-update add net.eth0 default

您必须为 root 用户设置密码。请记住使用强密码,尤其是对于该用户。

# passwd

如果您的键盘布局不同于默认的 ANSI US,并且您在从最小安装映像启动时选择了“其他”,那么您现在应该配置键盘布局,以避免在重新启动系统时出现问题(例如,无法根据您使用的字符重新创建密码)。为此,您必须编辑/etc/conf.d/keymaps文件。

# nano -w /etc/conf.d/keymaps

让我们安装一些系统所需的工具。让我们从记录系统中发生的事情的日志工具开始,然后是 cron 工具、文件索引工具、一些文件系统工具和 DHCP 客户机。在这里,你使用经典或最简单的工具来完成每项任务,而不一定是最好的。

# emerge --ask app-admin/sysklogd
# emerge --ask app-admin/logrotate
# rc-update add sysklogd default
# emerge --ask sys-process/cronie
# rc-update add cronie default
# emerge --ask sys-apps/mlocate
# emerge --ask sys-fs/e2fsprogs
# emerge --ask net-misc/dhcpcd

您即将第一次启动新的 Gentoo 系统。首先,您需要安装和配置一个引导程序,在您的例子中是 Grub2。准备再等等;这将需要一段时间来编译(在我的系统上大约 10 分钟)。

# emerge --ask sys-boot/grub:2

# grub2-install /dev/sda
# grub2-mkconfig -o /boot/grub/grub.cfg

最后,退出并重启系统。交叉手指!

# exit
# cd
# umount -l /mnt/gentoo/dev{/shm,/pts,}
# umount /mnt/gentoo{/boot,/sys,/proc,}
# reboot

瞧啊。您第一次启动了全新的 Gentoo Linux 系统!在它完成启动后,你应该会发现一个如图 12-7 所示的屏幕。

A367684_1_En_12_Fig7_HTML.jpg

图 12-7。

The first boot up of your brand new Gentoo system

所有这些工作,你最终在一个简单的命令提示符了!好吧,从现在开始就看你的了;你可以建造你想要的东西。您先前选择的概要文件和每个包的依赖项将会“花费您的时间”我给你举个例子:在我的新系统中,我没有安装我在最小安装环境中安装的工具,比如 emacs、vi 或 links。我想有链接,以便能够从终端访问文档,以防出错。这个包依赖于 X windows 服务器的某些组件。安装一个文本模式浏览器花了 20 分钟。计算一下:从源代码安装 Gnome 或 KDE 需要多长时间?另一方面,您只需安装这些依赖项一次。

但是首先您必须创建一个新用户。为此,您需要使用 root 帐户登录,然后添加它。将用户添加到滚轮组(使用susudo)和audio

# useradd -m -G users, wheel,audio -s /bin/bash johndoe
# passwd johndoe

现在,您可以安全地从系统中删除 stage3 tarball 文件。

# rm /stage3-*.tar.bz2*

从这里开始,事情变得稍微复杂一些,并且它们严重依赖于您的特定硬件。如果你想要一个类似于我们在 Arch Linux 中设置的场景,第一步是为 X.org 安装一个视频驱动。但这就是事情变得混乱的地方,因为根据你的显卡,emerge 会告诉你需要向 use 变量添加一些选项,而这些选项并不总是相同的。因此,您应该在/etc/portage/make.conf文件中添加这些变量,并添加一对新的变量来定义输入设备和视频卡。在这种情况下,让我们假设你有一张英特尔卡:INPUT_DEVICES="evdev synaptics"VIDEO_CARDS="intel"。而且越来越好;在这之后,你可能需要重新编译你的内核,并(等待它)更新你的整个系统,因为使用变量的变化(这可能需要一段时间!).最后,安装 X.org 服务器。作为一份粗略的简历,

# emerge --ask x11-drivers/xf86-video-intel

# genkernel all
# emerge --ask x11-base/xorg-server

接下来,让我们安装一个显示管理器。在这种情况下,尽管它已经过时了,我还是选择了 Slim,因为它很轻便,编译起来花费的时间更少。接下来,让我们安装一个平铺窗口管理器,真棒 WM。但是不要忘记,您还必须配置它们;为此,请查看文档。然后你应该初始化你的显示管理器,得到一个登录屏幕(图 12-8 ),最后登录得到窗口管理器(图 12-9 )。

A367684_1_En_12_Fig9_HTML.jpg

图 12-9。

The Awesome WM window manager in Gentoo

A367684_1_En_12_Fig8_HTML.jpg

图 12-8。

The Gentoo Slim login manager

# emerge --ask x11-misc/slim
# vi /etc/conf.d/xdm
# cat /etc/conf.d/xdm
DISPLAYMANAGER="slim"
# rc-update add xdm default
# emerge --ask x11-wm/awesome
$ mkdir -p ∼/.config/awesome/
$ cp /etc/xdg/awesome/rc.lua ∼/.config/awesome/rc.lua
# emerge --ask xterm
# emerge --ask feh
# /etc/init.d/xdm start

要得到一个合理的系统还有很多事情要做,所以要做好日常工作的准备。以这种速度,我至少需要另一章来涵盖所有这些。

如果你第一次失败了,没有得到一个工作的 Gentoo 系统,也不用担心;很正常。有很多事情要考虑;像打字错误这样简单的事情可能会使系统无法启动。这基本上是几年前 Linux 在几乎每个发行版中的安装方式,也是如此多关于 Linux 苛刻的谣言和神话的起源。如果你读了前面的章节,你已经知道以这种方式安装 Linux 和安装一个像 Ubuntu 这样的用户友好的发行版有很大的不同。但是我相信你也已经意识到,你可以从像 Gentoo 或 Arch 这样的高级发行版中得到的控制和定制水平与你从像 elementary OS 这样的发行版中得到的相差甚远。

保持

在 Gentoo 中,所有必要的维护都是通过 Portage/emerge 工具完成的。作为一个滚动版本,你可以保持它永久更新。基本上你不需要用传统的方式升级。

更新和管理应用程序

尽管我将向您展示执行这些任务的简单方法,但是请注意 Portage 是一个非常强大的工具。它让你完全控制如何编译和安装每个包。还有其他方法可以做到这一点,只是命令略有不同。如果你想使用这个发行版,你需要通过 Gentoo 的文档来熟悉这个工具。正如你已经知道的,要管理 Portage,你需要使用 emerge 工具和很大的耐心。

使用 emerge 安装应用程序可以像这样简单:

# emerge firefox

但通常情况下,最好先搜索应用程序,然后按照以下方式安装:

# emerge --search firefox
# emerge --ask www-client/firefox-bin

如果您想删除软件包:

# emerge --unmerge firefox

要更新你的系统,也很简单。首先,同步运输树。然后,启动自动更新。

# emerge --sync
# emerge --uD world

我提到过,你可以用类似于舷窗的图形工具来完成所有这些,但是通常那些愿意从命令行安装这个发行版的人是最不愿意在以后使用图形工具来维护它的。选择 Gentoo 的用户通常追求完全控制和细粒度设置。舷窗是一个非常好的工具,但它无法与 emerge 竞争。

升级

和 Arch Linux 一样,升级 Gentoo 对传统发行版来说有着完全不同的意义。尽管软件包总是在更新,但发行版的核心迟早会有变化。Arch 有一种特殊的方法来实现这一点:当做出一个更改时,它会被宣布,并给出关于必须做出的更改的说明(通常是手工操作)。这种方式有很大的不便,因为如果您让系统长时间无人管理,如果不进行全新安装,重新构建这些更改可能会非常痛苦,甚至是不可能的。换句话说,Arch Linux 不等人。如果你想更新它,你必须保持速度。

但是 Gentoo 非常擅长这个。它以一种聪明的方式解决了这个问题,让你可以按照自己的节奏顺利地进行“升级”。完成这项工作的工具是“概要文件”,如果您还记得“安装”一节中的话,它也用于确定您想要以某种方式构建的系统的类型。另外,请记住,新的 Gentoo 版本每周发布一次,其中一些版本会带来新的概要文件。当一个新的版本带有一个新的概要文件时,您可以选择迁移到新的概要文件或者只执行包更新。但不要误会我的意思;这些迁移可能很容易,也可能是一项艰巨的工作。您可以安全地忽略一个配置文件迁移,在它被否决后,执行该任务。这不是一个完美的解决方案,但至少是一个解决方案。你可以让一个系统长时间无人管理,然后通过耐心、时间、奉献和关心,你可以得到一个更新的系统,而不必进行全新的安装。建议你看看文档,对这个有个完整的了解(这是个小谎言;你永远不会真正理解这些事情,直到你亲自去做。

利弊

下面的列表是我个人认为 Gentoo Linux 发行版的优点和缺点。这件事总有讨论的余地,但我已经尽可能客观了。

赞成的意见

  • 这是一个滚动发布的发行版,所以它总是处于最前沿。
  • 它有很棒的文档。
  • 它有一个很好的、有用的高级用户社区。
  • 您可以编译针对您的硬件和需求优化的包。
  • 它完全可定制,提供惊人的灵活性和全面控制。
  • 它有一个令人震惊的软件包管理器,Portage。
  • 它非常注重安全性。虽然这取决于你,但你有工具和文档。
  • 这是一个原始的分配,而不是一个衍生物。
  • 它支持多种架构,甚至是过时的架构。
  • 如果你坚持使用这个发行版,你会学到很多关于 Linux 的东西。

骗局

  • 编译几乎所有的包可能是浪费时间。
  • 由于现代硬件,性能增益可以忽略不计(也有例外)。
  • 它不是用户友好的。这是所有发行版中要求最高的一个。
  • 维护它需要时间和奉献。
  • 它没有商业支持。
  • 它不注重审美。
  • 本质上是不稳定的(除非你学得足够多,有很多空闲时间)。

摘要

这里你看到了一个允许最大程度定制的发行版。要走得更远,你只能再走一步:构建你自己的发行版。Gentoo 是一个面向高级的、有耐心的、非常细心的用户的发行版。这是一个例子,说明 Linux 可以以必要的知识为代价为用户提供自由和力量。

在下一章中,你将会看到一个历史悠久的发行版:Slackware。它以苛刻和不切实际而闻名,但它和 Gentoo 有一些共同点。

十三、Slackware

Slackware 是现存的最古老的发行版。它比 Debian 早几个月诞生,看着两者的演变,这似乎很难相信。很多人认为 Debian 太保守了;这些人会称 Slackware 为恐龙。是的,Slackware 这些年来没有太大的变化,但是 Slackware 社区非但没有感到羞耻,反而为此感到自豪。Slackware 号称是最“像 Unix”的 Linux 发行版。

历史

Slackware 和 Debian 不仅仅分享了作为 Linux 发行版的悠久历史;它们还有一个共同的起源:SLS(软着陆 Linux 系统)发行版。虽然 Debian 是作为 SLS 的一个更好的替代品而创建的,但是 Slackware 是它的一个发展。

1993 年,Patrick Volkerding 是明尼苏达州立大学 MSUM 分校的一名学生,当时他的人工智能教授让他在计算机实验室安装 SLS,以便从其更好的 LISP 解释器中受益。Volkerding 照做了,然后他改进了发行版本身,修复了 bug,并在实验室为将来的安装做了修改。后来,看到 SLS 发行版没有任何新的发布,错误仍未修复,互联网上对好产品的需求很大,他问是否有人对他的工作感兴趣。在许多积极的回应和大学朋友的鼓励下,他在 1993 年 7 月 17 日上传了第一个 Slackware 1.00 版本到大学的一个匿名 FTP 服务器上。

时至今日,Volkerding 仍然是 Slackware 的主要开发者;他被称为“男人”或 Slackware 的 BDFL(仁慈的终身独裁者)。Slackware 仍然是一个小而流行的发行版。

Note

Slackware 名称的起源来自一个与 slack 术语相关的内部笑话,以此向 SubGenius 教会(当时在互联网亚文化中非常流行的模仿宗教)的名义领袖 J.R. "Bob" Dobbs 致敬。它从来没有打算成为发行版的最终名称;当他第一次发布这个发行版时,他保留了这个名字,目的是没有人会把它看得太重。

哲学

如果没有 UNIX 和 Linux 本身的历史知识,Slackware 的哲学是很难理解的。虽然该发行版声称在简单性、稳定性和功能(以及用户友好性)方面是保守的,但来自友好的操作系统/发行版的新用户可能会对此有非常不同的看法。首先,大多数人不会认为 Slackware 是一个友好的发行版;事实上,恰恰相反。他们会发现很难认为它简单而强大,因为它缺乏跟踪包的依赖性。但如果从 Slackware 的作者和社区的角度来看,似乎更容易理解。他们不想像当前的 BSD 那样偏离最初的 UNIX 设计太远,原因很简单,也很有说服力。一个有经验的 UNIX 用户会觉得使用 Slackware 就像在家里一样,而且她很容易就能使用它。不管你是否同意这个观点,你必须认识到时间支持他们的决定;其他友好的发行版早就消失了。

因此,Slackware 试图遵循 KISS 原则(在第十一章中解释),在其核心设计中保持保守,并且不在其包中引入变化。广义地说,Slackware 是一个带有 Linux 内核的 BSD。在追求简单和纯粹过程中,每个包都是独立配置的;没有全局配置。大部分配置是通过简单的文本文件完成的。默认情况下,没有预定义任何内容;你应该知道你在做什么,你想要什么。

不要误会我;对其核心设计持保守态度并不意味着它缺乏创新或必要的改变(比如对 64 位架构的支持)。Slackware 试图与时代同步,并支持“最近”的创新,如 UEFI 或 Btrfs 文件系统,当新版本出现时,软件包都是非常新的。但是通常 Slackware 遵循“如果它没有坏,就不要修理它”的座右铭

发行版选择标准

现在你已经了解了一些 Slackware 的历史,让我们来看看这个特殊的发行版在第二章的选择标准上表现如何。

目的和环境

Slackware 是一个通用发行版,有一个适用于所有用途和环境的独特版本。尽管如此,您仍然可以安装两个不同的风格分支:稳定版本和“当前”版本,后者是发行版的开发树。

支持

虽然 Slackware(和 Volkerding 本人)是由商店的销售支持的,并且它曾经有一个商业发行版(很短的一段时间),但它不是一个纯粹的商业发行版(你仍然可以免费获得),它根本没有商业支持。支持只来自它的开发者和它的小而忠诚的社区。获得社区支持的方式如下:

用户友好性

Slackware 不适合初学者。虽然它比 Arch 或 Gentoo 更容易,但它不是一个用户友好的发行版。您仍然需要了解很多关于命令行和 Linux 本身的东西,并且您应该对 Slackware 如何管理其包感到满意。传统上,Slackware 用户被定型为典型的“长胡子”系统管理员等。虽然 Slackware 用户通常在技术上很精通,但这并不像描绘的那样困难。例如,许多用户在使用 Gentoo 时付出了更多的努力。

稳定性

Slackware,由于其固有的简单性、成熟的设计和频繁的发布,是一个非常稳定的发行版。它遵循标准的发布模型,没有固定的时间表;当一个新的版本准备好了,测试好了,足够稳定了,它就出现了(这是众所周知的)。因此,当前的版本 14.1 是 2013 年发布的,软件包已经过时。未来 14.2 版本的测试版目前正在开发中,它将会有新的软件包。一些人更喜欢使用“当前”开发版本作为他们的日常系统,因为这一点。而对于扶持部分,官方没有政策;有时,老版本会突然停止支持。

硬件支持

与 Arch 和 Gentoo 一样,您必须愿意学习如何支持不包含在内核或官方包/驱动程序中的硬件,并且非常依赖第三方维护的构建/二进制文件。

美学

除了休闲服商店的 DVD 包装和商品销售之外,没有对美学的关注。

桌面环境

Slackware 事实上的官方桌面是 KDE,但它也给你提供了安装 Xfce 和几个窗口管理器(Fluxbox,Blackbox,WindowMaker,FVM2 和 TWM)的选项。

初始化系统

Slackware 使用的 init 系统是一个基于 rc 文件的 BSD 风格的系统,它也与传统的 System V (sysv)脚本兼容。未来没有迁移到 systemd 的计划;社区中很大一部分人反对将来在发行版中实现 systemd。

包装管理系统

Slackware 有一种非常特别的管理软件包的方式。这些包是简单的 tarballs(压缩或未压缩),其中的文件通常被简单地提取到它们各自的路径中,然后执行几个doinst.sh脚本。根本没有对依赖关系的管理;你应该照顾它。Slackware 中有两个管理包的官方工具:pkgtoolsslackpkg。后者是最新的一个,它可以管理网络包,而不仅仅是像pkgtools这样的本地包。

有几个非官方的 Slackware 软件包库;SlackBuilds.org 在 http://slackbuilds.org 可能是最受欢迎的。还有几个非官方的工具来管理包,像swaretslapt-get,它们都有依赖解析。这些存储库中的包可以从源代码构建;编译它们,并允许您创建自己的包。事实上,这些包附带了一个构建它们的方法(类似于 Gentoo 的 ebuilds 或 Arch 的 pkgbuild),SlackBuilds 库就是基于此。

体系结构

Slackware 正式支持 32/64 位的 Intel/AMD 架构,但也有到 ARM 和 S/390 架构的端口。

安全性/匿名性

与 Arch 或 Gentoo 一样,与其他发行版相比,安全性更多地取决于用户(尽管用户总是任何操作系统中最薄弱的环节),但官方软件包基数小,软件包的稳定性和年龄有助于控制漏洞。此外,软件包总是更新,以修复安全漏洞;它们是通过安全邮件列表公布的。Slackware 社区的很大一部分在技术上是内行,所以他们可以比大多数人更好地处理这些问题。

原则和道德

没有任何关于原则和道德的书面记录;你应该按照自己的意愿来管理它们。内核中有非自由二进制 blobs,一些非自由软件,没有什么可以阻止你在你的发行版中安装第三方软件包。

现场 CD

这个发行版没有官方的 Live CD 镜像,但是 Eric Hameelers(也称为 AlienBOB,Slackware 最伟大的贡献者之一)目前正在致力于一个项目,希望有一个 Slackware Live CD 版本。它可能会与 Slackware 14.2 一起发布,目前处于测试状态。

专业认证

Slackware 没有具体的专业认证。

装置

安装 Slackware 有点尴尬。它不像 Debian 或 Ubuntu 这样友好的发行版,也不像 Arch 或 Gentoo。它处于两种经历的中间。它使用了一个安装工具,有助于简化大部分安装过程,但是它需要在开始和结束时使用命令行。当它使用 ncurses 工具(一个基于文本的图形环境)来安装它时,它让我想起了 Arch 安装。当然,这让我想起了以前,几乎所有的 Linux 发行版都有非常相似的安装方式。换句话说,Slackware 比 Gentoo 或 Arch 更容易安装,但它仍然是一种老式的体验,而且对初学者来说很苛刻。

首先获取 ISO 镜像文件来安装发行版。在 www.slackware.com/getslack/ 访问 Slackware 网站的“获取松弛”部分(见图 13-1 )。在这里,你必须选择是去商店还是购买物理 DVD/CD 来安装发行版,或者通过 BitTorrent 或 Slackware mirror 下载 ISO 映像。我一般会选择走最流行的路径,就是从镜像下载一个 ISO 镜像。这样做,并点击镜像链接重定向到镜像页面(如图 13-2 所示)。

A367684_1_En_13_Fig2_HTML.jpg

图 13-2。

The mirrors section of the Slackware web site

A367684_1_En_13_Fig1_HTML.jpg

图 13-1。

The section of the Slackware web site where you can obtain the ISO image

在这里,您可以从“可用镜像”中选择一个镜像,或者直接从“ISO 镜像”中获取 ISO 镜像这两个链接都显示在侧边菜单中。如果你跟随后一个链接,你会在主镜像的目录树中结束,如图 13-3 所示。最新版本是 2013 年 11 月的 z4.1,有 32 位和 64 位版本。转到 64 位版本所在的最后一个文件夹,下载其中的 DVD ISO 映像文件。

A367684_1_En_13_Fig3_HTML.jpg

图 13-3。

The directory tree in the main Slackware mirror

当你第一次从 ISO 镜像启动时,你会看到如图 13-4 所示的屏幕。这是一个简单的文本屏幕,上面有如何启动系统的说明。如果您不想使用任何选项,您必须按 Enter 键并等待两分钟才能启动。

A367684_1_En_13_Fig4_HTML.jpg

图 13-4。

The first screen after the boot from the Slackware ISO image

几秒钟后,它会询问你键盘布局(如图 13-5 )。如果您使用不同于 US ANSI 的布局,请按 1 并按照说明操作(它将显示一个菜单,您可以在其中从各种选项中选择布局)。只需按回车键并继续。

A367684_1_En_13_Fig5_HTML.jpg

图 13-5。

The option to select a different keyboard layout

此后,您将直接进入终端会话,在这里您必须以 root 用户身份登录,无需密码(如图 13-6 所示)。在此过程中,在登录之前和之后,将为您提供基本说明和您应该遵循的步骤。首先要做的是在启动安装工具之前准备好磁盘。说明书建议使用像fdiskgdisk这样的经典工具,但我将使用parted。我喜欢使用这个工具,因为它可能是最通用的工具,因为它支持 MBR 和 GPT 分区。同样,我使用 2TB 的磁盘,并使用 MBR 分区表创建一个简单的分区方案(//home)。注意内核版本太旧了(3.10.17 ),同样的情况也发生在一些工具上,比如不能使用选项--pathslsblk

A367684_1_En_13_Fig6_HTML.jpg

图 13-6。

The terminal login prompt where you end up after boot up

# parted /dev/sda
(parted) mklabel msdos
(parted) mkpart pri ext4 1MB 50GB
(parted) mkpart pri ext4 50GB 100%
(parted) set 1 boot on
(parted) u GiB
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 2199GB
Sector size (logical/physical): 512B/512B
Partition table: msdos
Disk Flags:

Number   Start   End     Size    Type     File system  Flags
 1       1049kB  50.0GB  50.0GB  primary  ext4         boot
 2       50.0GB  2199GB  2149GB  primary  ext4
(parted) q
# lsblk
NAME       MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda          8:0    0     2T  0 disk
!─sda1       8:1    0    50G  0 part
`sda2        8:2    0     2T  0 part
sr0         11:0    1   2.3G  0 rom

完成磁盘分区后,您可以运行setup程序,这将帮助您几乎完成安装的其余部分。一个基于文本的界面(使用 ncurses 库)将会出现,如图 13-7 所示。

A367684_1_En_13_Fig7_HTML.jpg

图 13-7。

The setup tool to help you with the installation

这是一个有多个选项的菜单,帮助条目是第一个。此帮助主要为您提供安装的第一部分(准备磁盘)的说明,您已经完成了安装。如果您已经设置了键盘布局,并且没有使用交换分区,您可以放心地忽略下面两个选项,就像本例一样。所以直接去目标入口,按回车键。在这里你可以看到可用的分区(如图 13-8 )。选择它们中的每一个,工具将要求你格式化它(图 13-9 ),然后选择一个可用的文件系统(图 13-10 )。为两个分区选择 quick format 和 ext4 文件系统。对于第一个分区,该工具将假设它是/分区,对于最后一个分区,您必须输入挂载点(在本例中是/home)。最后,它显示了磁盘分区如何格式化和挂载的摘要,如图 13-11 所示。

A367684_1_En_13_Fig11_HTML.jpg

图 13-11。

The summary of the current status of the disk partitions

A367684_1_En_13_Fig10_HTML.jpg

图 13-10。

Select the file system of the partition

A367684_1_En_13_Fig9_HTML.jpg

图 13-9。

Choose the type of formatting

A367684_1_En_13_Fig8_HTML.jpg

图 13-8。

The current partition on the disk

下一步,该工具将询问您使用什么介质来安装 Slackware(图 13-12 )。在这种情况下,选择第一个选项。选择后,它会要求您自动或手动扫描介质;选择自动。这需要一些时间。

A367684_1_En_13_Fig12_HTML.jpg

图 13-12。

Select the installation media

一旦它扫描了介质并知道了您可以安装的软件包,就会要求您选择要安装的软件包。如果你有疑问,最好使用默认选中的或者全选。无论如何,分区足够大,你不需要太担心这个。你可以在图 13-13 中看到这一点。按确定。

A367684_1_En_13_Fig13_HTML.jpg

图 13-13。

Select the packages that you want to install

下一个屏幕要求您选择想要如何安装软件包(图 13-14 )。前两个条目是完全自动的,不需要您的干预;其余的用于选择你想要安装的软件包。如果你不确定安装哪些包,我建议你选择第一个选项,这也是最快的一个。然后按确定。软件包的安装需要几分钟时间(在我的系统中大约需要 9 分钟)。

A367684_1_En_13_Fig14_HTML.jpg

图 13-14。

The packages installation mode selection

安装完所有软件包后,它会建议您创建一个 u 盘来引导系统(如果您的系统能够这样做的话)。参见图 13-15 。如果将引导加载程序写入磁盘的过程失败,或者如果您不想在磁盘上安装引导加载程序,而想从 u 盘引导,这将非常有用。这是你的选择;在我的例子中,我跳过了这一步。

A367684_1_En_13_Fig15_HTML.jpg

图 13-15。

Create an optional USB stick to boot the system

下一步是在您的硬盘上安装引导加载程序(图 13-16 )。要安装的工具是 LILO,这是一个传统的旧引导加载程序,现在已经停产;几乎没有其他发行版继续使用它。(但我们必须考虑到 Slackware 14.1 是 2013 年的,而 LILO 是在 2015 年 12 月停产的,所以鉴于 Slackware 的保守性质,这是可以理解的。)无论如何,LILO 毫不费力地完成了它的工作,所以让我们把它安装到硬盘上。我选择自动方法,因为它在大多数时候都很有效。接下来,你可以在几个屏幕分辨率之间进行选择(图 13-17);在几乎所有的现代系统中,最后一个 1024x768x256 应该可以很好地工作。它将询问您关于 LILO 的另一个问题,即您是否希望添加任何可选参数,以便在引导时传递给内核,但是将其留空并继续。

A367684_1_En_13_Fig17_HTML.jpg

图 13-17。

Choose a screen resolution to use with LILO

A367684_1_En_13_Fig16_HTML.jpg

图 13-16。

The LILO boot loader installation step

接下来,它将询问您是否想在文本控制台(命令行)中使用 UTF-8 模式,并警告您可能的冲突。如果您不确定,请选择“否”,但是我用 UTF-8 测试过,到目前为止没有发现任何问题。因此选择是并继续(图 13-18 )。

A367684_1_En_13_Fig18_HTML.jpg

图 13-18。

Choose if you want to use UTF-8 in the text console

最后,它会问你在哪里安装 LILO。选择 MBR 将其安装在硬盘的主引导记录中,然后继续。下一个屏幕设置您将要使用的鼠标。大多数人都有 USB 鼠标,所以这是一个安全的选择;如果您仍在使用 PS/2 鼠标,并且您的鼠标不在列表中(这很有可能),则“ps2”条目在这里是一个安全的选项。我选择“usb”(见图 13-19 )并按下 OK。现在它会问你是否要安装gpm程序才能用鼠标在控制台中复制粘贴;选择是并继续。

A367684_1_En_13_Fig19_HTML.jpg

图 13-19。

Select which mouse type you want to use

然后它会问你是否要配置你的网络。选择是,它会要求你设置一个主机名(图 13-20 和一个域名(图 13-21 )。输入您希望用作系统名称的主机名,如果您不想设置域(您可能不想设置),请输入一个空格。

A367684_1_En_13_Fig21_HTML.jpg

图 13-21。

Set the domain of your system

A367684_1_En_13_Fig20_HTML.jpg

图 13-20。

Set the hostname of your system

现在是时候在网络上设置系统的 IP 地址了(见图 13-22 )。如果您想要一个固定的 IP 地址,请使用第一个选项。如果您有 DHCP 服务器,请使用第二台服务器(默认)。最后,如果你有无线适配器,使用最后一个。我选择默认。然后它会问你一个 DHCP 主机名;您通常不需要这个,所以将其留空并继续。

A367684_1_En_13_Fig22_HTML.jpg

图 13-22。

Configure the IP address of your system

最后,它会显示您的网络配置摘要(参见图 13-23 )。如果一切正常,进行下一步。

A367684_1_En_13_Fig23_HTML.jpg

图 13-23。

The network configuration summary

现在你必须选择你想在启动时启动的服务(见图 13-24 )。通常,如果您不想在您的系统中使用任何服务器(比如桌面系统),默认选择就可以了。但是如果你想启动bind拥有一个本地 DNS 服务器作为本地缓存来更快的导航或者一个用于打印机的 CUPS 服务器等等。,在此做出选择。如果您不确定,请使用默认设置;您可以稍后再设置。对于询问您是否要设置控制台字体配置的问题,选择否并继续。

A367684_1_En_13_Fig24_HTML.jpg

图 13-24。

Select what services to start at boot time

现在你必须配置时钟(图 13-25 )和时区设置(图 13-26 )。我要给你一个建议,但首先你要知道你的系统中有两个时钟:硬件时钟和软件时钟。这些在很久很久以前是一样的东西,但是现在它们是分开的。第一个在 BIOS/UEFI 中设置(也可以从操作系统中设置),第二个在您的操作系统中设置。硬件时钟是系统启动时操作系统采用的基准,然后操作系统使用时区信息为您提供正确的本地时间。如果您的操作系统配置正确,它还会定期与互联网服务器上的时间同步(通过 NTP,网络时间协议)。因此,您可以将硬件时钟设置为本地时间或 UTC(协调世界时)。我的建议是,你总是把你的硬件时钟设置成 UTC 时间,然后把你的 OS 时间函数设置成你所在的时区。这样做可以在将来为您省去一些麻烦(比如一年两次忘记为夏令时事件更改时钟),或者如果您在同一台机器上使用多个非 Window 操作系统或发行版。Windows 对这个话题非常挑剔,它遵循一种与几乎所有其他操作系统不同的方法;Windows 总是假设您的 BIOS 设置为您的本地时间。如果是这种情况,即你的 PC 上同时安装了 Windows 和 Linux,我建议你使用本地时间作为硬件时钟。

A367684_1_En_13_Fig26_HTML.jpg

图 13-26。

Select your time zone

A367684_1_En_13_Fig25_HTML.jpg

图 13-25。

The clock setting (use UTC)

下一步是选择桌面环境或窗口管理器作为默认图形环境(图 13-27 )。你可能想选择 KDE 桌面环境,但我将选择 Fluxbox 来展示一个窗口管理器,它不同于你在本书中已经看到的其他窗口管理器。

A367684_1_En_13_Fig27_HTML.jpg

图 13-27。

Select a default DE or WM as your graphic environment

您现在必须设置 root 密码。请记住,始终为该帐户创建一个非常强的密码。如图 13-28 所示。

A367684_1_En_13_Fig28_HTML.jpg

图 13-28。

Set a strong password for the root account

就这样!您已经使用安装工具完成了工作。该工具将显示一条消息告诉您这一点。按 OK,将带您进入工具的主菜单(如图 13-7 所示)。选择 Exit,按 OK,然后在控制台中输入正确的命令来重新启动系统:

# reboot

首次启动新的 Slackware 系统时,您将看到如图 13-29 所示的屏幕。

A367684_1_En_13_Fig29_HTML.jpg

图 13-29。

The LILO boot loader of your new Slackware system

您可以等待两分钟自动引导,也可以按 Enter 键开始引导系统。无论哪种方式,您都将进入一个终端会话,您必须以 root 用户身份登录。在给你看了一个 cookie fortune 消息(很久以前很多 Linux 发行版默认安装的一个包)后,你会得到一个 root 提示(图 13-30 )。请注意,默认情况下,您不会在 windows 环境中启动;你现在可以用命令startx来做这件事,但是你应该先做别的事情。也许你注意到你从来没有被要求创建一个用户帐户。您应该现在创建一个用户帐户,这样您就不必在默认情况下使用 root 帐户(永远不要这样做)。使用adduser脚本来实现这一点:

A367684_1_En_13_Fig31_HTML.jpg

图 13-31。

The Fluxbox window manger with Firefox and Emacs

A367684_1_En_13_Fig30_HTML.jpg

图 13-30。

The first prompt in a fresh installed Slackware system Notice that you do not start in your windows environment by default; you could do it now with the command

# adduser
Login name for new user []: johndoe
User ID ('UID') [defaults to next available]:
Initial group [users]:
Additional UNIX groups:
...
Press ENTER to continue without adding any additional groups
Or press the UP arrow to add/select/edit additional groups
: audio cdrom plugdev video power
Home directory [ /home/johndoe]:
Shell [/bin/bash]:
Expiry date (YYYY-MM-DD) []:
...
Creating new account:
...
Full Name []: John Doe
Room Number []:
Work Phone []:
Home Phone []:
Other []:

...
New password:
Re-enter new password:
...
Account setup complete
# exit
myslack login: johndoe
password:
$

最后,在您使用新用户帐户登录后,您可以使用命令$ startx启动窗口管理器。Fluxbox 是一个非常简单的窗口管理器,但它可以用于 Firefox 等现代应用程序或 Emacs 等旧应用程序(见图 13-31 )。当然,您可以对其进行配置,使其更加优雅。

这是一个非常基本的系统,你可能仍然需要安装一些软件包和做一些配置,以拥有一个合理的系统每天工作。

保持

像 Slackware 这样的发行版中的维护任务是通过命令行完成的。基本上你使用相同的工具来执行所有的操作:pkgtools或者slackpkg

管理应用和更新

三是管理软件包的两个官方工具。我会告诉你如何用slackpkg来做。传统工具pkgtool也可以通过交互式菜单(见图 13-32 )或通过命令使用。

A367684_1_En_13_Fig32_HTML.jpg

图 13-32。

The pkgtool interactive menu

要安装一个包,使用以下代码(不要忘记通过在/etc/slackpkg/mirrors中取消注释来选择一个镜像):

# slackpkg update
# slackpkg search firefox
# slackpkg install mozilla-firefox-24.1.0esr-x86_64_1

要删除它:

# slackpkg remove mozilla-firefox-24.1.0esr-x86_64_1

要更新软件包:

# slackpkg upgrade mozilla-firefox-24.1.0esr-x86_64_1

不要忘记,这个工具不管理依赖项,在使用一个已安装的包之前,由您来确保它们已安装。

升级

Slackware 需要在每次发布新版本时进行升级(使用当前分支或选择全新安装),因为它不遵循滚动发布方案。您可以使用slackpkg进行此操作:

# slackpkg update
# slackpkg install-new
# slackpkg upgrade-all
# slackpkg clean-system

升级软件可能因版本而异,因此执行此操作的最佳方式是遵循每张 DVD/CD 中的文件升级说明。根目录下的 TXT。这里有一系列的命令可以帮助你轻松地做到这一点。我建议你在另一个控制台中完成它。按 CTRL+ALT+F2 可以在第一个控制台中执行步骤时进行观察。

# mkdir /mnt/cdrom
# mnt /dev/sr0 /mnt/cdrom
# cd /mnt/cdrom
# less UPGRADE.txt

利弊

以下是我个人认为 Slackware 发行版的利与弊。在这个问题上总是有讨论的余地,但是我已经尽可能地保持客观。

赞成的意见

  • Slackware 是一个非常稳定的发行版。
  • 它提供了一个非常简单的类似 UNIX 的设计。
  • 这是一个原始发行版。
  • 它是高度可配置的。
  • 它通过脚本和文本文件提供非常简单的配置。
  • 包几乎是纯上游的,没有修改。

骗局

  • 包管理器不解析依赖关系。
  • 这不是一个用户友好的发行版。
  • 两次发布之间有很长时间,所以它有过时的软件包。
  • 如果你想要额外的包,你必须使用第三方仓库。
  • 它没有商业支持,社区也很小。
  • 它的文档很差,而且已经过时了。
  • 没有 Gnome 支持。
  • 只有过时的 LILO 作为引导加载程序。

摘要

Slackware 是最后一个适合高级用户的发行版,至少在传统意义上是这样。Slackware 是一个老牌发行版:保守,有点苛刻,然而经过这么长时间,尽管困难重重,仍然存活并吸引了新用户,同时保持了一批非常热情和忠诚的用户。

在下一章,你将会看到一个引入新范例的发行版。它可能是 Linux 发行版的未来。NixOS 为发行版的发展提供了一些有趣的新想法,这是 Linux 发行版前沿设计的一个例子。

十四、NixOS 操作系统

NixOS 是一个非常不同的 Linux 发行版,与你现在所看到的不同。事实上,这是最先进的发行方式,领先于一切。它仍然不成熟,它还在继续发展,它仍然有它的怪癖,没有人能说它最前沿的技术是否会被采用作为 Linux 的未来。还有一些其他的提议(如 GuixSD、GoboLinux 和 Qubes)也试图有所作为,探索新的领域。我包括 NixOS,因为它有非常有趣的概念。它已经被大约 5000 名专业人员采用,作为他们的日常工作发行版;但是,在和别人比较的时候,给它一个宽。

历史

2003 年,Eelco Dolstra 是乌得勒支大学的一名荷兰学生,他在 TraCE(透明配置环境)项目上进行合作,这是他博士研究的一部分。他开始开发 Nix 包管理器,这后来成为他博士论文 1 的核心,也是 NixOS 发行版本身的核心。在同一个 TraCE 项目下,另一个合作者和学生 Armijn Hemel 后来开发了 NixOS 的第一个原型,基于 Nix 包管理器的 Linux 发行版,作为他硕士论文 2 的一部分。

因此,Nix 是作为学术研究的一部分而创建的,而 NixOS 是作为 Nix 可以用来管理整个 Linux 发行版的概念证明而创建的。Dolstra 还将开发其他工具,如 Hydra,这是一个基于 Nix 的持续集成工具,以及 NixOps,这是一个用于供应和部署 NixOS 机器的工具。

2015 年,作为支持 NixOS 发展的战略,基础设施的成本(Hydra 硬件,AWS 成本)和另一个相关项目,创建了 NixOS 基金会。这个基金会主要由个人捐款支持。

今天,一些开发人员、研究人员、用户和专业人员是 NixOS 发行版的一部分,但它正在稳步增长。也许最容易接受的用户是 Haskell(一种纯函数式编程语言)开发人员;他们也喜欢功能驱动的 Linux 发行版的想法。

哲学

NixOS 是围绕其包管理器 Nix 构建的发行版,它是如何实现纯功能软件部署模型的概念证明。这是什么意思?解释它的最好方式是使用作者自己的话:

Existing packages and system configuration management tools are influenced by imperative model, in which system management actions such as package upgrade or changes to system configuration files are stateful: they destructively update the state of the system. This will lead to many problems, such as the inability to roll back changes easily, the inability to deploy multiple versions of packages in parallel, the inability to replicate the configuration definitively on another machine, or the inability to upgrade the system reliably. In this paper, we show that we can overcome these problems by moving to a purely functional system configuration model. This means that all static parts of the system (such as software packages, configuration files and system startup scripts) are built by pure functions and immutable, and are stored in a way similar to the heap in pure function language. We have implemented this model in NixOS, an important Linux distribution, which uses Nix package manager to build the whole system configuration from a modular and purely functional specification. —Eelco Dolstra, Andres Loh and Nicolas Pierron, "NixOS: A Linux distribution with pure functions", Cambridge University Press, 2010.

因此,NixOS 的理念是证明这个目标是可以实现的,成为 Nix 开发和概念的活实验室。Nix 带来的一系列优势也定义了这种分布,并使其独一无二;这将在“包管理系统”一节中进一步解释。

发行版选择标准

现在你已经了解了一些历史,让我们看看 NixOS 在第二章列出的选择标准上表现如何。

目的和环境

NixOS 是一个通用版本,适用于所有环境。这个版本有两个分支,“稳定”和“不稳定”,后者用于开发。还有针对虚拟化/云环境的 ISO 映像,特别是针对 VirtualBox 和 Amazon EC2。

支持

尽管 NixOS 的社区非常小,但您可以通过多种渠道获得支持:

关于 NixOS 发行版的一点是高级 Linux 用户和专业开发人员的比例比其他发行版社区高得多,主要是因为这些人通常是新技术的早期采用者,就像这个发行版中提供的一样。由于发行版的不成熟,最好的帮助应该来自邮件列表和 IRC 文档和 wiki 中并没有涵盖所有内容,也没有更新所有内容。

用户友好性

NixOS 不是一个用户友好的发行版;您必须知道如何处理命令行及其软件包管理器的特性,并且您必须学习如何编写声明性配置文件来安装它。事实上,许多新用户通过复制和修改另一个用户的另一个配置文件开始使用这个发行版。我将更进一步:我认为它甚至不是一个对高级 Linux 用户友好的发行版,因为他们必须改变他们对 Linux 的看法,并学习如何遵循 NixOS 指南。

稳定性

NixOS 到底稳定不稳定?这个问题很难回答。一方面,它是一个不成熟的、仍在发展的发行版,有一些缺陷,一个小社区远远没有达到必要的临界质量,这意味着主要开发人员承担了太多的工作。另一方面,它是一个允许多种配置、多种包版本和回滚能力的发行版,所以如果更新或设置出现问题,您总是可以回到更安全和稳定的先前配置。此外,您只能在您的用户环境中更新或安装软件包,而不会影响全局环境(由 root 管理)。因此,除了不可避免的错误和一些不便之处,您有很大的灵活性来实现一个非常稳定的系统。最后,你甚至可以在稳定分支和不稳定分支之间选择。

NixOS 遵循一个标准的发布模型,新版本通常在经过测试并且足够稳定时出现,没有固定的时间表。然而,现在的目标是遵循一个更类似于 Ubuntu 的发布模式:每六个月发布一个新版本。目前,NixOS 已经发布了五个稳定的版本,它们遵循类似于 Ubuntu 的编号方案:year.month codename。上一次发布是 16.03 动车组。

硬件支持

NixOS 提供硬件检测。它支持内核支持的硬件,它支持一些无线网卡,你可以用 CUPS 做打印机,但是其他的东西可能不支持。NixOS 相对较新,还在开发中,而且它的社区很小(安装基数也很小),所以当涉及到某些硬件支持时,用户需要自己保护自己。

美学

考虑到围绕这个发行版的社区的规模及其空白的本质,除了 Grub、桌面管理器和桌面环境中常见的徽标和背景之外,没有努力关注发行版的美学是可以理解的。

桌面环境

像 Arch 或 Gentoo 一样,当涉及到桌面环境时,您有很多选择。你可以选择传统的桌面环境,如 KDE、Gnome 或 Xfce,或者窗口管理器,如 Awesome、Xmonad、i3、IceWM 等。默认的“官方”版本是 KDE,因为和 Nix 一样,它是跨平台的。

初始化系统

NixOS 从 2014 年 12 月开始使用 systemd 作为它的 init 系统。此前,它使用的是 System V。

包装管理系统

在像这样的发行版中,它只是作为包管理器的试验场而构建的,一切都以 Nix 开始和结束。而 Nix 是一个非常特殊的包管理器,是一个非常独特的概念。外面没有类似的东西(最接近的一个,GNU Guix,其实是基于 Nix 的)。Nix 引入的新范式有许多优点,但也有一些缺点,所以你必须改变对一些事情的思考方式,否则你会多次碰壁,最终会感到沮丧。

首先,在 NixOS 中,一切都由 Nix 管理:内核、系统包、用户包、系统范围的配置文件等等。Nix 使用一种专为它设计的懒惰的纯函数式语言,这种语言基于定义系统构建方式的配置文件以声明方式使用。无论您使用相同的配置构建系统多少次,您总是获得相同的系统状态。

NixOS 在 Nix 存储(/nix/store/)中使用一个加密散列(从用于构建它的输入中获得)作为存储路径和内部引用中使用的唯一标识符来存储每个与其他包隔离的包。用于构建包的 Nix 表达式中的每次变化都会生成另一个散列,因此存储在另一个不同的路径中;这允许同一个包的不同发布和定制版本共存。包/服务的配置文件也是如此,因此您可以在同一台机器上同时保存几个系统配置或状态。

Nix 存储库称为通道,它们包含构建包的方法,称为 nix 表达式(通常是一个. nix 文件、一些脚本和一些辅助文件)和二进制文件(然而,一些包是从源代码构建的)。Nixpkgs 本质上是一个 git 存储库,包含了构建所有官方包的所有 nix 表达式。通道中的预构建包是由 Hydra 生成的,Hydra 是一个基于 Nix 的连续构建系统,当一个包的新版本可用时,它会构建、测试它,如果通过,就发布它。(实际上,并不完全是这样,因为所有的新软件包都必须通过测试才能发布新的渠道版本)。有一个机器场来托管这项服务。官方渠道通常是 Nixpkgs git 存储库的一个标签或分支。稳定通道称为 Nixpkgs 头后几周),不稳定通道称为 nixos-不稳定(延迟几天)。您可以订阅想要使用的频道。

由于这种包/系统管理模型,Nix 为 NixOS 提供了一系列优于普通 Linux 发行版的优势:

  • 可靠的升级:虽然配置保持不变,但您可以安全地升级您的系统,以始终获得相同的结果,就像是全新安装一样。
  • 原子升级:配置中的更改是以事务的方式进行的,因此它们是原子的,并且只有当事务完成时,更改才会被应用。例如,如果升级中断或失败,以前的状态将继续工作。如果您在系统上保留一个有效的配置(比如初始配置),您的系统将总是能够启动。
  • 回滚:您可以随时返回(回滚)到以前的状态,进行全局配置更改或本地用户更改,安装/删除软件包,等等。这是可能的,因为新的配置不会覆盖以前的配置。事实上,您可以在引导系统时从 Grub 菜单中选择想要使用的配置(当然,您也可以在不引导的情况下这样做)。因为配置同时保存在磁盘上,所以这几乎是瞬间完成的,不需要从磁盘上恢复任何东西或者覆盖任何东西。粗略的比较是,它们作为快照而不是备份工作(实际上,它们使用符号链接)。
  • 安全地测试更改:由于回滚功能和同步配置,NixOS 允许您测试(作为一个选项)一个配置,如果不起作用,它不会使它成为默认配置。更好的是,NixOS 有一个选项,允许您在一个虚拟机上测试这个配置,该虚拟机作为一个沙箱工作,包含您以前的系统状态和您想要测试的新更改。这个过程非常高效(它使用 QEMU,但是不在磁盘映像中克隆您当前的系统)。唯一的缺点是,您的数据(您的主分区)不在这个 VM 中。这也有助于您避免在 Grub 条目中进行大量微小的修改。
  • 可复制的系统配置:您可以从一台类似的机器上复制一个配置,并获得相同的系统(显然,除了用户数据和类似/var内容的“可变状态”)。这对于在生产机器上应用更改之前在测试机器上进行更改或者对于部署来说是非常理想的(事实上,有一个专用工具 NixOps 可以用 NixOS 来做这件事)。
  • 具有源代码和二进制文件的混合模型:默认情况下,Nix 从源代码构建包,但是由于编译是一个缓慢的过程,所以当预构建的二进制文件可用时,可以从缓存服务器(其 URL 包含在通道中)下载它们。在稳定分支中,这让您只构建几个包,因此升级或安装系统已经足够快了。但是在当前的分支中,包是最近的包,经常你必须构建太多的包。
  • 一致性:当一个包或配置发生变化时,所有必需的包或依赖项也会被重新构建。内核和模块也是如此(这不是什么新鲜事;你可以在 DKMS 的其他发行版中使用它)。此外,当一个库被更新时,所有使用它的包都被链接到新版本。
  • 多用户包管理:在 NixOS 中,所有用户都可以使用 root 用户安装的包,但是每个用户也可以在自己的配置文件中安装自己的包。这些包仍然在 Nix store 中存储和管理,不同的用户可以拥有同一个包的不同版本。尽管如此,如果两个用户安装了同一个软件包的同一个版本,只有一个副本被存储并在他们之间共享。此外,还有一些安全措施来避免潜在的漏洞,比如不允许使用setuid二进制文件。

但是 Nix 模型也带来了一些缺点和不足。其中一些与用户适应 NixOS 的意愿有关,这是一个重要的问题。

  • Unix FHS(文件系统层次标准)被破坏。像/bin/sbin/lib/usr,/opt这样的目录要么不存在,要么只包含到/nix/store目录的某个点的链接(只读的)。这使得一些管理任务和问题解决变得更加复杂;你必须依赖 Nix。此外,因为它破坏了与标准 FHS 的兼容性,所以不可能安装任何直接从源代码编译的包(例如用$ make install);你必须先“消除”它。平时也没那么难,就是有点不方便。
  • 破碎的 FHS 有恼人的副作用。应用程序希望在通常的地方找到它们的依赖关系。那些依赖于定义环境的路径变量或者有自己的包管理器的,比如 Python、Ruby 等编程语言。对此有问题。wiki 上有很多由包维护者创造的技巧和变通方法,但是增加了出错的空间。还可以使用 nix-shell,这是一个用于构建沙盒环境的工具。随着发行版基数的增长,这种情况会更频繁地发生,为了让这个发行版被更多的人采用,这是一个需要解决的关键挑战。您可以通过每个项目隔离虚拟机或容器,或者处理不同的 NixOS 配置来避免这些问题,但最终您还必须在其他情况下解决这些问题。例如,我尝试使用我的 Emacs 配置。大部分都能工作,但是需要编译一些扩展才能工作,这不是一个有趣的经历。
  • 散列使得可读性变得困难。在/nix目录层次结构中的每个包/文件名的开头使用散列使得查找/排序您的搜索更加困难。例如,您可以在 nix store 中的/nix/store/5rnfzla9kcx4mj5zdc7nlnv8na1navg-firefox-3.5.4存放一个 Firefox 包。幸运的是,您仍然可以使用whereis, whichlocate命令找到许多东西。但是你只需要运行一个printenv命令来查看环境变量就又开始头疼了。
  • 潜在的大量磁盘使用。拥有许多不同版本的软件包和许多不同的配置的缺点是所使用的磁盘空间的成本,这可能是相当大的,特别是如果系统上有多个用户具有非常不同的配置文件。由于回滚功能,删除或废弃的软件包不会从磁盘上物理删除。您仍然可以手动执行 Nix 的垃圾收集器,或者通过 systemd 服务定期删除旧的、未被引用的包。你也可以选择使用 Nix 优化,对相同的文件使用硬链接;这样节省了很多空间。
  • 更改后的包在可用之前可能会有很长的延迟。构建包的 Hydra farm 只在重建完全完成时更新一个通道(所有需要重建的包)。当一个变更影响到许多包时(比如一个安全包或者一个重要的库,比如 gcc ),这个重建可能需要几天时间。随着时间的推移,这个问题会变得越来越严重。当然,如果您有资源,没有什么可以阻止您创建自己的 Hydra 设置来为您构建软件包。
  • 软件包基础仍然落后于另一个发行版。Nixpkgs 目前有大约 30,000 个可用的包,而其他发行版的库中有大约 50,000 个包。这意味着如果你想使用其中的一些包,你必须为它们制作一个 Nix 配方。好消息是,您可以将该方法提交到 Nixpkgs GitHub 库,并很容易地提供给社区的其他人,从而帮助维护发行版。

总之,如果你能够对所有事情都采用 Nix 的做事方式,你就可以避免前面提到的许多问题,并且可以安全地使用它来完成一些任务。我仍然对 NixOS 作为多用途桌面甚至服务器发行版抱有严重的怀疑。这可能是构建一个具有可靠配置的最小服务器的好方法,但是一旦出现问题,调试这台机器将会很不愉快。不管怎样,我不得不说,我希望看到这个发行版成熟,以便看到它将实现什么。最终,我希望看到所有的包都适应 NixOS 的工作方式,为此,管理一台机器就像编程它的状态一样。在理想情况下,NixOS 范式(或类似的具有相同优势的东西)将是当前许多问题的完美解决方案,这些问题通常用许多变通方法都无法很好地解决。

体系结构

目前,NixOS 仅支持英特尔/AMD 32/64 位架构。也有非官方的港口武装。

安全性/匿名性

由于这个发行版的特殊性质,和 Arch 或 Gentoo 一样,安全性和匿名性在很大程度上依赖于用户。有一些选项可以帮助强化 NixOS,比如使用 grsecurity 内核或 AppArmor,但它们目前非常不稳定,或者太依赖于用户如何配置它们。例如,我在我的 Arch 安装中默认使用 grsecurity 内核,你可以毫无困难地用 Gentoo 做同样的事情,但是如果你现在用 NixOS 尝试,许多包将不能工作,例如一些浏览器。

原则和道德

关于原则和道德,没有什么明确的说法。发行版包含了一些专有软件,比如二进制 blobs 和驱动程序,没有什么可以阻止你从一个专有软件创建(“nixifying”)你自己的二进制包。否则,您必须在配置中明确设置要使用“非自由”软件包,以便能够使用可用的软件包(例如 Nvidia 驱动程序、Adobe Flash)。

现场 CD

NixOS 有一张 KDE 的 Live CD,让你对 NixOS 有一个大概的了解。您也可以使用它来安装发行版。

专业认证

显然,没有专业认证涵盖这种分布。

装置

安装这个发行版是一种独特的体验,维护它也是如此。对于那些刚接触 DevOps 工具的人来说,使用 Ansible、Puppet、Salt 或 vagger 这样的工具来定义没有映像的最终状态,而不是从以前的 VM/Docker Linux 映像中定义最终状态,就像是在没有映像的情况下定义最终状态。因此,你不再需要依赖先前的图像来创造你想要的东西;您从一开始就直接创建了您想要的系统,即使在升级后也是如此。这种操作更加自然,因为您不必依赖不可变的映像(在 DevOps 中,如果您更改您的基本映像,您通常必须更改操作),因为您是在理想的最终状态下创建映像本身。现在想象一下这与像 NixOS 这样的 DevOps 工具相结合的可能性。对此半信半疑;这是一种过于简化和粗略的近似。

第一步是访问 NixOS 网站,在 http://nixos.org/nixos/download.html 获取 ISO 映像。你可以在图 14-1 中看到这个网页。要下载的 ISO 映像有两种格式:最小化和图形化。你也有 VirtualBox 和 Amazon EC2 的图片。对于大多数用户来说,显而易见的选择是图形化的 Live CD(请注意,它仅适用于 64 位架构)。两者之间的主要区别在于,在图形映像中,您可以使用图形工具来完成安装,如分区工具或文本编辑器,而在最小的映像中,您必须使用命令行工具。但是我认为考虑到这个发行版的性质和要执行的操作,无论如何你都需要使用终端;如果您对此感到满意,您应该更喜欢最小安装光盘(您仍然可以选择图形光盘,只需不启动 windows 会话)。因此,请单击图形 live CD 选项下载它。

A367684_1_En_14_Fig1_HTML.jpg

图 14-1。

The downloads section of the NixOS web site

请注意,我使用的是传统的带有 2TB 硬盘的 BIOS 系统。我使用 ISO 镜像来引导系统,所以第一个屏幕是典型的如图 14-2 所示。通常第一种选择应该在大多数系统中起作用;如果您的显卡有问题,请选择第二个。完成引导后,你在终端根提示符下结束,如图 14-3 所示。

A367684_1_En_14_Fig3_HTML.jpg

图 14-3。

The NixOS root console that you get at the end of the boot up

A367684_1_En_14_Fig2_HTML.jpg

图 14-2。

The first screen after booting up from the NixOS ISO image

为了启动图形化会话,您必须输入一个命令,但是正如我前面说过的,如果您对使用命令行没问题,您可以从这里继续安装并使用终端工具。第八个控制台总是提供帮助,如图 14-4 所示,它通过w3m文本浏览器在网络上使用相同的 HTML 手册。我通常以这种方式安装它,但是让我们试试另一种方式:通过键入# start display-manager命令启动图形会话。

A367684_1_En_14_Fig4_HTML.jpg

图 14-4。

The NixOS manual on the terminal

KDE 会议开始;在桌面上的一个文件夹中有三个安装发行版所需的必备工具:一个分区工具(GParted),一个终端(Konsole)和 NixOS 手册(见图 14-5 )。

A367684_1_En_14_Fig5_HTML.jpg

图 14-5。

The default KDE session of the NixOS Live CD

让我们假设网络被很好地检测到并且运行良好。你需要做的第一件事是对磁盘进行分区,为此,使用 GParted 工具(如图 14-6 所示)和一个非常简单的分区方案,只有//home分区。您可以通过选择设备➤创建分区表菜单项来开始创建分区表。默认情况下应选择一个msdos类型,否则,如图 14-7 所示选择并点击应用(忽略警告;在我的情况下,磁盘是空的)。

A367684_1_En_14_Fig7_HTML.jpg

图 14-7。

Creating the partition table on the disk

A367684_1_En_14_Fig6_HTML.jpg

图 14-6。

The GParted tool to partition the disk

通过单击新建图标创建您的第一个分区。创建一个 ext4 100GiB 分区,标签为 nixos(如图 14-8 )。对于系统文件来说,这似乎是一个非常大的分区,但是在 NixOS 中,您可以存储相同包的几个配置和几个版本,根据包的不同,这可能会占用大量的磁盘空间。在这样的发行版中,在分区上贴标签的想法非常有用,如果设备改变了,可以通过标签重新应用配置。您也可以使用 UUID,但这种方式更容易(在硬件配置文件中,UUID 是在首次自动生成配置文件时通过名称添加到分区中的)。接下来,用磁盘的其余部分以同样的方式创建另一个 ext4 分区,但是使用 home 作为标签。最后,单击应用。你应该有类似于图 14-9 所示的分区方案。

A367684_1_En_14_Fig9_HTML.jpg

图 14-9。

The final partition scheme

A367684_1_En_14_Fig8_HTML.jpg

图 14-8。

Creation of the first partition

下一步是安装分区。为此,请打开 Konsole 终端并输入以下命令。在图 14-10 中,注意分区标签和 UUIDs。

A367684_1_En_14_Fig10_HTML.jpg

图 14-10。

Mounting the partitions

# lsblk -pf
# mount /dev/disk/by-label/nixos /mnt
# mkdir /mnt/home
# mount /dev/disk/by-label/home /mnt/home

现在您必须生成 NixOS 的初始配置文件,然后编辑它以满足您的需要。配置文件将在路径/mnt/etc/nixos/configurations.nix中生成,您将使用图形编辑器 Kate 对其进行编辑。如图 14-11 所示。

A367684_1_En_14_Fig11_HTML.jpg

图 14-11。

Generating the configuration and opening it in Kate

# nixos-generate-config --root /mnt
# kate /mnt/etc/nixos/configuration.nix &>/dev/null

让我们花点时间补充一下。我将告诉您安装 NixOS 并让一个非常简单的系统运行的最简单的方法,例如,非常类似于您在安装 Arch、Gentoo 或 Slackware 时得到的方法。您唯一需要做的事情非常简单:首先,编辑配置文件,取消包含选项boot.loader.grub.device的行的注释,并执行命令# nixos-install。系统将自动安装。最后,它会要求你输入根用户的密码,你只需要重启系统就可以得到一个最低功能的 NixOS 系统。这个过程需要一段时间,因为必须下载和编译某些包(如果你选择不稳定版本,那么很多包将从源代码编译)。然而,这样做意味着您需要创建一个用户,并配置时区、网络设置等。安装完成后。更糟糕的是,之后你必须安装你想要的软件包,就像其他发行版一样。这是对这种分布优势的浪费。例如,请记住,您可以以全局方式安装软件包,以便所有用户都可以使用它们,和/或为每个用户单独安装软件包。一些软件包,如桌面环境或窗口管理器,如果你直接从配置中自动安装它们,应该很容易。

我强烈建议您阅读该手册(通过桌面图标访问,该图标指向位于 http://nixos.org/nixos/manual/index.html )的 web 手册的本地版本),以便对您能做什么和如何做有一个更全面的印象。另外,我强烈建议您在 http://nixos.org/nixos/options.html 查看不同的配置选项。

让我们开始编辑初始文件,以获得最小配置:

# kate /mnt/etc/nixos/configuration.nix &> /dev/null

编辑后的文件内容应该如下所示:

# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running 'nixos-help').

{ config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

  # Use the GRUB 2 boot loader.
  boot.loader.grub.enable = true;
  boot.loader.grub.version = 2;
  # Define on which hard drive you want to install Grub.
  boot.loader.grub.device = "/dev/sda";

  networking.hostName = "nixos"; # Define your hostname.
  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.

  # Select internationalisation properties.
  i18n = {
     consoleFont = "Lat2-Terminus16";
     consoleKeyMap = "us";
     defaultLocale = "en_US.UTF-8";
  };

  # Set your time zone.
  time.timeZone = "America/New_York";

  # List packages installed in system profile. To search by name, run:
  # $ nix-env -qaP | grep wget
  environment.systemPackages = with pkgs; [
     wget
     firefox
     htop
  ];

  # List services that you want to enable:

  # Enable the OpenSSH daemon.
  # services.openssh.enable = true;

  # Enable CUPS to print documents.
  services.printing.enable = true;

  # Enable the X11 windowing system.
  services.xserver.enable = true;
  services.xserver.layout = "us";
  # services.xserver.xkbOptions = "eurosign:e";

  # Enable the KDE Desktop Environment.
  #services.xserver.displayManager.kdm.enable = true;
  services.xserver.desktopManager.kde4.enable = true;

  # Define a user account. Don't forget to set a password with 'passwd'.
  users.extraUsers.johndoe = {
    isNormalUser = true;
    uid = 1000;
    description = "John Doe";
    extraGroups = ["wheel" "audio"];
  };

  # The NixOS release to be compatible with for stateful data such as databases.
  system.stateVersion = "16.03";

}

当您准备好配置后,在控制台中引入以下命令来自动安装系统:

# nixos-install

安装完所有软件包后,安装程序会要求您输入根密码,所以请输入一个强密码。程序退出,安装完成。重新引导系统,并为您在配置中指定的用户设置密码,在本例中为 johndoe。为此,nixos-install 程序允许您在新安装的环境中监禁 root 用户(因为显然新用户不存在于 Live CD 环境中)。现在你可以重新启动系统了。

# nixos-install --chroot
# passwd johndoe
# exit
# reboot

当机器重新启动时,您将看到的第一个屏幕是 Grub 菜单(图 14-12 )。请注意,第二个条目是“NixOS -所有配置”在这里,您应该会看到自动存储的配置(那些您没有手动添加到引导菜单中的配置)。

A367684_1_En_14_Fig12_HTML.jpg

图 14-12。

The Grub menu of a fresh installation of NixOS

选择第一个条目来首次引导 NixOS。几秒钟后,你会看到 Slim 桌面管理器,这是 NixOS 中默认使用的(见图 14-13 )。输入您的用户和密码。

A367684_1_En_14_Fig13_HTML.jpg

图 14-13。

The desktop manager , Slim, is the default one for the NixOS

你又一次进入了 KDE 的环境,就像我在这里展示给你的 Live CD,里面有我告诉你专门安装的应用程序(图 14-14 )。我担心捕获太小而看不清楚,但是如果可以的话,您会看到htop工具中的二进制路径很笨拙,因为它们都在/nix/store directory中。无论如何,你可以看到 KDE 桌面管理器和 htop 以及 Firefox 软件包是如何按照配置文件中的设置安装的。一旦你知道如何去做,这是一个强大的配置和安装系统的方法,但是第一次有点尴尬。如果你想做得更详细,你将不得不浏览 nix 手册,甚至邮件列表和 IRC。这在其他高级发行版中并不少见,但是即使是高级用户,如果想继续使用 NixOS,也必须学习很多东西。就这样!您的系统中安装了 NixOS。

A367684_1_En_14_Fig14_HTML.jpg

图 14-14。

The NixOS KDE with Firefox and htop (inside Konsole) running in the desktop

现在我将向您展示更改您的配置和默认桌面管理器是多么容易。您必须再次编辑现在位于/etc/nixos/configuration.nix的配置文件,取消注释该行(删除前面的#) #services.xserver.displayManager.kdm.enable = true;,然后在 Konsole 终端中执行以下命令:

$ sudo nixos-rebuild test

如果一切顺利,你可以从 KDE 注销,现在 KDM 将成为你的新桌面管理员,如图 14-15 所示。登录。您可以通过运行以下命令将此配置设为默认配置:

A367684_1_En_14_Fig15_HTML.jpg

图 14-15。

You succesfully changed Slim for KDM by changing a line in the configuration

$ sudo nixos-rebuild switch

但是你做了更大的改动,比如用 GDM 和 Gnome 3 代替 KDM 和 KDE,只对文件做了一些改动;对于其他发行版,这可能是一个大问题。您只需更改配置文件的以下部分:

# Enable the KDE Desktop Environment.
# services.xserver.displayManager.kdm.enable = true;
services.xserver.displayManager.gdm.enable = true;
# services.xserver.desktopManager.kde4.enable = true;
services.xserver.desktopManager.gnome3.enable = true;

执行与之前相同的操作。如果你重启系统,你会看到 GDM 作为你的登录管理器,一个功能齐全的 Gnome 3 作为你的桌面管理器(见图 14-16 )。

A367684_1_En_14_Fig16_HTML.jpg

图 14-16。

A Gnome Shell session from changing two lines

我想你可以看到这个发行版有多棒。当然,所有的“可变状态”都是在变化之间保持的;您可以看到您已经在终端中执行的所有操作都出现在历史记录中。

最后,当您重启系统时,如果您选择第二个菜单选项,您将看到类似于图 14-17 的内容,其中显示了您所做的所有配置。没有什么可以阻止你在以前的配置中引导,返回到 KDE,并使用$ sudo nixos-rebuild switch,使它再次成为你的默认配置。如果您想在配置之间频繁切换,您甚至可以给它们一个名称,并将它们作为新的菜单项添加到主 Grub 菜单中。

A367684_1_En_14_Fig17_HTML.jpg

图 14-17。

In the Grub menu, you can choose between all of your previous configurations

许多 Linux 用户真的希望在他们当前的发行版中有这样的东西,包括我自己。我期待看到 NixOS 如何发展。

保持

这个发行版中的所有维护都与 Nix 相关,你应该使用 Nix 工具来执行任务,以确保它们尽可能顺利地进行。

管理应用程序

在 NixOS 中有两种不同的安装/删除应用程序的方式,要么通过配置文件以声明的方式,要么以命令的方式,就像传统的包管理器一样。如果我在管理一个多用户系统,我会使用声明的方式来安装所有用户可用的所有全局包,并且我会让用户以强制的方式安装他们自己的包。在一台单人机器的情况下,我将从配置中安装所有的基础包,并且我将只使用命令行来安装一些包,比如那些我只是暂时需要的包。

在 NixOS 中安装包非常容易。使用这个简单的命令:

$ nix-env -i firefox

要删除它,有两个选项:进行回滚(只有在以后没有其他操作会改变状态时,我才会使用此选项,如修改配置或安装/删除/更新软件包)或删除它。使用此代码:

# This would remove the package (remember, not phisically from disk)
$ nix-env -e firefox

# This would perform a rollback
$ nix-env rollback

更新

同样,在 NixOS 中有两种更新包的方法。您可以使用 Nix 的命令式方法更新它们,或者通过重新构建整个系统来使用声明式方法更新它们。使用第一种方法,您甚至可以单独升级软件包。

要以命令的方式更新某些内容,首先您必须更新通道信息(使用nixos通道):

$ nix-channel --update nixos

现在是时候更新一个包或者所有可用的更新了。首先,下面是如何更新单个软件包:

$ nix-env -u firefox

要更新有新版本可用的所有软件包,请使用以下代码:

$ nix-env -u '*'

为了以声明的方式更新所有的包,您只需重新构建您的配置,它将执行所有需要的更新:

$ nixos-rebuild switch

升级

NixOS 的优势之一恰恰在于此,做可靠的发行版升级。这些升级是通过 NixOS 官方渠道(一种存储库)完成的。当您从当前版本(本例中是 16.03)安装 NixOS 时,您通常订阅了这个频道,并且系统更新是通过这个频道进行的。当一个新版本出现时,你只需要订阅那个发布频道,通过nixos-rebuild进行升级,就可以升级你的整个系统。如果您从不稳定的分支进行安装,或者您将您的系统订阅到不稳定的渠道,那么发行版将遵循滚动发布模型,并且将总是被更新。

让我们看看如何做到这一点。首先,你要知道官方渠道是有的:

$ nix-channel --list | grep nixos

当新版本出现时,您可以切换到新的渠道版本。假设一个新版本在今年九月发布(按计划):

$ nix-channel --list | grep nixos
nixos https://nixos.org/channels/nixos-16.09
$ nix-channel --add https://nixos.org/channels/nixos-16.09 nixos

最后,升级整个系统:

$ nixos-rebuild switch --upgrade

一旦这个过程完成,您将获得一个最终状态,就好像您使用当前配置进行了全新安装一样。

利弊

以下是我个人认为的 NixOS 发行版的利与弊。这件事总有商量的余地,但我尽量做到客观。

赞成的意见

  • 您可以从配置文件自动构建系统,这些配置文件可以用可靠的最终状态进行版本控制。
  • NixOS 提供的尖端技术有很多优点:可靠性、一致性、回滚、原子性、可再现性等。
  • NixOS 提供了一个最先进的包管理器,可以在这个发行版之外使用;它也是多平台的。
  • 与 NixOps 和 Disnix 一起,它为 DevOps 提供了一个非常有前途的工具。
  • 它是一个原始的发行版和软件包管理器,而不是一个分支。

骗局

  • 这不是一个用户友好的发行版。即使是高级 Linux 用户也必须学习 NixOS 的做事方式。
  • 文档是不完整的,有时是过时的,当您试图做一些重要的事情时,您必须依赖其他支持渠道。
  • 它仍在开发中,要成为真正的替代品还需要解决一些挑战。
  • 对于非琐碎的事情,比如构建自己的包,您必须学习 Nix 函数式语言。
  • 如果你试图用 Nix 之外的方式做一些事情,会有严重的缺点和错误。你必须遵循 Nix 的方式做每一件事,即使是你的网络文件,如果你想要一个好的体验。
  • 它的社区很小,要达到成为一个真正的替代品和更快发展所必需的临界质量还有很长的路要走。
  • 它的安装基数很小。
  • Nix 界面可以改进(比如搜索包)。

摘要

在这一章中,您看到了一个可能的、有前途的未来 Linux 场景。虽然它还有很长的路要走,但在目前所有现有的实验性 Linux 发行版中,NixOS 是最先进的,并且有更好的理论基础。已经有相当多的人(大约 5000 人)在使用这个发行版作为他们日常的 Linux OS。和 systemd 一起,这个发行版可以追踪未来的发展方向。

在接下来的章节中,我将介绍更多可选的发行版(比如 Qubes)。不幸的是,我只能给你一个简短的总结,但是我希望它能帮助你对 Linux 发行版全景有一个更广阔的视野。

Footnotes 1

https://nixos.org/∼eelco/pubs/phd-thesis.pdf

2

https://nixos.org/docs/SCR-2005-091.pdf

十五、其他选择

在这一章中,我向您展示了一些我想要详细分析的通用发行版,因为它们要么提供了一个很好的替代方案,要么具有足以吸引您注意的独特性。有像 Red Hat,SUSE 或 CentOS 这样明显的缺席,但选择安装和管理这些面向企业的发行版的用户类型很可能不需要阅读这样的书来做出决定。此外,正因为如此,我把这本书的重点放在桌面发行版上,跳过了像云或服务器这样的环境,其他有趣和有前途的桌面发行版,如 Papyros 和 Apricity OS,也没有在这里讨论。

流行发行版的风格仅仅在桌面环境中有所不同。例如,在 Ubuntu 的情况下,您可以找到 Kubuntu、Xubuntu、Lubuntu、Ubuntu Gnome、Ubuntu MATE、Ubuntu Kylin、Mythbuntu 和 Edubuntu(这些只是官方的)。我不会涵盖这些口味,但也许其中之一会适合你的需要。如果你想探索各种可用的 Linux 发行版,去 http://distrowatch.com 。这个网站尽了很大的努力来跟上高度不稳定的发行版,并提供了最好的编译版本。

佐伦·OS

爱尔兰 Zorin OS(2009 年首次发布)是另一个基于 Ubuntu 的发行版(Linux Mint 和 elementary OS 也是如此)。Zorin 操作系统提供了最接近微软视窗操作系统的体验。为此,它为几个 Windows 版本(或 OS X)提供了相似的外观,并且默认安装 Wine。Wine 是一个允许您在 Linux 中执行原生 Windows 应用程序的工具。但并不是所有的 Windows 应用程序都可以用 Wine 来执行,所以你可能会经常遇到应用程序挂起或某些功能被禁用的情况。

对于因为界面不熟悉而不愿意使用 Linux 的长期 Windows 用户来说,Zorin OS 是一个很好的选择。在既需要运行 Linux 又需要运行一些 Windows 应用程序的混合企业环境中,这也是一个不错的选择。您也可以在其他发行版中安装 Wine(有些发行版甚至默认安装了 Wine,或者安装了它的替代版本 PlayOnLinux),但是 Zorin 是一个现成的解决方案,可以满足这类用户的需求。这是目前流行的发行版,但安装规模较小。

它提供免费和商业版本。后者的附加外观、附加软件和直接来自开发者的更多支持的价格非常低。对商业版本的支持基本上是为了帮助安装发行版,但是我非常怀疑在一个基于 Ubuntu 的发行版中是否需要这种帮助。该发行版有一个默认的基于 Windows 7 的主题,可以针对 Windows XP 或 Gnome 进行更改。商业版本有额外的主题,看起来像 Windows 2000,OS X 和统一。

Zorin OS 的发行版选择标准总结在表 15-1 中。你可以在 http://zorinos.com 了解更多关于 Zorin OS 的信息。

表 15-1。

Distro Selection Criteria for Zorin OS

| 目的和环境 | 两个免费版本:核心版和精简版。两个商业版本:商务版和旗舰版。 | | --- | --- | | 支持 | 商业和社区 | | 用户友好性 | 一个用户友好的发行版,特别是对于以前的 Windows 和 OS X 用户。 | | 稳定性 | 一开始稳如 Ubuntu。与 Ubuntu 的发布方案相同,只是增加了一个延迟。 | | 硬件支持 | 和 Ubuntu 一样。 | | 美学 | Windows 7、Windows XP 和 Gnome。商业广告:视窗 2000,OS X 和统一。 | | 桌面环境 | Gnome 或者 LXDE。商业版增加了统一性。 | | 初始化系统 | 当前版本的 systemd,旧版本的 Upstart。 | | 包装管理系统 | dpkg | | 体系结构 | Intel/AMD 32 位元/64 位元 | | 安全性/匿名性 | 和 Ubuntu 一样。 | | 原则和道德 | 没什么特别的。 | | 现场 CD | 是 | | 专业认证 | 不 |

特丽丝

2007 年发布的 Trisquel 是另一个使用 Ubuntu 作为基础的发行版。在这种情况下,这个西班牙发行版是值得注意的,因为它是少数几个被自由软件基金会承认并认可为自由 GNU/Linux 发行版的发行版之一。在这些公认的发行版中,Trisquel 是最受欢迎和最活跃的。它使用 Linux-libre 内核,并删除了 Ubuntu 最初支持的所有专有软件,以及任何内核固件二进制 blobs 和专有驱动程序。

这是一个社区发行版,仅由捐款和一个小社区支持。因此,即使它是一个友好的发行版,由于只提供免费产品的限制,对硬件的支持是有限的。您可能会遇到图形卡、无线设备等问题,所以我建议在选择这个发行版之前研究一下您的硬件选项。

它有一个名为 Sugar TOAST 的特殊版本,旨在使用为教师和儿童设计的 Sugar 桌面界面的学习环境。这种桌面环境最初是为 OLPC(每个孩子一台笔记本电脑)项目开发的。

Trisquel 是 triskelion 的西班牙语单词,是由三个互锁的螺旋组成的主题;它来自凯尔特文化,这种文化在加利西亚(我和 Trisquel 出生的地方)非常盛行。发行版的标志是一个三叉图标,向 Debian 发行版致敬。

表 15-2 总结了 Trisquel 的发行版选择标准。你可以在 https://trisquel.info 了解更多崔斯凯。

表 15-2。

Distro Selection Criteria for Trisquel

| 目的和环境 | 一个主版本,一个“迷你”版本(只有英语/西班牙语),和一个糖吐司版本 | | --- | --- | | 支持 | 社区 | | 用户友好性 | 一个用户友好的发行版,但是有硬件限制。 | | 稳定性 | 基于 Ubuntu LTS 发布,因此它非常稳定。 | | 硬件支持 | 比普通发行版少,因为它只支持自由软件。 | | 美学 | 除了自定义徽标和主题,别无其他。 | | 桌面环境 | Gnome 或者 LXDE。糖桌面糖吐司版。 | | 初始化系统 | 目前暴发户,因为它是基于 Ubuntu 14.04。将来,它会被系统化。 | | 包装管理系统 | dpkg | | 体系结构 | Intel/AMD 32 位元/64 位元 | | 安全性/匿名性 | 和 Ubuntu 一样,但是提供工具/文档来保护匿名/隐私。 | | 原则和道德 | 只有自由软件。由自由软件基金会认可。 | | 现场 CD | 是 | | 专业认证 | 不 |

PCLinuxOS

美国发行版 PCLinuxOS 是 Mandrake(后来的 Mandriva)的另一个后代,和 Mageia 一样。然而,当 Mageia 试图维护 Mandriva 的遗产时,PCLinuxOS 很久以前就开始走自己的路了。PCLinuxOS 是 2003 年从 Mandrake 派生出来的,这部分解释了与 Mageia 的分歧,因为它是在 8 年前创建的。这个发行版的特点之一是完整的蒙蒂版,它带有大量的预装应用程序来满足多种需求,每个应用程序都有自己预定义的 KDE 虚拟桌面。

与 Mageia 的一个很大的区别是,PCLinuxOS 是一个滚动发布的发行版,不时会有主要的发布。即使是滚动发行版,这些包也不总是最新的版本,而是合并到它们的库中的稳定包。另一个很大的不同是,它是少数几个仍然使用 System V 作为 init 系统的发行版之一,因为它的社区强烈反对对 systemd 的更改。

另一个显著的区别是包管理系统 APT-RPM,它是对最初 Debian app 工具的定制;APT-RPM 使用 RPM 包而不是 dpkg 包。PCLinuxOS 还使用传统的 dpkg 图形工具 Synaptic 作为其默认的图形包管理工具。目前只有少数发行版使用这个包系统。

对于喜欢 Mageia/Mandriva 风格和 rpm、需要友好的发行版、不喜欢 systemd、喜欢滚动发布方案的用户来说,PCLinuxOS 是完美的选择。

表 15-3 总结了 PCLinuxOS 的发行版选择标准。你可以在 www.pclinuxos.com 了解更多关于 PCLinuxOS 的信息。

表 15-3。

Distro Selection Criteria for PCLinuxOS

| 目的和环境 | 每种口味都有独特的 ISO 图像版本:KDE、马黛茶和全蒙蒂。 | | --- | --- | | 支持 | 社区 | | 用户友好性 | 用户友好的发行版 | | 稳定性 | 滚动发布方案,但是包只有在足够稳定的情况下才会发布。 | | 硬件支持 | 和 Mageia 一样:非常好。 | | 美学 | 它自己的布局,定制,和完整的蒙蒂版设计。 | | 桌面环境 | KDE 和马特。光猪六壮士版有一个定制的 KDE。 | | 初始化系统 | 系统 V (sysv),由机构群体决定不切换到系统 d。 | | 包装管理系统 | apt rpm | | 体系结构 | Intel/AMD 32 位元/64 位元 | | 安全性/匿名性 | 开箱即用的合理安全性。 | | 原则和道德 | 务实的方法:将这些决定留给用户。 | | 现场 CD | 是 | | 专业认证 | 不 |

曼哈罗

Manjaro 是一个奥地利/德国/法国发行版,于 2011 年首次发布。这是一个基于 Arch Linux 的友好的选择,适合那些想拥有 Arch 的优点,但又想避免不友好的安装过程的用户。因为它是基于 Arch Linux 的,所以 Manjaro 可以使用它的库和它的包管理器,但是 Manjaro 提供了一个友好的安装程序和工具来管理包、库和基本的系统设置。

默认情况下,Manjaro 有自己的存储库和文档,但是您可以使用 Arch 副本,这是一个额外的优势。一个众所周知的缺点,也是经常受到批评的原因,是它仍然是一个稍微不成熟的发行版,在过去有一些失败(其中一些是严重的安全问题)。尽管这是一个有争议的发行版,有许多批评者,但它仍然是一个非常受欢迎的发行版,可能是因为有许多人喜欢 Arch 的产品,但不喜欢它的问题,Manjaro 对他们来说就像一股清新的空气。

官方的桌面管理器是 KDE 和 Xfce,但是社区也维护类似 Cinnamon、Gnome、MATE、Enlightenment、LXDE、LXQT、Fluxbox、Openbox、Netbook 和 PekWM 的版本。

Manjaro 安装工具 Calamares(几个发行版使用的独立 Linux 安装程序)与 Ubuntu 中使用的工具非常相似。过去曾有过几次开发友好的 Arch Linux 发行版的尝试,Manjaro 似乎是第一个做得很好的。如今,它比 Arch 本身更受欢迎。

表 15-4 总结了 Manjaro 的发行版选择标准。你可以在 https://manjaro.github.io 了解更多关于曼哈罗的信息。

表 15-4。

Distro Selection Criteria for Manjaro

| 目的和环境 | 一个版本有两种口味:KDE 和 Xfce。有网络版。 | | --- | --- | | 支持 | 社区支持。文档不如 Arch 的原始文档好。 | | 用户友好性 | 用户友好的发行版 | | 稳定性 | 滚动发布方案,还是有点不靠谱。 | | 硬件支持 | 比 Arch 好,带硬件自动检测。 | | 美学 | 自定义主题、安装程序和总体外观。 | | 桌面环境 | KDE 和 Xfce。社区支持的其他几个:Gnome、MATE 等。 | | 初始化系统 | 系统 | | 包装管理系统 | Pacman 有自己的存储库,加上使用 Arch 的能力。 | | 体系结构 | Intel/AMD 32 位元/64 位元 | | 安全性/匿名性 | 常规的现成产品。它应该更认真地对待这些话题。 | | 原则和道德 | 和 Arch 一样:用户说了算。 | | 现场 CD | 是 | | 专业认证 | 不 |

安特戈斯

西班牙 Antergos 发行版(最初命名为 Cinnarch,因为 Cinnamon 是发行版的原始桌面环境)是最新的 Arch Linux 衍生版本(大约 2012 年)之一,像 Manjaro 一样面向用户友好。它基本上是在 Arch Linux 基础上添加了一个图形安装工具 Cnchi(最初是从零开始开发的,灵感来自 Ubuntu one ),几乎保持了所有其他东西的完整性。它还提供了一个图形化的包管理器 pamac,这是在 Manjaro 上开发的,它使用了原来的 Arch Linux 存储库和它自己的存储库。简而言之,Antergos 使 Linux 变得简单了。

在安装过程中,您必须从最常用的桌面环境中选择要使用的桌面环境。你可以选择浏览器或办公套件,但任何选择都将安装一些常见的应用程序,与其他用户友好的发行版如 Ubuntu 类似。

Antergos 最近变得非常流行,因为它是一个普通的基于 Arch Linux 的发行版,有一个友好的图形安装程序。一些 Arch 用户选择它来安装一个新的“伪”Arch Linux 系统,而不需要手动操作。

一些公司支持发行版的维护,但是它仍然是一个社区开发的发行版。Antergos 是一个加利西亚词(最初和主要的开发者来自西班牙的加利西亚),意思是祖先;选择这个词意味着向它的祖先阿奇致敬。

表 15-5 总结了安特戈斯的地区选择标准。你可以在 https://antergos.com 了解更多关于安特戈斯的知识。

表 15-5。

Distro Selection Criteria for Antergos

| 目的和环境 | 一个主要版本可作为现场或最小的 ISO。 | | --- | --- | | 支持 | 社区支持,加上使用 Arch Linux 文档的可能性。 | | 用户友好性 | 用户友好的发行版 | | 稳定性 | 滚动发布方案,稳定如 Arch Linux。 | | 硬件支持 | 比 Arch Linux 好,有自动硬件检测。 | | 美学 | 与 Numix 项目合作制作的主题和图标。 | | 桌面环境 | Gnome、Cinnamon、MATE、KDE、Xfce 和 OpenBox | | 初始化系统 | 系统 | | 包装管理系统 | Pacman 使用 Arch Linux 库。 | | 体系结构 | Intel/AMD 32 位元/64 位元 | | 安全性/匿名性 | 和 Arch Linux 一样。 | | 原则和道德 | 实用主义:用户说了算。 | | 现场 CD | 是 | | 专业认证 | 不 |

萨巴永

意大利 Sabayon(大约 2005 年,以前的 RR4 Linux)是 Gentoo 的友好替代品,它是基于 Gentoo 的。这是一个用户友好的发行版,遵循了 Gentoo 的理念,但有一些差异,允许新手用户使用它,就像一个管理二进制文件而不是源代码的图形包管理器。高级用户可以拥有与 Gentoo 几乎相似的体验。它使用与 Manjaro 相同的图形安装程序,Calamares,并通过选择相应的 ISO 映像默认支持几种桌面环境。对于那些想开始使用 Gentoo 但不想一步到位的用户来说,这是一个很好的发行版,他们更喜欢按照自己的进度学习,同时还能享受它的优势。

与 Gentoo 的主要区别是包管理和 init 系统。Sabayon 使用 systemd 而不是 Gentoo 的 OpenRC 作为它的 init 系统。更有趣的是 Sabayon 以一种非常特殊的方式管理包。它有两个包管理器:Entropy 和 Portage。第一个是由 Sabayon 开发的,使用来自它自己的仓库的二进制包;它的目标是新手,它有一个图形界面,Rigo,更友好。高级用户仍然可以使用 Gentoo 的 Portage 从源代码构建包。二进制包通常比源代码更加过时和稳定,在源代码中,您可以使用 Portage 构建您的包。

Sabayon 这个名字来源于法语,是一种传统的意大利甜点,Zabaglione 或 Zabaione。表 15-6 总结了 Sabayon 的发行版选择标准。你可以在 https://sabayon.org 了解更多关于萨巴永的信息。

表 15-6。

Distro Selection Criteria for Sabayon

| 目的和环境 | 桌面版,服务器版,ARM 版,Docker 版,流浪版。 | | --- | --- | | 支持 | 社区 | | 用户友好性 | 用户友好,但适合高级用户。 | | 稳定性 | 滚动发布方案。 | | 硬件支持 | 比 Gentoo 好,因为它支持硬件自动检测。 | | 美学 | 每个桌面环境的默认设置。 | | 桌面环境 | KDE、Gnome、MATE、Xfce 和启示 | | 初始化系统 | 系统 | | 包装管理系统 | 熵和运输 | | 体系结构 | 英特尔/AMD 32/64 位。还有 ARM(目前只有树莓 Pi 2)。 | | 安全性/匿名性 | 正常。不如巴布亚专注。 | | 原则和道德 | 没什么特别的。 | | 现场 CD | 是 | | 专业认证 | 不 |

戈壁人

像 NixOS 一样,巴西的 GoboLinux 发行版试图创新 Linux 发行版的工作方式。始于 2003 年的 GoboLinux 有着不同于 NixOS 的方法;它的重点不是包管理,而是文件系统。GoboLinux 不使用文件系统层次标准(FHS);它使用自己的目录层次结构,将所有程序存储在同一个根目录(/Programs)下,按类别分类,并使用到另一个目录的符号链接作为索引(/System/Index)。其余的根目录是/Users、/Files、/Mount 和/Depot。为了保持与标准 Linux 程序的兼容性,它使用了几个隐藏的(默认)符号链接来重新创建标准的 FHS。这有一些好处,比如可以同时获得同一个包的多个版本。

这些包是通过编译工具使用菜谱(定义如何构建和安装包的脚本)从源代码编译的,它使用其原始的文件系统层次结构作为一种包的本地数据库(由于有了索引)。还可以使用图形工具来管理软件包。GoboLinux 也使用自己的基于几个简单脚本的简单 init 系统。长期以来,根用户被命名为 Gobo,这是这个发行版的另一个特点。

这是一个社区非常小的小发行版,还没有得到太多的认可。此外,不同的根目录结构是有争议的。表 15-7 总结了 GoboLinux 的发行版选择标准。您可以在 www.gobolinux.org 了解更多关于 GoboLinux 的信息。

表 15-7。

Distro Selection Criteria for GoboLinux

| 目的和环境 | 独特的版本可作为一个活的 ISO 图像。 | | --- | --- | | 支持 | 社区 | | 用户友好性 | 相当容易安装和维护,但仍然不是用户友好的。 | | 稳定性 | 滚动发布一样,基于食谱。 | | 硬件支持 | 合理,硬件自动检测。 | | 美学 | 基本上是启蒙的默认。 | | 桌面环境 | 启迪 | | 初始化系统 | 基于几个脚本的简单系统。 | | 包装管理系统 | 编译,但是它也使用文件系统层次结构来管理包。 | | 体系结构 | 比奔腾 IV (i686)更新的英特尔/AMD 32 位处理器 | | 安全性/匿名性 | 合理,加上不同的文件层次结构。 | | 原则和道德 | 没什么特别的。 | | 现场 CD | 是 | | 专业认证 | 不 |

什么事

与 Android 一样,Qubes OS 是否是 Linux 发行版也存在一些争议。Qubes OS 把自己定义为 OS 而不是 Linux 发行版,事实上严格意义上也不是 Linux 发行版。它的共同创建者 Joanna Rutkowska(一位著名的计算机安全研究人员)将其定义为一个 hypervisor 用户,而不是 Linux 发行版或 hypervisor。我在这里介绍它是因为很多人把它称为 Linux 发行版。Qubes OS 是 2012 年发布的美国操作系统,它试图通过“隔离安全”成为最安全的桌面操作系统。为了实现这一点,它使用了几个虚拟机管理程序,其中的进程与其他进程完全隔离。

Qubes OS 在幕后运行一个 Xen hypervisor,它使用一个定制的 Fedora 作为其“dom0”域(管理 hypervisor 的最有特权的域)。用户域(也称为 Qubes)通常是 Fedora、Debian 或 Whonix Linux 发行版,但也可以是 Windows OS。有系统域和用户域;系统域分为安全 GUI 和管理(dom0)、网络和存储。用户域,也称为 AppVMs(它们实际上是轻量级虚拟机),通常由任务或安全级别分隔:个人、工作、不可信、购物、银行等。有一些模板可用作这些用户域的基础,这些用户域具有共同的基础软件,但具有独立的内存、存储和网络。有一种机制可以在这些域之间安全地共享文件和复制粘贴。

为了使用操作系统的所有功能,硬件必须支持某些限制,如 VT-x 和 VT-d CPU 虚拟化功能、TPM 安全平台、UEFI,最好是固态硬盘和英特尔 GPU。该公司提供了硬件兼容性列表,甚至还有 Purism 提供的 Qubes 认证的笔记本电脑。

Qubes 由一家名为无形事物实验室的公司开发,但作为开源和自由软件发布。支持来自公司和社区;换句话说,ITL 支持 Fedora 和 Debian 的官方模板,但社区也支持 Whonix、Ubuntu 和 Arch Linux。

表 15-8 总结了 Qubes 操作系统的发行版选择标准。可以在 www.qubes-os.org 了解更多关于 Qubes OS 的信息。

表 15-8。

Distro Selection Criteria for Qubes OS

| 目的和环境 | 作为 ISO 映像和实时 USB 映像提供的独特版本。 | | --- | --- | | 支持 | 社区和 ITL | | 用户友好性 | 一旦你理解了它的工作原理,它就是一个相当用户友好的操作系统。 | | 稳定性 | 标准发布方案。还是有点不成熟。 | | 硬件支持 | 如果您想使用所有操作系统功能,则受限 | | 美学 | 桌面环境默认值 | | 桌面环境 | KDE 和 Xfce | | 初始化系统 | Fedora 域中的 systemd。实际上,它引导 Xen 管理程序。 | | 包装管理系统 | 每分钟转数 | | 体系结构 | 英特尔/AMD 64 位。最好使用 VT-x、VT-d 和 TPM 技术 | | 安全性/匿名性 | 尖端技术;它非常安全,并提供集成的匿名功能。 | | 原则和道德 | 允许您运行专有操作系统,如 Windows。实用的方法:用户决定。 | | 现场 CD | 是的,一个活的 USB | | 专业认证 | 不 |

索卢斯

Solus 是 2013 年作为 Chrome OS 的替代产品在爱尔兰发行的,后来停产了,后来更名了两次,最后在 2015 年完全重组并以当前形式发布为 Solus。这是一个专注于用户友好的 Linux 的原创发行版。它最近因其名为 Budgie 的原始桌面环境而广受欢迎,该环境不仅优雅、实用、轻便,而且直观、清新。

Solus 也有自己的包管理器 eopkg,它是 PiSi(Pardus 发行版的前包管理器)的一个分支。它有一个小的软件包库,虽然它的内部设计非常简单,但它并不完全是用户友好的(它缺少一个 GUI)。它仍然是一个不成熟的发行版,所以还有改进的空间。

表 15-9 总结了 Solus 的发行版选择标准。你可以在 https://solus-project.com 了解更多关于索路斯的信息。

表 15-9。

Distro Selection Criteria for Solus

| 目的和环境 | 面向桌面的独特版本。 | | --- | --- | | 支持 | 社区 | | 用户友好性 | 对于安装和正常使用,是的。对于维护,没有。 | | 稳定性 | 标准发布方案。一年一个主要版本,两年的支持。 | | 硬件支持 | 常规,带硬件自动检测。 | | 美学 | 作为发行版的核心价值之一,它赏心悦目。 | | 桌面环境 | 相思鹦鹉 | | 初始化系统 | 系统 | | 包装管理系统 | eopkg 和 ypkg | | 体系结构 | 64 位英特尔/AMD | | 安全性/匿名性 | 规则的 | | 原则和道德 | 实用主义方法:用户拥有最终决定权。 | | 现场 CD | 是 | | 专业认证 | 不 |

Void Linux

另一个 2008 年起源于西班牙的独立发行版 Void Linux 受到了 NetBSD(最初的开发者是维护者)的影响。事实上,这个发行版最显著的特性,包管理器,最初是为 BSD 设计的,后来移植到 Linux 上。和 NixOS 一样,Void 是作为 XBPS (X 二进制包系统)包管理器的测试平台而创建的。还有 Xpbx-src 可以在不使用根目录的情况下从容器内部的源代码构建二进制包。

另一个独特的特性是 init 系统 runit,这是一个非常简单的基于目录树的系统。从 BSD 继承的另一个特性是默认情况下替换了 LibreSSL 的 OpenSSL 库,并且从 OpenBSD 移植了更安全可靠的替代库。

表 15-10 总结了 Void Linux 的发行版选择标准。你可以在 http://voidlinux.eu 了解更多关于 Void Linux 的信息。

表 15-10。

Distro Selection Criteria for Void Linux

| 目的和环境 | 一个独特的版本,为每种桌面环境和 ARM 提供多种风格。 | | --- | --- | | 支持 | 社区 | | 用户友好性 | 不是一个用户友好的发行版 | | 稳定性 | 滚动发布方案 | | 硬件支持 | 规则的 | | 美学 | 每个桌面环境的默认设置 | | 桌面环境 | 启蒙,肉桂,LXDE,MATE,Xfce | | 初始化系统 | 跑啊 | | 包装管理系统 | 亮点 | | 体系结构 | 英特尔/AMD 32/64 位和 ARM | | 安全性/匿名性 | 合理的安全性加上使用图书馆 l | | 原则和道德 | 默认情况下,除了内核二进制 blobs,只有自由软件 | | 现场 CD | 是 | | 专业认证 | 不 |

阿尔卑斯山的

Alpine 是一个原始的挪威发行版,宣称自己是一个通用发行版,但几乎没有人以这种方式使用它,它是一个以安全为中心的非常轻量级的发行版,通常用于构建防火墙、路由器、VPN、VoIP、服务器和机顶盒。最近,它作为一个最小的 Docker 映像(只有 5MB)越来越受欢迎。

它是围绕 musl(glibc 的 C 库替代品)和 BusyBox(一个可执行文件中几个 Linux 核心工具的替代品)构建的,两者都是非常轻量级的替代品。安全特性包括一个带有 PaX 和 grsecurity 补丁的 Linux 内核,以及所有软件包中的堆栈粉碎保护(SSP)。此外,Alpine 可以从内存 RAM 加载和运行,这也是它用于嵌入式设备的原因之一。

Alpine 使用它自己的软件包管理器 APK,由于它的轻量级特性,它有一个相当大的软件包库。

表 15-11 总结了 Alpine 的发行版选择标准。你可以在 www.alpinelinux.org 了解更多关于阿尔卑斯山的知识。

表 15-11。

Distro Selection Criteria for Alpine

| 目的和环境 | Xen 和 ARM 平台的几个版本和附加映像。 | | --- | --- | | 支持 | 社区 | | 用户友好性 | 不便于用户使用 | | 稳定性 | 标准发布方案的稳定版本,但滚动发布不稳定。 | | 硬件支持 | 规则的 | | 美学 | 每个桌面环境的默认设置 | | 桌面环境 | gnome xfce 杀了他 | | 初始化系统 | OpenRC | | 包装管理系统 | 应用 | | 体系结构 | 英特尔/AMD 32/64 位和 ARM | | 安全性/匿名性 | 可靠的安全性 | | 原则和道德 | 没什么特别的。 | | 现场 CD | 不 | | 专业认证 | 不 |

斯塔利

Stali 是 2016 年首次发布的德国发行版。它给 Linux 世界带来了另一种激进的方法。该发行版是由 suckless.org 社区开发的,该社区是一个著名的程序员团体,也是一些流行工具的创造者,如窗口管理器 DWM、surf 浏览器和 dmenu。这个社区试图开发注重简单、清晰和节俭的高质量软件。这个群体有很强的原则性;他们的名字清楚地表明了这一点。

这种极简主义在发行版的所有方面都很明显,从它的大小(ISO 只有 34MB)到可用的包(只有少数精心挑选的包)。也没有可用的包管理器;发行版本身是一个 git 库,你只需要做一个# git pull来升级。这也允许您使用# git checkout 0.2.降级到特定版本

作为公认的 systemd 讨厌者,他们没有在 Stali 中实现这个 init 系统。他们开发了自己的 init 系统 sinit(代表 suckless init)。另一个众所周知的区别是,它们不遵循 FHS(文件层次标准);他们使用更简单的文件系统结构。

但是这个发行版的主要特点,也是给它起这个名字的原因(Stali 代表静态 Linux),是所有的二进制文件都是静态链接的,所以根本没有动态库。用的 C 库是 musl,结果不支持内核模块。

Stali 的发行版选择标准总结在表 15-12 中。您可以在 http://sta.li 了解更多关于 Stali 的信息。

表 15-12。

Distro Selection Criteria for Stali

| 目的和环境 | 作为 ISO 映像提供的唯一版本 | | --- | --- | | 支持 | 社区 | | 用户友好性 | 不便于用户使用 | | 稳定性 | 仍处于早期阶段 | | 硬件支持 | 穷人 | | 美学 | 每个桌面环境的默认设置 | | 桌面环境 | 窗口管理器 | | 初始化系统 | 初始化 | | 包装管理系统 | 没有。使用 Git 升级和安装。 | | 体系结构 | 64 位英特尔/AMD | | 安全性/匿名性 | 很好。它的独特性质可能使它不太容易受到常见漏洞的攻击。 | | 原则和道德 | 没什么特别的。 | | 现场 CD | 不 | | 专业认证 | 不 |

逻辑文件系统

虽然它不是很受欢迎,但我认为这个发行版是过去 15 年中许多小发行版的灵感,因为许多 Linux 开发者从这个始于 1999 年的加拿大项目中学到了东西。从零开始的 Linux(LFS)项目不是传统的 Linux 发行版(但它是 Linux 发行版);它由一本书和一组源代码包组成,可以从头开始构建自己的 Linux 系统。显然,这本书是发行版的灵魂,它旨在成为一个学习工具,了解 Linux 内部如何工作,以及构建一个最小但功能强大的 Linux 系统的过程。有几个服务器,您可以在那里下载该书每个版本的软件包集合,这些软件包会不断更新。

如果你按照书上的说明去做,那么用任何旧的、最小的发行版在五分钟内完成的事情将是一个冗长乏味的过程。但是最终你会对 Linux 有更深的了解,这是你使用一个友好的 Linux 发行版如 Ubuntu 10 年所能达到的。作为一个学习工具,LFS 是无价的,但是你需要对 Linux 如何使用这个发行版有真正的兴趣。

这个项目的相对成功启发了具有相同理念的其他项目,例如从零开始超越 Linux(BLFS)以构建更完整的 Linux 系统,从零开始交叉 Linux 以替代硬件架构,从零开始自动化 Linux(ALFS)以自动化该过程,以及从零开始强化 Linux 以构建更安全的 Linux 系统。例如,您可以使用 CLFS(甚至 LFS)构建一个非常小的 Linux 系统(小于 10MB ),或者将其安装在嵌入式系统或过时的平台上。

表 15-13 总结了 LFS 的发行版选择标准。你可以在 www.linuxfromscratch.org 下载这本书,了解更多关于 LFS 的信息。

表 15-13。

Distro Selection Criteria for LFS

| 目的和环境 | 作为书籍和源代码包集合提供的唯一版本 | | --- | --- | | 支持 | 社区 | | 用户友好性 | 显然不是,但同时这也是一次学习经历。 | | 稳定性 | 带有稳定版本和测试版的标准发布方案 | | 硬件支持 | 非常有限和基本 | | 美学 | 这是一个最小的、紧凑的、基于命令行的 Linux 系统。 | | 桌面环境 | 否。KDE、Gnome、Xfce、lxd 和 LXQt 中的 BLFS。 | | 初始化系统 | 系统 V 或系统 d | | 包装管理系统 | 没有。所有包都是从源代码构建的。 | | 体系结构 | 英特尔/AMD 32/64 位。CLFS 覆盖的其他建筑。 | | 安全性/匿名性 | 没什么特别的。HLFS 项目涵盖了这一主题。 | | 原则和道德 | 所有的软件包都是免费软件。 | | 现场 CD | 没有,但有几个版本的老 LFS 版本。 | | 专业认证 | 不 |

摘要

在这一章中,你看到了一些发行版,它们提供了一个更完整的 Linux 发行版的愿景。其中一些是非常新的,最有可能的是将近一半的人永远不会获得巨大的知名度。然而,它们仍然是 Linux 社区动态和活跃本质的一个例子。这些发行版的一些更深奥的创新可能永远不会成为主流的一部分,其中一些可能在不久的将来不会存在,但它们都是自由软件开发新思想的力量的见证。

在下一章中,你将会看到面向任务的发行版的汇编,这些发行版是为专门的工作环境中的一个特定任务或领域而构建的。

十六、面向任务的发行版

开发如此多的通用 Linux 发行版背后的原因也是面向任务发行版激增的原因。Linux 的灵活性和自由软件的优势使得制作一个满足独特目的的 Linux 发行版相当容易。这些发行版是可以定制的,但是所有的发行版都只考虑了一种类型的任务,具体到构建防火墙来保护网络免受安全破坏,或者模糊到科学研究。

在这一章中,我列出了几个利基发行版,并简要介绍了它们。这个列表并不全面,但是很准确。它只包括积极开发的发行版。(为什么要谈已经被放弃或者处于不确定状态的发行版?)

移动性和物联网

这些发行版将安装在移动设备上,如智能手机和平板电脑,或物联网(指的是传统计算概念之外的各种事物通过互联网的互联,如家用电器、车辆等。).在这两种情况下,这些发行版在功能和界面上都适应了这些新环境。

机器人

无处不在的 Android 系统是世界上扩展最多的移动操作系统。它目前在移动设备上拥有超过 50%的市场份额。它是由 Google 开发的,遵循开源模型,带有一些专有组件(主要是驱动程序和固件)。对于 Android 是否真的是 Linux 发行版还存在一些争议,但是 Chris DiBona (Google 的开源主管)、Linux 基金会和一些受欢迎的记者认为它是一个发行版。www.android.com

Ubuntu 手机/平板电脑/物联网

这些基于桌面版 Ubuntu 发行版的 Ubuntu 替代品可以在手机和平板电脑上使用。Ubuntu 的最终目标是成为一个 Linux 系统,让你可以把手机/平板当作 PC 使用。Ubuntu Core(也称为 Snappy)适合物联网。www.ubuntu.com/phonewww.ubuntu.com/tabletandwww.ubuntu.com/internet-of-things

旗鱼操作系统

由 Jolla 开发的 Sailfish 操作系统是由 Maemo 衍生而来的 MeeGo 操作系统(由诺基亚和英特尔开发)演化而来的。它仍在开发中,但其在市场上的存在几乎微乎其微(例如 Fairphone 2)。它与 Android 应用程序和硬件兼容。http://sailfishos.org

Firefox 操作系统

Firefox OS 很快就会停产,至少对于智能手机来说是这样,但它可能会继续为物联网开发(目前可用于智能电视)。它基本上由一个基于 Linux 内核的 Firefox 浏览器和 HTML5 应用组成。和 Android 一样,是否是真正的 Linux 发行版还有讨论的空间。http://mozilla.org/firefox/os

以云为中心的操作系统

这些发行版试图实现 Sun Microsystems 在 20 世纪 90 年代的格言“网络就是计算机”,该格言是由 John Gage 在 1984 年提出的。如今,随着云无处不在,我们只需将这种能力带到桌面上就可以结束这个循环。为此,这些发行版旨在用网络应用程序取代本地应用程序,并将数据存储在云驱动器上,而不是本地硬盘上。

铬操作系统/铬操作系统

Chrome OS 和 chrome OS 基于谷歌云(由谷歌制造),所有的应用程序和存储都驻留在谷歌云中(最近增加了对 Android 应用程序的支持)。它们使用 Linux 内核和 Chrome 浏览器,并且最初是基于 Gentoo 发行版和 Ubuntu 的新贵 init 系统。Chromium OS 是开源版本。Chrome OS 只能作为 OEM 操作系统用于笔记本电脑(通常称为 Chromebooks)或迷你台式电脑(称为 chrome box ),这些电脑由包括谷歌在内的几家制造商生产。http://google.com/chromebook

Linux Cube

Cub Linux 是一个基于 Ubuntu 的发行版,模仿了 Chrome OS 的功能和外观。https://cublinux.com

分散式路由器

路由器发行版安装在网络设备、路由器或 PC 上,作为网络路由器使用。它们可以替换以前制造商的固件,也可以用来用一台简单的 PC 和几块网卡构建路由器。它们通常提供路由器功能之外的多种网络服务,如内置防火墙。

OpenWrt(打开 Wrt)

OpenWrt 是一个面向嵌入式设备的 Linux 发行版,专注于路由器网络流量。它是许多 SoHo 路由器的 OEM 固件的流行和强大的替代品,但它也可以在任何 Linux 兼容的硬件上使用。http://openwrt.org

零 shell

Zeroshell 适合为服务器和嵌入式系统提供网络路由服务。它以 Live CD 或 Compact Flash 映像的形式提供,并通过 web 界面进行管理(因此得名)。www.zeroshell.org

道路交通工具

RouterOS 是基于 Linux 的路由器操作系统,由计算机网络制造商 MikroTik 开发,用于其设备。它也可以安装在常规的 Intel/AMD 计算机中。众所周知,它是一个可靠、强大、安全的操作系统。http://mikrotik.com/software

嵌入式系统和数控系统

我在这里包括了两个著名的 Linux 发行版,它们可以安装在嵌入式设备(范围很广)或 CNC(计算机数字控制)工业机器上。虽然 Linux 在嵌入式设备中很常见,但 Windows 是 CNC 机器中最常见的操作系统。事实上,我在不同领域的行业中工作了几年,这些行业拥有不同种类的数控机床,我从未见过 Linux 安装在任何一台机床上。

凯洛斯

KaeilOS 面向嵌入式设备(工业设备、自动化、医疗设备、汽车等)。).目前它是 Yocto 项目的一部分,Yocto 项目是 Linux 基金会的一个项目,旨在开发适合嵌入式设备的发行版。 www.kaeilos.comwww.yoctoproject.org

LinuxCNC

LinuxCNC 是一个用于控制 CNC 机器的发行版,如铣床、车床、3D 打印机、等离子切割机、激光切割机、机器人手臂等。它可以作为一个普通的软件包安装在 Debian/Ubuntu 中,或者从包含 Debian 发行版的 Live CD 中安装。www.linuxcnc.org

存储/ NAS

这种类型的 Linux 发行版适合于创建 NAS(网络连接存储),通常有几个磁盘在 RAID(独立磁盘冗余阵列)设置中工作。这类任务最著名的免费软件是 FreeNAS,这是一个基于 BSD 的软件,它得益于采用非常可靠和强大的 ZFS 作为其文件系统。由于许可冲突,ZFS 在 Linux 中还不完全可用;相反,这些发行版与 BTRFS 或其他文件系统一起工作来提供合适的解决方案。

摇滚明星

Rockstor 是基于 CentOS 和 BTRFS 的高级 NAS 和云存储解决方案。基本上它是 FreeNAS 的友好替代品,但是它基于 Linux 而不是 BSD。http://rockstor.com

OpenMediaVault

OpenMediaVault 是另一个基于 Debian 的 FreeNAS 替代方案,主要用于构建 NAS 解决方案的 SoHo 环境。它可以很容易地通过插件来扩展。www.openmediavault.org

企业服务器和瘦客户机

其中一些发行版试图在混合的企业环境中用 Active Directory、Outlook 和其他常见的可疑程序来取代 Windows 服务器的功能。瘦客户端发行版是普通硬件的一个很好的软件替代品。

克利罗斯

ClearOS 是一个 web 管理的商业服务器平台,它将许多不同的服务整合到一个系统中(网络、网关、服务器、云、安全、备份、邮件等)。).它是基于红帽的。www.clearos.com

zentyal 服务器

Zentyal Server 的前身是 eBox,它是 Windows Server 系统的商业替代品,与 Outlook 和 Active Directory 兼容。它基于 Ubuntu。www.zentyal.com

大学企业服务器

基于 Debian,Univention Corporate Server 作为分布式异构和虚拟化环境的服务器,与 Windows、OS X 和 Linux 系统一起工作。www.univention.com

网络服务器

NethServer 是一款基于 CentOS 的 Linux 服务器,适用于小型组织,作为一个中央系统运行,其模型基于预先配置的模块。http://nethserver.org

瘦站

Thinstation 是基于 Linux 的瘦客户端,可以连接到 Citrix、NoMachine、2X ThinClient、MS Windows 终端服务、VMWare、Cendio、Tarantella、X window 系统、telnet、VMS、tn5250 和 SSH。它可以从网络(以太网启动/PXE)或从光盘/USB/硬盘启动。http://thinstation.github.io/thinstation

电话

硬件 PBX(专用小交换机),也称为商业电话系统,可能非常昂贵,尤其是如果它具有复杂的功能,如 VoIP、应答机、呼叫计费等。软件 PBX 可以使用基本且更便宜的硬件来实现相同的功能,并且更加灵活和易于管理。Asterisk 是一个公认的软件 PBX,这两个发行版是构建一个完整的 Asterisk 系统以满足您需求的好方法。

阿斯特里斯知道

AsteriskNOW 是一个基于 CentOS 的发行版,可用于构建 Asterisk 系统,这是一个基于软件的 PBX,用于管理语音呼叫、语音邮件、VoIP、自动呼叫分配等。www.asterisk.org/downloads/asterisknow

橡皮筋在哪

基于 CentOS 的发行版可以将所有企业通信统一在一个解决方案中,Elastix 使用 Asterisk 为 PBX 提供传真、即时消息、电子邮件、VoIP 和视频功能。www.elastix.org

系统故障排除

为了让系统管理员和计算机技术人员的生活更轻松,一些发行版专注于计算机的部署、恢复和修复。通常运行一个发行版是可行的,但是如果不行,这些发行版会很有帮助。如果你需要的软件没有安装,也没有可用的网络连接,或者如果你只是想手边有一套救生工具,它们也是一个很好的选择。事实上,这些工具中的一些已经不止一次地拯救了我。

GParted Live

GParted Live 是一个专注于管理磁盘驱动器的 Live CD 发行版,使用流行的图形工具 GParted 和其他相关工具。http://gparted.sourceforge.net

系统资源 c

SystemRescueCD 是一个针对 Gentoo 发行版的工具汇编,旨在拯救一个失败的系统(不管是不是 Linux)。它以实时 ISO 映像的形式提供。www.system-rescue-cd.org

Grml(即时通讯)

系统管理员感兴趣的是,Grml 是一个基于 Debian 的 live CD 发行版,它为救援系统和部署提供了许多工具(2GB 压缩到不到 500MB)。它也可以作为任何 Linux 发行版安装。http://grml.org

Rescatux

Rescatux 是一个基于 Debian 的发行版,它有一个图形界面,通过菜单引导你轻松解决许多常见问题并拯救系统。www.supergrubdisk.org/rescatux

Clonezilla Live

Clonezilla 是另一个基于 Debian 的 Live CD,它是一个类似于 True Image 或 Norton Ghost 的映像/克隆/分区工具。它对于部署、备份和恢复非常有用。www.clonezilla.org

重做备份和恢复

类似于 Clonezilla,但有一个图形界面,使其用户友好,重做备份和恢复是基于 Ubuntu 的。http://redobackup.org

安全性和匿名性

安全是计算中的一个广阔领域,几乎涵盖了你能想到的每一个专业。无论哪里有硬件、软件或网络,安全都很重要,而且随着时间的推移,安全变得更加重要。您可以从不同的角度来实现安全性:通过渗透测试来发现系统的弱点,通过取证来收集证据并进行分析,阻止并分析来自系统外部的攻击,保护您的身份和通信免受潜在的窃听,分析恶意软件以了解其工作原理,等等。这些发行版涵盖了一种或多种计算机安全方法。

Kali Linux

Kali Linux 以前被称为 Backtrack,是一个基于 Debian 的发行版,它提供了一些渗透测试和数字取证工具。它是这类发行版中最受认可的。www.kali.org

BackBox Linux

基于 Ubuntu,BackBox Linux 专注于渗透测试、网络分析和计算机取证。它还提供道德黑客工具。https://backbox.org

Fedora 安全实验室

Fedora 安全实验室是 Fedora 实验室的一个项目,它提供安全审计、系统救援和取证,以及教授安全测试的安全环境。https://labs.fedoraproject.org/en/security

布莱克 Arch

Kali 和 BackBox 的另一个替代方案,Black Arch 基于 Arch Linux。它提供了 1,400 种用于渗透测试和安全研究的工具。http://blackarch.org

Parrot 安全操作系统

Parrot Security OS 是一套提供渗透测试、计算机取证、加密和匿名的工具。它基于 Debian,并为云环境做好了准备。https://parrotsec.org

维菲斯克

Wifislax 是一个基于 Slackware 的发行版,面向网络安全。这是一个非常轻量级的发行版,主要关注无线网络,支持大量的无线适配器。http://wifislax.com

尾部

Tails 代表失忆匿名直播系统,它是一个基于 Debian 的直播 CD,专注于提供完全的互联网匿名。默认情况下,它提供了通过 Tor 或 I2P 导航的工具以及通信加密工具。https://tails.boum.org

无名镇

基于 Debian 的发行版专注于互联网上的隐私、安全和匿名,Whonix 默认使用 Tor 网络,并使用两个虚拟机将桌面与网络分开。www.whonix.org

凯恩

CAINE(计算机辅助调查环境)是一个基于 Ubuntu 的发行版,提供了一套完整的专业数字取证分析工具。www.caine-live.net

灵巧的

DEFT 是一个基于 Debian 的用于计算机取证和事故响应的现场 CD 发行版,代表数字证据和取证工具。http://deftlinux.net

IPFire

IPFire 是一个原始的轻量级发行版,用于构建防火墙以保护网络流量,它基于模块化设计。它还可以作为代理服务器、IDS、病毒扫描程序或 VPN 网关。它有一个易于使用的网络界面。www.ipfire.org

解开防火墙

解开防火墙是一个基于 Debian 的网关发行版。它有一个模块化的设计,可以作为防火墙,入侵检测系统,虚拟专用网,网页过滤器等。它还有一个非常友好的网络界面。www.untangle.com/untangle-ng-firewall

Endian 防火墙

Endian Firewall 是基于 RHEL (Red Hat Enterprise Linux)的防火墙发行版。它可以作为防火墙工作,并提供 IPS、防病毒、web 和电子邮件安全检查。www.endian.com/community/overview

塞尔克斯

SELKS 构建于 Debian 之上,是一个专门的 Live CD 发行版,用于运行基于 Suricata 的一套工具,Suricata 是一个提供网络 IDS、IPS 和 NSM 引擎的工具。其他工具是用于分析警报的 Kibana 和用于配置 Suricata 规则的 Scirius。https://stamus-networks.com/open-source/#selks

演唱会

REMnux 是一个非常专业的基于 Ubuntu 的发行版,它执行 Windows 和 Linux 恶意软件的逆向工程。它还提供了分析 Flash 程序、混淆的 JavaScript、PDF 文件和内存的工具。https://remnux.org

旧电脑

像发展中国家那样资源匮乏的人往往跟不上计算机技术竞赛的步伐,因此他们通常拥有过时的(通常是二手的)硬件。以下发行版是与旧硬件配对的好选择。

小狗 Linux

Puppy Linux 是一个非常受欢迎的 Live CD 发行版,在内存和 CPU 资源都很少的旧计算机上运行良好。这是一个原创发行版,非常非常轻量级;它加载到 RAM 中(它最大需要 256MB,但它只需要 48MB 就可以工作),以提供快速但功能齐全的桌面。http://puppylinux.org

微内核 Linux

Tiny Core Linux 是一个最小的发行版,大约 16MB,但只需要 46MB 的内存。它有一个非常简约的桌面,不是默认安装的,但你可以很容易地安装它。http://tinycorelinux.net

LXLE

LXLE 基于 Ubuntu LTS(另一个轻量级发行版),它使用轻量级 LXDE 桌面管理器。它可以在只有 512MB 内存和 8GB 硬盘空间的情况下工作。www.lxle.net

科学

没有计算,科学是不可想象的。有时你需要适合你的领域的工具,有时你需要计算能力来运行非常消耗资源的复杂算法。以下发行版是由科学家根据科学需要开发的。

科学 Linux

Scientific Linux 是一个基于 Red Hat 的发行版,最初由 Fermilab 和 CERN(现在切换到 CentOS)共同开发,它通过基础设施和研究工具来满足科学计算机的需求。www.scientificlinux.org

生物 Linux

Bio-Linux 是基于 Ubuntu 的,它提供了一个全功能的生物信息学工作站,其中有大量针对该环境的工具。http://environmentalomics.org/bio-linux

Fedora 科技

Fedora Scientific 是 Fedora Labs 的一个项目,它提供了一组默认预装的最常用的开源科学和数值工具。http://labs.fedoraproject.org/en/scientific

教育

这些教育发行版旨在替代世界各地中小学和大学中广泛使用的专有操作系统和软件。这些选择从以更便宜的方式建立计算机实验室到支持教育机构的所有方面。

Edubuntu

Edubuntu 是 ubuntu 专用于教育的特殊版本,它是为课堂使用而创建的。主要目的是帮助计算机技能有限的教师创建一个计算机实验室。www.edubuntu.org

超级学生

UberStudent 是另一个基于 Ubuntu 的用于教育目的的发行版,但它主要面向学生、教师以及中等和高等教育学校。http://uberstudent.org

德比安杜

DebianEdu,也称为 Skolelinux,是一个基于 Debian 的发行版,致力于提供一个自由软件来替代专有的教育软件。https://wiki.debian.org/DebianEdu

家庭影院和音响系统

如果你想为你的客厅建立一个家庭影院系统,或者你想在发烧友的水平上享受你的音乐,这些发行版可以为你做到这一点。他们可以帮助你实现一个更便宜,但非常强大的替代通常的商业。您可以用一个简单的 Raspberry Pi、一个 DAC、一个放大器和一对扬声器创建一个高保真系统。至于家庭影院,以下发行版使这些系统比任何商业替代品都更加灵活。

神话故事

Mythbuntu 是预装了 MythTV 的 Ubuntu 的衍生物,MythTV 是用于构建家庭影院 PC 的媒体中心软件。它可以作为独立系统工作,也可以作为家庭中几个客户端的服务器,或者在混合配置中工作。www.mythbuntu.org

openelec(打开)

OpenELEC 允许你用嵌入式设备或单板计算机(如 Raspberry Pi 系列)制作一个媒体中心。它使用流行和强大的 Kodi 娱乐中心软件作为最小 Linux 系统内的 HTPC。一些制造商将其用作机顶盒、硬件媒体播放器和媒体中心系统中的 OEM 操作系统。http://openelec.tv

奥斯 MC 公司

OSMC,前身是 Raspbmc,是 Raspberry Pi 和 Apple TV 的另一个媒体中心,该发行版也使用 Kodi 娱乐中心软件,下面有一个最小的 Debian 发行版。http://osmc.tv

符文音频

Rune Audio 是安装在 Raspberry Pi 和类似设备中的发行版,可以转换为 HiFi 数字音频播放器(通常连接到 DAC)。它基于 Arch Linux,可以从各种客户端(Android、iOS Web、Windows 和 Linux)进行远程控制。www.runeaudio.com

沃卢米奥

Volumio 是一个面向发烧友的基于 Debian 的发行版,它可以安装在类似 Raspberry Pi 等嵌入式设备上。它可以播放多种来源的音乐,如 Mp3、MPD、Spotify、SoundCloud、Last。FM 等。它可以通过网络界面进行远程控制。https://volumio.org

赌博

以下发行版可以让你的电脑成为一个游戏系统,一个传统上为 Windows 机器和游戏控制台保留的系统。Linux 和那些系统不是一个级别的,但是这些发行版会让你相信在 Linux 中享受游戏是可能的。

我们走吧

SteamOS 是一个基于 Debian 的发行版,作为 Steam Machine 视频游戏的游戏平台。它最初的目的是作为 Stem 机器的 OEM 操作系统,但是你也可以构建自己的系统并安装 Steam 操作系统。http://store.steampowered.com/steamos

Fedora 游戏旋转

Fedora 的一个风格(Spin ),作为游戏平台展示 Fedora 发行版,Fedora Games Spin 包括几个预装的游戏。https://labs.fedoraproject.org/en/games

多媒体和艺术

艺术家和创作者是这些发行版的目标受众,这些发行版提供了适合他们需求的工具。OS X 和 Windows 在这些领域可能有更好的工具,但它们通常也很贵,而 Linux 发行版更便宜或免费,仍然可以让您获得专业的结果。有些工具,比如 Blender,功能非常强大,是工业级的。

Ubuntu Studio

显然,Ubuntu Studio 是基于 Ubuntu 的,但是它增加了用于音频、视频、图形、摄影和出版任务的创造性工具。http://ubuntustudio.org

Fedora 设计套件

默认情况下,Fedora Design Suite 提供了几种多媒体制作和发布工具。https://labs.fedoraproject.org/en/design-suite

摘要

本章涵盖了它们各自的任务和发行版。这个编译可能会更广泛,无论是在任务中还是在发行版中,但是我认为这已经足够让你知道你可以期待什么了。但是,请注意,这些发行版通常比传统发行版更加短暂,它们通常会在几年内被抛弃或被其他发行版取代。如果你对面向任务的发行版感兴趣,你应该在本章提到的发行版和任务之外进行搜索。

在线奖励章等着你!在这篇文章中,我向您展示了几个不是 Linux 的操作系统,但是它们与 Linux 有足够的共同点,值得您关注。如果您愿意了解更多信息,请访问

第一部分:Linux 发行版

Linux Distros

在这本书的第一部分,你对 Linux 发行版有了一个很好的了解,以及在比较各种发行版以选择适合你的发行版时你必须考虑的问题。您还将了解 Linux 发行版的起源,为什么会有这么多发行版,以及它们之间的关系。

在第一章中,你学习了 Linux 发行版的本质。为了做到这一点,您需要理解 Linux 是什么,而完成这一点的最好方法是了解它的起源和一点它的发展历史。基本上,我提供了将 Linux 及其发行版放在上下文中所需的最少量的信息。

第二章是为了比较两个或更多 Linux 发行版的性能和特性而必须考虑的要点的汇编。其中一些观点涵盖了主观问题,比如个人对一种美学的偏好,或者你是否特别喜欢某个桌面环境。尽管如此,你还是会有一份清单作为起点。

这本书的第三章也是最后一章介绍了 Linux 发行版的家族树。提供这些信息是为了让您知道它们之间的关系(至少是更相关的发行版),并了解为什么会有这么多的发行版以及为什么一个特定的发行版会有这么多的衍生版本。

第二部分:通用发行版

General Purpose Distros

在本书的这一部分,我将详细介绍十个 Linux 发行版。所有这些都是通用发行版,这是最常见的类型。这是本书的核心;这些章节让你对每个发行版有了更好的了解,并很好地展示了一个发行版与另一个发行版的比较。这些章节还提供了第二章中关键决策点的真实例子。另外,这些章节为你节省了大量测试发行版的时间,以便为你选择正确的版本。

接下来的章节提供了每个发行版的简要描述以及它们的一些历史和哲学。您还将学习如何安装、维护 Linux 发行版,并了解它的优缺点。最后,我包括了每个特定发行版的所有这些要点的简要汇编。

为什么只有这些特定的发行版?

如果我想让这本书保持一个合理的长度和价格,我不能详细分析所有可用的 Linux 发行版。因此,我必须有所选择:我选择深入介绍主要的发行版,但我也想向您展示可用的广泛内容。为此,我选择了流行的发行版和两个高级发行版,甚至还有一个“实验性”发行版。本书中详细介绍的 Linux 发行版有(按顺序):

Ubuntu   Fedora   Debian   OpenSUSE   Mint   Mageia   elementary OS   Arch   Gentoo   Slackware   NixOS

在介绍完这些发行版之后,我会用另外一章的篇幅简要介绍一些其他的发行版;这里的想法是让您对这些发行版有一个大概的了解,而不去探究其他发行版的细节。

第三部分:面向任务的发行版

Task-Oriented Distros

这是一个简短的章节。这是因为以与通用发行版相同的方式和相同的详细程度介绍面向任务的 Linux 发行版将需要另一本书——不是因为面向任务的发行版与通用发行版一样多,而是因为面向任务的 Linux 发行版涵盖了如此多的不同任务。所以我怎么能选择一个任务和一个发行版而不包括其他的呢?我怎么可能知道你对哪些领域感兴趣呢?

最好的解决方案是将相关的任务按类别分组,然后提供相关 Linux 发行版的列表和描述。

posted @ 2024-08-02 19:34  绝不原创的飞龙  阅读(2)  评论(0编辑  收藏  举报