协议: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.
图 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 这个词的开始(经常与企鹅联系在一起)。
图 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)实验室,并成为这一亚文化的一部分。在那种环境下,他成长为一名专业的系统程序员,他已经将这些道德深深地融入了自己的生活方式中。
图 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 年出现。)
图 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 发行版时需要考虑的重要因素。选择一个系统的第一步,不管它是什么,是问你自己你将如何使用它。使用你的新操作系统来撰写信件和追踪你的财务状况与使用一个新操作系统来服务互联网上的市场是不一样的。您可以使用同一个发行版来实现这两个目的,有些人就是这样做的,但是在大多数情况下这将是一个非常糟糕的决定。即使你是计算机新手,你也可能知道,在家庭和专业工作中使用相同的工具通常不是一个好主意。
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 发行版时间线开始。
图 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 。
Figure 3-3 . The Linux distros timeline: 1996-2005, Part II
图 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 发行版历史时间线上的最后一个时期。这一阶段将在下一节中解释。
图 3-5。
The Linux distro timeline: 2005-2015, Part II
图 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 在未来如何被世界其他人所看待。
图 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 的免费支持,您可以使用两种资源:
此外,您还可以从各种渠道获得免费的社区支持:
- Wiki:
https://wiki.ubuntu.com
- 论坛:
http://ubuntuforums.org/
或http://discourse.ubuntu.com
- 求 Ubuntu:
https://askubuntu.com
- IRC:
https://wiki.ubuntu.com/IRC/ChannelList
- 邮件列表:
http://community.ubuntu.com/contribute/support/mailinglists
当然,你可以为社区做贡献,并尽可能多地回馈社会,以帮助社区在 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 所示。
图 4-2。
The Canonical shop, where you can purchase a Ubuntu LTS release on an USB stick
图 4-3 显示下载页面。通常有两个主要选项可供选择:最新的 LTS 版本和最新的普通版本(它们被称为“版本”而不是“版本”,但为了保持一致,我将坚持使用“版本”这个术语)。如果你用你的电脑工作或者你不需要最新版本的软件,我强烈建议你安装 LTS 版本;在其他情况下,选择最新的正常版本,你就可以开始了。在写这本书的时候,相应的版本是 16.04 LTS。
图 4-3。
The Ubuntu desktop download page
我选择了最新的 LTS 版本,64 位的 16.04 来展示 Ubuntu 的安装过程,因为这是大多数人会选择的版本。在你按下按钮下载发行版后,Canonical 会向你显示一个中间页面来维护发行版(见图 4-4 )。你可以捐款(你可以出于同样的目的从他们的商店购买商品)或者你可以跳过它继续下载。
图 4-4。
The intermediate page where you can donate to the project
如果你需要一个更老的版本,你也可以选择一个替代的下载(下载页面上有一个链接),一个网络安装程序(在安装时从互联网上下载你需要的所有东西;这仅推荐用于快速在线连接),或者您想要使用 BitTorrent 协议来下载 ISO 映像(参见图 4-5 )。
图 4-5。
The Ubuntu alternative downloads page for the desktop version
下载 ISO 映像(16.04 版本大小约为 1.4GB)后,您可以将其刻录到 DVD 或 USB 驱动器上。从那个 Ubuntu 镜像启动后,你会看到第一个屏幕,这是一个黑屏,底部有一个图片,如图 4-6 所示。这个画面只持续几秒钟。
图 4-6。
The first screen that appears in the boot process
如果您在该屏幕消失前按下任何键,您将跳转到如图 4-7 所示的屏幕。
图 4-7。
The text installation menu of Ubuntu
该屏幕是一个文本菜单,允许您使用常规图形安装过程中不可用的几个选项。它允许您测试您的 DVD 光盘或您的内存,通常是为了诊断一些问题发生在以前的安装尝试。但您也可以使用功能键设置其他高级选项,如底部菜单所示,如进行 OEM 或专家安装,或避免某些硬件检测问题,或更改安装的默认语言。这些选项是为中级/高级用户设计的,我不建议尝试任何一个,所以不要在前面的屏幕中按任何键,让我们继续启动过程。
出现的下一个屏幕是另一个黑屏,中间有一个图像,有一个动画图形向您显示启动时的活动(参见图 4-8 )。
图 4-8。
Image shown on the boot progress screen
在引导过程结束时,您会在图形环境中看到第一个屏幕,如图 4-9 所示。
图 4-9。
The Welcome screen after booting the Ubuntu ISO image
这个屏幕提供了两个主要选项:“试用 Ubuntu”和“安装 Ubuntu”您还可以设置安装过程中使用的语言。在顶部的菜单栏中,您还可以设置其他选项(其中一些等同于我之前向您展示的文本菜单),如网络或辅助功能选项。如果你选择“试用 Ubuntu ”,你将启动一个 Ubuntu 的实时会话,在这个会话中,你可以测试很多东西,而不需要在你的硬盘上写任何东西,并且你总是可以从那里继续安装过程。跳过这个过程。相反,按下“安装 Ubuntu”按钮。
下一个屏幕(图 4-10 )会检查您的计算机是否有足够的磁盘空间和互联网连接。安装发行版不需要互联网连接,但是如果你有一个可用的互联网连接,并且你选择了“安装时下载更新”,发行版将会安装可用的更新包,而不是 ISO 镜像中的旧包。我建议检查这个选项,原因有两个:
- 如果你想让你的 Linux 保持最新(我强烈建议你这样做),你必须在安装后的第一次更新时花额外的时间下载软件包。所以,如果你不着急,而且你有一个良好的互联网连接,现在就做吧。
- 如果任何更新都是安全更新,那么当你第一次启动新的 Linux 并使用互联网时,你将避免任何可能影响你的系统/数据的安全漏洞,因为你还没有更新系统。
图 4-10。
The first step in the Ubuntu installation process
在发行新版本后,甚至第二天,经常会有新的包更新。在 Linux 和一般的开源软件中,定期更新是非常正常的,甚至是每天更新。如果你使用像 Ubuntu 这样的发行版,也许你不会每天都有更新,但是如果你使用滚动发行版,你一方面可以指望没有任何更新的日子(当然这取决于你系统中安装的软件包的数量和种类)。
该屏幕上的最后一个选项是安装专有软件,如显卡和无线驱动程序、Adobe Flash 或 mp3 Fluendo 插件(允许多个应用程序再现. mp3 文件)。之所以这是可选的,是因为这个软件不是自由许可的,有些人不同意这一点。装不装由你决定;然而,例如,由于音频文件中 mp3 格式的流行,我选择安装插件,这样我就可以播放这些文件。
按下继续按钮。出现的下一个屏幕如图 4-11 所示。这是安装中最复杂的部分,因为您必须做出一些关键的决定。基本上这部分是决定你如何管理你的硬盘来安装 Ubuntu。这里有两个主要选项:自动选项和手动选项。
图 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,所以我可以放心地按下继续按钮。
图 4-12。
The confirmation step before making changes to the hard disk
图 4-13 显示了用于选择时区以正确调整日期和时间的交互式地图。通常 Ubuntu 会自动检测你的当前时区,但是你也可以通过导航到地图上合适的区域来手动选择。
图 4-13。
Interactive time zone selection
选择您的时区并按下继续按钮后,您必须选择您的键盘布局和语言(图 4-14 )。通常这也会被自动检测到。否则,您可以按下按钮,尝试再次以交互方式检测它(它会要求您按下一些键,可能会问一些问题),然后在交互式文本字段中测试结果。完成后,您可以按继续按钮。
图 4-14。
Keyboard layout and language selection screen
图 4-15 显示了您必须做出任何决定的最后一个屏幕。你基本上要决定你的名字和密码。实际上,我建议在开始安装之前决定这些事情。我建议你选择一个易于在任何键盘上输入的用户名(如果你愿意,在第一个文本字段中输入你的真实姓名),因此避免任何非英语字母数字字符。如果你的键盘坏了,或者你的安装失败了,没有检测到你的键盘布局,你会为此感谢我的,相信我。
图 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 )。底部是一个进度条和你现在所处的步骤(文本)。这个过程需要的时间取决于你的电脑和你的互联网连接速度,因为它要从互联网上下载几个软件包。
图 4-16。
Copying the files to the hard disk and finishing the setup
在硬盘上安装 Ubuntu 的最后,您会看到一个对话框,通知您安装已完成,您需要重新启动计算机才能享受新的 Ubuntu Linux 操作系统(参见图 4-17 )。
图 4-17。
The installation is complete . Restart your computer
所以重启你的电脑。启动后,出现的第一个屏幕是启动新会话的登录屏幕(见图 4-18 )。在这里你需要介绍你的密码(我希望你没有忘记它。每次管理过程都需要这个密码)。如果您想在系统中做一些事情(如浏览互联网或使用任何已安装的应用程序),您可以作为访客登录,但此会话中的所有数据都是临时的,您将无法访问硬盘上的数据。然而,对于系统的任何访问者来说,这是一个理想的选择。
图 4-18。
The login screen to Ubuntu 16.04 LTS
所以输入你的密码。现在你可以享受 Ubuntu 了。您将看到的第一个屏幕是键盘快捷键列表(参见图 4-19 )。按住“Super”键(通常是带有 Windows 符号的那一个)可以一直显示该屏幕。一旦你学会了,这些快捷方式是非常有用的。它们会帮助你提高生产力,所以不要忽视它们。
图 4-19。
First screen after you successfully install Ubuntu
如您所见,安装过程非常简单。不要被那些说 Linux 很难安装和使用的谣言所左右。如今,这不是真的;你可以很容易地安装和使用 Linux,Ubuntu 就是一个很好的例子。当然,你可以选择一个更复杂或更精密的,你可以从文本菜单和专家模式下安装相同的 Ubuntu,但这取决于你和你的知识和经验。
保持
维护你的 Linux 操作系统有三个基本任务,Ubuntu 让它们变得非常容易。与安装过程一样,我将向您展示完成这些事情的简单方法;我将在其他章节中介绍高级选项。这三个基本任务是更新、安装/删除应用程序和升级。
更新
通常 Ubuntu 会在有新的更新时通知你(见图 4-20 ),你只需要按照步骤操作。但如果你想手动检查是否有新的更新,然后安装它们,这是非常容易的;你只需要执行软件更新程序(见图 4-21 )。
图 4-21。
The Software Updater application checking for updates
图 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 )。你可以从中删除或添加任何官方存储库中可用的应用程序,这里有很多。您还可以检查软件包更新,并从那里执行它们。
图 4-22。
The Software tool
应用程序按类别(和子类别)组织。如果你点击其中一个,你会看到该应用程序的详细简历,有时甚至会看到截图(见图 4-23 )。安装/拆卸过程非常简单直观。
图 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 那个大。然而,它并不缺乏支持其用户的方法。以下是从社区获得帮助的渠道:
- 文档:
http://docs.fedoraproject.org/
- 常见问题:
https://fedoraproject.org/wiki/FAQ
- Wiki:
https://fedoraproject.org/wiki
- 问 Fedora:
https://ask.fedoraproject.org/en/questions/
- Fedora 论坛:
http://fedoraforum.org/
- 社区:
http://fedoracommunity.org/
- 邮件列表:
https://lists.fedoraproject.org/mailman/listinfo/users
- freenode 上的 IRC:
#fedora
频道
用户友好性
从一个 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 的东西。
图 5-1。
The download page of Fedora 23 Workstation
如果您单击下载按钮,下载将自动开始。撰写本文时的版本是 23,默认架构是 64 位。该图像目前的大小为 1.4GB,只能存储在 DVD 或 USB 驱动器上。如果你需要不同的建筑、形象或风格,你可以去页面底部,在那里你会看到类似于图 5-2 的东西。
图 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.
图 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.
图 5-4。
The advanced configuration options of the installation boot
图 5-3。
First screen of the Fedora installation process
显而易见的选择是继续使用默认选项,然后等待 10 秒钟或按 Enter 键进入下一步。出现在你面前的下一个屏幕是一个黑色的屏幕,在底部有一个动画进度条,在这一步的最后是 Fedora 发布版本,如图 5-6 所示。
图 5-6。
The bottom of the screen when Fedora Live is booting up
当 Fedora Live 最终启动时,出现的欢迎屏幕(图 5-7 )让您在两个选项之间进行选择:在系统的硬盘上安装发行版,或者继续在 Live 会话中测试 Fedora。如果你是 Gnome 环境的新手或者你想测试 Fedora,你可以选择稍后通过 Activities 菜单安装它。让我们选择“安装到硬盘”选项继续。
图 5-7。
Fedora Workstation Live welcome screen
这是安装过程中真正的第一步,首先要做的是选择在所有后续步骤中使用的语言(默认情况下是在发行版中)。如果你有一个互联网连接,它会试图通过你的 IP 广域网地址自动检测你的地区(准确地说是时区),并自动为你设置语言。否则,它将默认选择英语(美国),如有必要,您必须手动更改。还有一个按钮叫帮助!,这是一个上下文帮助,可以在此过程中为您提供指导。选择语言后,按下“继续”按钮(图 5-8 )。
图 5-8。
The language selection screen
下一个屏幕包括几乎所有您必须做出的选择,以完成这个过程。与上一个屏幕一样,Anaconda(Fedora 安装程序)将尝试为您做出所有决定,在大多数情况下,这些决定都是正确的。然而,即使所有的选择都是正确的,如图 5-9 所示,程序也不会允许您继续,直到您完成安装目的地部分。原因是显而易见的:在您对硬盘进行任何更改之前,您需要检查它们。让我们浏览一下这里包含的所有四个部分。如果按下帮助按钮,将会出现如图 5-10 所示的帮助对话框。
图 5-10。
The context help that can guide you through all of the installation
图 5-9。
The installation summary screen
在键盘部分(图 5-11 )你可以选择你想在你的发行版中使用的键盘布局。像往常一样,自动选择正确答案的概率很大;如果没有,必须手动选择。这里有两个有趣的选择。首先,如果您用鼠标从列表中选择任何布局,您将看到它的交互式表示(帮助您直观地识别它)。其次,如果您添加了多个布局,您可以从列表中选择您想要用来在它们之间切换的键盘组合。要选择后一个选项,您必须使用选项按钮。
图 5-11。
The keyboard layout selection screen
时间和日期部分允许您在地图上交互选择您的时区,并手动设置时间和日期(图 5-12 )。如果你在线的话,这个大概是自动选择正确的。与 Ubuntu 的区别之一是,除了能够手动调整时钟和日历,你还可以切换网络时间,甚至配置它。NTP(网络时间协议)意味着你的系统时钟总是正确的,因为它是通过检查互联网上的时间服务器定期调整的。如果您想要一个不同于 Fedora 默认设置的 NTP 服务器,也可以通过齿轮图标来设置。这在 Ubuntu 中是默认开启的,但是你可以看到 Fedora 对此有不同的处理方式。作为 Red Hat 遗产的一部分,也作为其不同哲学的一部分,您将继续看到 Fedora 是如何给用户更多的责任的,尽管它易于使用和安装。我建议您坚持使用默认的 NTP 选项。进行必要的调整或简单地检查一切是否正确,然后按下完成按钮。
图 5-12。
Selection of time and date by region
网络和主机名部分(图 5-13 )有点复杂,因为您只能在这里更改主机名。网络配置的其余部分在 Gnome 的配置选项下。如果您不在本地网络上或者您不理解该选项,请将主机名保留为默认值。剩下的配置可以通过顶部 Gnome 菜单栏右边的图标来访问,在那里你可以看到音量、网络和电源图标。如果你点击这个图标,你会看到如图 5-14 第二个对话框。在这个对话框中,您将看到 Anaconda 检测到的当前网络配置;它可以是有线或无线连接。您还会看到用户和音量设置以及用于访问配置、屏幕锁定和电源设置的图标。如果您单击网络连接图标,它会显示两个选项:打开/关闭连接和访问设置。点击设置,弹出对话框显示所有网络设置,如图 5-14 底部所示。
图 5-14。
How to access the network settings in the installation process
图 5-13。
The first part of the network configuration
左侧是检测到的所有可用连接(您可以添加更多)和代理配置的列表。右边是关于当前所选连接的信息和一个开关按钮。如果您通过带有 DNS 服务器的路由器(有线或 Wi-Fi)或通过本地网络连接到互联网,所有这些都会自动正确配置。如果没有,或者如果你想调整一些东西,你可以随时通过齿轮图标改变设置。还有,你可以通过添加配置文件按钮管理不同的配置文件,这对于笔记本电脑连接不同的网络非常有用(自动或每次都要求输入密码;这是你的选择)。
此安装摘要屏幕的最后一部分是安装目的地部分。这些信息对您来说是独一无二的,必须进行审核(这是强制性的)。如图 5-15 所示,该屏幕有四个重要部分:
图 5-15。
The Installation Destination section
- 本地标准磁盘。在这里,您可以找到系统上目前可用的普通硬盘(HDD、SDD、USB)。目前,只有一个常规的 1TB 硬盘;其他的例子,我会给你看其他的情况。
- 专用磁盘和网络磁盘。在这里你可以找到像 iSCSI 和 FCoE 那样的局域网磁盘。这些通常是为在本地网络上工作的高级用户准备的。我在这里跳过这一部分。
- 其他存储选项。这是您决定接受已经为您做好的自动设置或自定义它们的地方。这是我接下来要探讨的部分。
- 完整磁盘摘要。它看起来不重要,因为它只是底部的一个链接,但它是你的磁盘的汇总,你可以选择从哪个磁盘启动(通常你不需要改变它)。
在“其他储物选项”部分,您必须特别注意您正在做的事情。正如我在 Ubuntu 章节中解释的,你可以在这里决定是否加密你的数据(整个磁盘)。在这个安装示例中,我将跳过这一步。这是分区主题,我想花点时间解释一下选项。如前所述,这种配置通常是自动完成的,所以您可以简单地按下 Done 按钮并开始安装。我建议只有当你有一个空磁盘时才这样做(或者如果你不介意丢失当前的数据)。但是,如果您想留出一些磁盘空间(例如,安装另一个操作系统),您必须选择“我想腾出额外的可用空间”选项。
让我们忽略所有这些,通过选择“我将配置分区”选项来手动配置分区。选择该选项后,请按“完成”按钮。您将看到如图 5-16 所示的屏幕。
图 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)。
图 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 之外的文件系统。最后一件事:如果您进行了任何更改,并且认为它们不好,您可以随时通过按下“宗卷/分区”列表底部的“↻”按钮,然后在出现的新对话框中按下“重新扫描磁盘”按钮,从头开始。好了,让我们保留这些设置,然后按屏幕左上角的完成按钮。
图 5-18。
The automatically defined partition scheme for LVM
出现一个对话框,显示将要对磁盘进行的更改。如果正常,按下接受更改按钮(图 5-19 )。您将返回到安装摘要屏幕。“开始安装”按钮已启用;按下按钮,安装过程会将更改写入您的磁盘,并开始在您的系统上安装操作系统。然而,即使在分区和安装 Fedora 的过程中,您仍然需要设置两个以上的东西(图 5-20 )。
图 5-20。
The User Settings screen of the Fedora installation process
图 5-19。
The summary of changes to write to the disk
这里和 Ubuntu 的另一个很大的区别是,你需要为 root 用户(主账号和默认的 admin 账号)设置密码;这在 Ubuntu 中是默认禁用的(你使用的是普通用户,管理事务需要你的密码)。这是应该做的事情,尽管这不太容易,并且需要用户承担责任。如果你想模仿 Ubuntu 的行为,你可以随时将你的用户添加到wheel
组。让我们在根密码部分建立根密码(图 5-21 )。
图 5-21。
Setting the root password
这里要注意设置一个强密码,因为这是我们讨论安全性时最关键的攻击点之一。如果有人知道你的根密码,他可以拥有你的整个系统,小心!设置密码并返回到上一个屏幕后,您可能会注意到一些奇怪的事情。用户创建部分现在可以了,不需要创建另一个用户。您可以继续,但是我强烈建议您永远不要使用 root 帐户来使用您的系统。始终使用另一个普通用户来操作您的系统。这是一个严重的安全缺陷(也是多年来 Window 用户的主要缺陷)。我认为 Fedora 这样做是为了允许 OEM 安装。(以后你随时可以自己创造;事实上,如果你现在不做的话,你会在 Gnome 设置中做的)。无论如何,让我们创建一个新用户,它将是您的计算机图 5-22 的默认用户。
图 5-22。
Create a new user account
这里有两个主要选项:让该用户成为管理员,以及打开/关闭对密码的需求。如果你想模仿 Ubuntu 的行为,设置第一个选项;不应设置第二个选项(仅用于创建来宾帐户)。千万,绝对千万,不设置第二个就设置第一个选项;拥有管理员权限但没有密码的用户很容易导致灾难(尤其是当您的系统连接到互联网时)。在高级部分,你可以调整这些设置,但是如果你不理解就不要碰它们。设置这个新用户并返回到上一个屏幕后,您只需等待安装完成,然后重新启动系统就可以使用您的新 Fedora Linux 操作系统了(图 5-23 )。
图 5-23。
The first screen of a fresh new Fedora Linux OS
重启系统后,出现的第一个屏幕很难看(图 5-24 ),但在 Linux 中很常见;这是一个文本菜单,允许您在常规 Fedora 会话和救援会话之间进行选择(如果常规会话无法启动,您可以使用救援会话)。还有两个面向高级用户的选项,如“e”和“c”键。如果您按 Enter 键或稍等片刻,系统将继续启动过程。
图 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 系统,但它仍然太新,可能会与一些应用程序崩溃,特别是一些显卡。
图 5-25。
The desktop environments available to you
现在你已经登录到了新的操作系统,但是一个新的惊喜在等着你:Gnome 初始设置。您可以在这里设置 Gnome 语言、键盘布局、隐私设置和在线帐户(如果您在安装过程中没有创建用户,还可以设置一个本地帐户)。这些设置通常是默认设置的,如果您不想更改任何内容,可以跳过所有这些设置。最后,Gnome 帮助系统的入门手册(图 5-26 )会帮助新用户熟悉如何使用 Gnome。
图 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 自己的大多数包,无论喜欢与否,都必须使用命令行。
图 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 包。这并不难,而且你可以更好地控制你的系统。
图 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 )。
图 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/doc/index.en.html
- Debian 管理员手册:
www.debian.org/doc/manuals/debian-handbook/
- Debian 参考:
www.debian.org/doc/manuals/debian-reference/
- Debian 管理员手册:
- Wiki:
https://wiki.debian.org/FrontPage
- 邮件列表:
www.debian.org/MailingLists/index.en.html
- 论坛:
http://forums.debian.net/
和www.debianhelp.org/
- 问答地点:
http://ask.debian.net/
- IRC:
#debian
在irc.debian.org
虽然 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 的东西。
图 6-1。
The downloads page from the Debian project
您可以从几个选项中选择:netinstall 映像(如果您有良好的互联网连接,可以从互联网安装几乎所有的软件包)、实时映像或完整映像。有了完整的映像,您可以下载所有的映像(有一个它们的集合)以便能够离线安装任何包,或者您可以只下载第一个映像来进行基本安装(您可以在以后从存储库中安装任何东西)。如果您想为那些没有互联网连接的地方安装并拥有一个“硬”脱机 CD/DVD 存储库,这是一个有趣的选择。在同一页的下面,Debian 还提供了从第三方购买 DVD/CD 或 Debian 预装电脑的选项。
让我们选择最常见的选项,完整的安装映像,因此单击链接并转到一个新的网页,如图 6-2 所示。
图 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 所示的页面。
图 6-3。
Debian Stable ISO images
现在您可以选择稳定版本或测试版本。选择稳定的;它有两种格式:CD 和 DVD。这张 CD 目前有八张;DVD 格式的只有三张。获取与您的计算机架构相对应的映像;在我的情况下,我得到了 amd64 版本。点击它,你会进入如图 6-4 所示的页面,在这里你可以下载你需要的图片。
图 6-4。
The Debian DVD images currently available for amd64
选择第一张 DVD(您只需要第一张)后,它会开始下载。完成后,您可以使用该映像首次启动您的计算机(图 6-5 )。
图 6-5。
The first screen of the Debian installation
当你的电脑完全启动后,第一个屏幕你会非常熟悉,因为它和你在 Ubuntu/Fedora 安装中看到的一样。然而,它提供了一些不寻常的选项。有三种安装选项(安装、图形安装和语音合成安装)。此外,高级选项包括专家安装、救援模式、自动安装及其图形版本。在图 6-5 中可以看到这两个菜单。开头没有“图形”这个词的选项是文本界面,这对于图形卡的自动检测不能很好工作的系统非常有用,或者对于那些习惯它的人来说是一个更快的选项(这是我更喜欢的一个)。图形化的是最友好的,可以用鼠标。你可以在图 6-6 中看到它们之间的区别。因此,选择图形安装选项并开始安装过程。
图 6-6。
Both versions of the installation process: text-based and graphical
第一个屏幕(图 6-6 )询问您在剩余的过程中想要使用的语言,然后是您的位置和键盘模板,如图 6-7 所示。
图 6-7。
Location and keyboard selection
接下来,安装程序将向您显示进度条,第一个是检测并安装您的 CD-ROM(或 USB 驱动器上的 ISO 映像),第二个是从映像加载安装程序的其余组件。第三个将出现以检测和自动配置网络;如果没有,它会提示您输入网络值。
下一个屏幕(图 6-8 )是关于您的系统的主机名;默认情况下,它建议使用“debian ”(我把它留下了),但是你可以选择任何你想要的。接下来,它会询问一个域名,但是你可以把它留为空白,就像我在图 6-9 中所做的那样。
图 6-9。
The domain value
图 6-8。
The hostname value
现在你要为 root 用户设置密码(图 6-10 )。记住我在前一章给你的建议,在这里选择一个强的,或者留空来禁用这个用户,像在 Ubuntu 中一样使用你的普通用户和命令“sudo ”;这取决于你。我在这里设置了一个,因为旧习惯很难改变,但后一个选项完全没问题(有些人更喜欢它,因为坏人必须猜测两件事,用户名和密码,以远程攻击系统)。
图 6-10。
The root password
在接下来的三个屏幕中(图 6-11 到 6-13 ,您将填写您的全名、用户名和密码。选择一个好的、强的密码,特别是如果您将根密码留空并且您将使用sudo
。
图 6-13。
The user password
图 6-12。
The user name for the account
图 6-11。
The full name of the user
下面的步骤是配置时区(图 6-14);如果您的国家只有一个区域,将跳过这一步。
图 6-14。
Configuration of the time zone
现在您开始安装的困难部分:使用分区管理器。在它检测到你的磁盘后,你会看到一个类似图 6-15 的屏幕。
图 6-15。
Selecting the partition method
我将展示一个与之前不同的场景。让我们想象一个非常常见的情况:一个台式机系统有两个硬盘,一个 SDD (250GB)和一个硬盘(2TB)。为了充分利用这两种驱动器,您可能希望将系统和配置文件放在 SSD 上以获得良好的总体性能,将个人文件和数据放在 HDD 上以获得良好的存储容量。为此,您必须选择菜单上的手动选项。
图 6-16 中的屏幕是你应该在我提出的场景中找到的。你可以看到两个圆盘。您可以通过容量和两者都没有任何分区来区分它们。好好看看他们。事实上,我建议你把这些信息写在纸上,因为你以后会用到。现在你必须做隔板。我会告诉你如何制作其中一个,你可以想出如何制作其余的。
图 6-16。
The initial partition screen
在我看来,这是安装程序中最薄弱的部分,因为它没有那么直观,新手很难理解这部分的界面是如何工作的。我会告诉你最简单的方法。
让我们从 SDD 的第一部分开始。为此,请单击磁盘的描述。您将看到一个类似于图 6-17 的屏幕。它要求确认在磁盘上创建一个新的空分区表。在这种情况下,我们假设两个磁盘都是新的,所以说是。
图 6-17。
New empty partition confirmation
在图 6-18 中,你可以看到 SSD 磁盘是如何拥有一个新的空分区表的。您还可以看到,您在上级菜单中有新的选项。为了简化,我将避免任何 LVM、RAID 或加密设置。因此,要创建您的第一个新分区,请单击分区表。
图 6-18。
A new partition table is created
出现另一个屏幕(图 6-19 )。选择“创建新分区”菜单项。
图 6-19。
Choosing the action on the free disk space
您将要创建的第一个分区是大小为 500MB 的引导分区(图 6-20 )。
图 6-20。
Size of the partition
接下来,你必须设置分区的类型(图 6-21 ),在这种情况下是主分区,然后你必须说出你想要分配分区的位置,在空闲可用空间的开始或结束(图 6-22 )。显然你想在一开始就分配这个分区(实际上,作为一个 SSD,这并不像硬盘那样重要,但这是常态)。
图 6-22。
Where the partition is allocated
图 6-21。
Selecting the partition type
出现的屏幕将显示该分区的默认设置(图 6-23 )。每一个都可以定制;在这种情况下,让我们保留默认设置,除了您设置为/boot
的挂载点和您需要激活的可引导标志。在其余的分区中,您只需要为交换分区设置挂载点和文件系统(作为“swap”而不是“Ext4”)。在大多数情况下,您可以安全地忽略其余的参数。您可能希望更改文件系统和典型用途,例如存储大文件(如视频),或者更改装载选项以建立磁盘配额。
图 6-23。
Partition settings
如你所见,这种方法比 Fedora 和 Ubuntu 的图形安装程序稍微不太友好,但也没有传言中说的那么难。实际上,与之前的两个发行版相比,安装它并不困难。维护是与 Fedora 相比有些变化的地方,而与 Ubuntu 相比变化很大。
一旦您设置了分区设置,您就可以看到分区表是如何变化的(图 6-24 )。这里显示了所有重要的参数:数量、类型、大小、引导标志、格式标志、文件系统和挂载点。您可以看到创建新分区后剩余的可用空间量。
图 6-24。
A new partition is created
您可以用同样的方式创建剩余的分区,以实现图 6-25 所示的目标。最后,您应该有以下分区/挂载点:
图 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 )。如果一切正常,您可以继续安装。
图 6-26。
Disk changes confirmation screen
安装程序将创建分区,格式化它们,然后开始安装基本系统。这需要一些时间(图 6-27 )。
图 6-27。
Installing the base system
过一会儿,你可以选择扫描更多的 CD/DVD(图片),如果你已经下载了的话。当没有可用的互联网连接时,这非常有用。在这种情况下,选择否选项并继续(图 6-28 )。
图 6-28。
Optional scanning of another CD/DVD
您下载的映像包含安装整个系统所需的所有软件包,但是如果您想要使用网络镜像(图 6-29 ),您可以从可用的最新版本中获益,并在下次更新时节省时间(此外,从您第一次启动新操作系统的那一刻起,您将拥有最新的安全更新)。选择是选项。然后,您必须配置一些设置来允许此功能。
图 6-29。
Deciding to use a network mirror
你需要选择镜像服务器所在的国家(图 6-30 ),实际镜像服务器(图 6-31 ),以及你是否要使用网络代理(图 6-32 )。
图 6-32。
Configuring an HTTP Proxy
图 6-31。
Choosing an archive mirror
图 6-30。
Choosing a mirror country
下一步(图 6-33 )询问您是否想要从将要安装在您系统上的软件包中发送信息(匿名)。这由您决定,但是能够收集数据来进行使用统计对 Debian 非常有帮助。
图 6-33。
Participating in the package usage survey
现在,您必须选择想要安装的预定义软件集合(图 6-34 )。这里你主要看到 Debian 支持的桌面环境和其他一些东西,但是如果你扫描了另一张 CD/DVD,你会看到更多的收藏。尽管 Debian 的实际版本是 Gnome,但我想选择一个你在其他发行版中不会看到的版本:LXDE。所以选择它,并让其他选项默认选中。如果您选择 SSH 服务器,您最好知道如何保护它,因为它是 Linux 系统中最常见的攻击媒介之一。
图 6-34。
Selecting the software to install
一旦您选择了软件,安装过程中最长的步骤(图 6-35 )就开始了,即将软件包安装(和下载)到您的 SSD 驱动器。
图 6-35。
Installing the software
最后,您必须决定(图 6-36 )是否在您的硬盘上安装引导加载程序(这里是 Grub)来管理系统的引导。在这种情况下,选择是并继续。
图 6-36。
Deciding to install Grub
最后要做的决定是你想在哪个磁盘上安装 Grub(图 6-37 )。您必须将它安装在具有可引导分区的驱动器上(在本例中为(/ boot
),这就是 SSD。我之前告诉过你要记下磁盘的引用(sda 和 sdb ),因为这对以后会有帮助;嗯,那是现在。您可以看到,标识两个驱动器的唯一参考是 UUID(通用唯一标识符)和设备路径(例如/dev/sda
)。你可以根据订单来判断,但是确定一下总是更好,不是吗?嗯,你的固态硬盘是/dev/sda
设备,所以选择它并继续。
图 6-37。
Choosing the disk upon which to install Grub
就这样!你的 Debian OS 已经安装好了(图 6-38 )。没那么难,对吧?您现在必须重新启动系统。
图 6-38。
The installation is finished .
当你第一次启动你的系统时,你看到的第一个屏幕是你已经熟悉的 Grub 屏幕,你在 Fedora 安装中看到的(图 6-39 )。按回车键或等待启动你的新 Debian 操作系统。
图 6-39。
First boot screen
图 6-40 显示了登录到您的会话的登录管理器。介绍您的用户名和密码,然后按登录按钮。
图 6-40。
First login in Debian
您现在已经登录到 LXDE 桌面环境。你在屏幕中间首先看到的是一个弹出对话框(图 6-41 ),它给出了关于 ClipIt 和以纯文本格式保存信息的安全风险的建议。这取决于你;我都不用 ClipIt,所以不建议激活。(我用的是没有历史的剪贴板,里面只有当前的数据。)
图 6-41。
First screen of LXDE
我之前告诉过你挂载数据分区会有一点不便/烦恼,就是这样。该分区是使用 root 用户权限创建的,不允许在其中写入任何内容(因此您必须创建一个新文件,如图 6-42 所示)。但是这很容易解决。
图 6-42。
Wrong permissions in data partition
您必须将挂载分区的权限更改为您创建的用户。你可以在图 6-43 中看到如何做到这一点,但我在这里更容易阅读的地方重复一遍。
图 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