Linux 挖坑不埋指南

跳进 Linux 的惟一理由

既然知道 Linux 在这个世界已经存在了,而你又是个挺喜欢摆弄计算机的人,那么对 Linux 是怎样的一种存在难道不感到好奇么?css

也许在你开始尝试使用 Linux 时,已经看到了不少对 Linux 不利的言论。例如,发行版本太多难以取舍、安装繁琐、应用程序没那么多、装显卡驱动很痛苦、无线网卡点不亮、声卡沉默着、中文输入法又在 Emacs 里歇菜了……然而 Linux 已经在这个世界上存在了,即便它存在这样或那样的问题,它依然没有死掉,更况且在 Linux 中去努力的化解这些问题的过程,也就是你对计算机的理解日益精深的过程。python

之前我以为 Windows 用户是这个世界上对计算机最没有好奇心的用户,他们几乎彻底是由于讨厌计算机而喜欢 Windows。如今,感受与那些叫嚣着要用智能手机/平板取代 PC 的人类相比,Windows 用户多少对计算机还保持着一点点好奇……linux

Linux 在哪里

首先,你在 Windows 里积累的大部分经验对于学习 Linux 是没有用的,并且在 Linux 世界里,Windows 的使用经验每每会变成很坏的习惯。Mac OS X 洗尽铅华后,却是与 Linux 很接近,由于它们算是 Unix 的嫡系。windows

不少 Linux 桌面爱好者为本身所喜欢的 Linux 传教,他们用着本身或别人配置的漂亮的桌面来诱惑 Windows 阵营中对 Linux 持观望态度的人。不否定,他们常常会成功,可是被诱惑的 Windows 爱好者很快就能发现 Linux 桌面只不过是个肥皂泡。架构

2014 年,Linux 之父 Linus 说他仍然想要桌面……因此,Linux 如今依然是没有真正的『桌面』环境的。目前解决这个问题的惟一办法就是像我在前面所说的那样,不要将 Windows 的使用经验搬到 Linux 里,对于 Linux 而言,这些使用经验彻底的水土不服。app

城里人到了乡下,没有红绿灯、没有下水道、没有大超市、没有星巴克……这并不能说明乡下的很差,只能说明你带来了城里人的坏习惯!这些坏习惯正逐渐将本来寂静的 Linux 村落改造为乱糟糟的城乡结合部。后来,也许这些城乡结合部也会变成真正的城市,可是如今你要么容忍城乡结合部的混乱与不稳定,要么就去寻找生态环境还没有恶化的 Linux 山村。ide

定居于 Gentoo

既然已经否认了 Linux 桌面主义,那么我认为最能体现 Linux 特点的发行版应该是 Gentoo,而不是 Ubuntu、Fedora、Open Suse 这些号称开箱即用的 Linux 发行版,由于开箱即用,不等于开箱好用。不过,若是你已经很熟悉这些开箱也很差用的 Linux 发行版了,能够没必要在乎个人推荐。wordpress

安装 Gentoo 的过程,本质上就是使用 Gentoo 的过程。得益于 Gentoo 完善的文档,只要略有些耐心与英文阅读能力,按照 Gentoo 安装手册 的步骤进行,用不了 1 天,就差很少能装上 Gentoo 的基本系统(内核 + 软件包构建工具 + Shell)。工具

野外生存

Linux 的野外就是黑乎乎的字符终端(TTY),这里面运行着 Shell。在现代 Linux 系统中,Shell 差很少对应于人类的内衣,而图形窗口系统则对应于人类的外套。学习

没有了 Shell, Linux 是裸奔的 Linix。没有了图形窗口,Linux 就是穿着裤衩在奔跑的 Linux。

从某种意义上来讲,Windows 其实比 Linux 更先进得多……它不穿内衣就直接穿外套了!

Linux 世界有不少 Shell,标配的 Shell 叫 Bash。

最好的 Bash 教程,当属 Gentoo 之父——Daniel Robbins 所写的 Bash by Example, part 1 2 3。Daniel Robbins 的命运宛若 Linux 世界的高加林……若是不知道高加林何许人也,可参考路遥文集中的“人生”。不过,Daniel Robbins 后来又建立了 Funtoo 项目……Funtoo 可能只适合有经验的 Gentoo 用户使用。

我建议你在尝试为 Gentoo 安装一个桌面系统以前,先在黑乎乎的 Bash 中呆一段时日,苦你心智,磨你体肤,行拂乱你所为……坚持下去,你就能学会在 Bash 中用命令与脚本控制你的机器,学会用 sed 与 Emacs 编辑文件。固然,这个过程对你而言可能最大的痛苦是无法显示与输入中文。

在 Linux 的世界里,中文并非必须的,英文是必须的,可是只要你愿意,仍是有办法让 TTY 支持中文的显示与输入的,并且搞定这个问题,意味着你对 Linux 的认识程度已经超过了不少其余 Linux 发行版的用户。

一个城里人,当他可以很娴熟的在野外生存着,回到城市以后,他也许可以比之前更善于利用城市这个系统。至少,野外生存帮助他创建了不少生活上的好习惯!

学会使用 portage

所谓的 Linux 发行版,本质上只是一些比我更有经验的 Linux 用户终年累月的收集了一些比较有名的软件源码包,最有名的天然是 Linux 内核源码包。收集到这些源码包以后,就针对主流硬件上以一种你们好才是真的好的策略将源码包编译成可执行文件,而后又将这些可执行文件作成光盘镜象文件供用户下载。

从上述角度来看,Gentoo 不算是 Linux 发行版。Gentoo 的工做主要是向用户提供一个很是精简的系统,也就是所谓的自举系统与 Stage 3,目的是让用户拥有一个能够运行的 Linux 基本环境,而后提供一个 portage 软件包,这个软件包主要由一个名曰 emerge 的 python 脚本以及一大堆分门别类的 Bash 脚本( ebuild 脚本)构成。若是你已经装上了 Gentoo,那么你必定懂得我在说什么。

每份 ebuild 脚本记录着相应的软件源码包的下载、解包、编译环境检测、编译、安装等步骤。例如我要安装大名鼎鼎的 Emacs,只需在终端中执行如下命令:

# emerge emacs

这个名曰 emerge 的 Python 脚本会自动去 /usr/portage/app-editors/emacs 目录寻找当前最新版本的 ebuild 文件——emacs-24.5.ebuild ,而后根据这份 ebuild 脚本中记录的步骤,自动进行 emacs-24.5 源码包的下载、解包、编译环境检测、编译、安装……

也就是说,Gentoo 的 Portage 只是告诉 emerge 应该怎样安装软件包。这就是 Gentoo 的精华所在。由于软件包是从源码包编译安装的,这意味着你有不少机会去定制或改进这个过程,并且 Portage 也为此打开了便利之门。

在那些真正的 Linux 发行版里,经过编译源码包的方式安装软件,每每很是痛苦,由于一般很难弄清楚要编译安装的软件包依赖哪些软件包。此外,这些 Linux 发行版所谓的『升级』,差很少等同于从新装一遍系统,并且差很少每半年装一遍(几个主流的发行版,差很少都是每半年发布一个新版本)。我很谦虚的说,个人 Gentoo 系统已经连续用了 5 年,如今依然保持着软件包近乎最新的状态。

若是你受了一些 Linux 桌面传教士的蛊惑不幸用上了 Ubuntu、Fedora 之类的发行版,不要怕, Portage 依然能够拯救你!理论上,在这些 Linux 发行版中,安装 Portage 并非多么困难的事。只要有了 Portage,你能够经过软件包更新的方式,一点一点的将系统变成 Gentoo!

Gentoo 这种编译安装软件的方式虽然很低效,可是它可以让你养成一个好习惯:不要安装太多的软件包,而且尽可能远离那些巨型软件包。这个世界上,真正颇有用的软件包并非太多,而那些巨型软件包每每也是 Linux 世界的违章建筑。

进驻城乡结合部

长期的在黑乎乎的 TTY 里也能游刃有余的生活着,可是图形化的世界毕竟仍是更直观一些。朋友给你发来一份 MS Word 或 PDF 文档,虽然经过 Linux 的 Framebuffer 能够构建出 GUI 程序可视化这些文档内容,可是这样就真的是从新发明轮子了——从新发明了 Xorg 或 wayland。我一直都以为 wayland 是从新发明轮子。

Linux 的桌面环境如今依然像个乱糟糟的城乡结合部,也许惟一使人自豪一点的就是它的历史。桌面的基础架构 ——X 窗口系统称雄江湖的时候,Windows 系统还未诞生。

X 目前正逐渐被现代的 Wayland 取代,然而基础架构的更换并不能真正解决目前这种城乡结合部的局面!由于没有财力雄厚的公司进行统一规划,自由软件开发者们常常为了本身的自由而搭建违章建筑,而后干扰了用户们的自由。对于中文用户,最大的违章建筑当属 GTK 与 QT,它们破坏了 XIM 的大一统,致使至今为止 Linux 图形界面的中文输入支持依然是个使人头疼的问题(可参考:https://www.csslayer.info/wordpress/diary/why-linux-ime-sucks/)!

我比较喜欢的城乡结合部是 xfce4,以前一直用的是 GNOME。曾被不少人诟病的 GNOME3 我也用了将近 4 年,直到有一天我发现它的一个新版本剥夺了我最须要的一些自由,因此毅然转移到了 xfce4。这个故事想说的是,在一个充满自由的环境里,你最不须要的就是死守旧习惯。

用 xfce4 的好处是它提供了够用的窗口管理功能。我不认为 GNOME 3 真的有什么比 xfce4 更先进的地方,除非是到了 wayland 彻底取代了 Xorg 的那一天。可是,从如今的情况来看,wayland 的出现让城乡结合部又混乱了一点,因此你不懂我在说什么,这很正常……先按照 https://wiki.gentoo.org/wiki/Xfce 所说的步骤,装上 xfce4。

欢迎来到混乱的 Linux 城乡结合部,在终端里求生成功的鲁滨逊同窗!

自举

要安装 Gentoo,即便你对 Linux 一无所知,也是能够按照 Gentoo Handbook 的说明,成功的安装 Gentoo。可是,安装 Gentoo 的过程当中须要手动输入许多 Linux 命令。若是没有 Linux 的基础知识,也许没法理解与欣赏 Gentoo 的安装过程。

安装一个 Linux 的前提是要懂得 Linux,这彷佛存在矛盾,由于要弄懂 Linux 的前提是应该拥有一个 Linux 操做环境。这虽然很矛盾,但这就是现实。破解这一矛盾的惟一办法就是自举(BootStrap)。

C 语言编译器是自举的一个很好的示例。第一个 C 语言编译器是用汇编语言编写的。第二个 C 语言编译器能够用 C 语言来编写可是须要由第一个 C 语言编译器来生成,这样就完成了 C 语言编译器的自举。

要安装 Gentoo,前提也是须要你的计算机事先运行着一个 Gentoo 环境,而后在这个 Gentoo 环境中安装 Gentoo。因此 Gentoo 开发者为 Gentoo 的安装提供了一个近乎最小化的自举系统,以 CD 镜象文件的形式发布,称为『Minimal installation CD』,其下载与刻录方法请参考 Gentoo AMD64 安装手册的『介质』一节。

制做 Gentoo LiveUSB

若是你对 Linux 并非很了解,那么下载 Minimal installation CD 以后,不须要急于阅读 Gentoo Handbook 并进行 Gentoo 的安装。

既然 Minimal installation CD 是用于 Gentoo 自举的,那么它自己就是一个可用的 Linux 基本环境。也就是说,学习 Linux,实际上是不必安装一个 Linux 的。

要将 Minimal installation CD 做为学习 Linux 的实践环境,最好是将镜象文件刻录到 U 盘上,这样能够获得所谓的 Gentoo LiveUSB。现代的计算机,差很少都支持 U 盘启动,所以 Gentoo LiveUSB 也是一个很不错的随身系统。制做与使用 Gentoo LiveUSB 的方法见:https://wiki.gentoo.org/wiki/LiveUSB/Guide

若是担忧在 Gentoo LiveUSB 中的学习过程当中由于一些误操做而对你的计算机中既有的系统产生毁灭性打击,也能够在 VirtualBox 之类的虚拟机上运行 Gentoo LiveUSB 或者直接运行 Minimal installation CD,具体用法请参考本文附录部分。

Linux 基础知识

Daniel Robbins,是 Gentoo 的创始人,Funtoo 的创始人与领导者,不只精于工程与技术,也是一位优秀的 Linux 基础知识的传播者。他所写的一系列文章很是务实,而且文字平实,内容流畅,用例丰富。阅读它们,有大学英语四级水平就足够了。固然,若是有人能将它们翻译成中文,也很是有意义。

下面这四篇文章不只可以让你掌握 Gentoo 安装过程当中所使用的大部分 Linux 命令,也能让你经过初级Linux专业认证的 101 考试。

http://www.funtoo.org/Linux_F...
http://www.funtoo.org/Linux_F...
http://www.funtoo.org/Linux_F...
http://www.funtoo.org/Linux_F...

可是,若是你想理解 Gentoo 的包管理工具——Portage 的基本原理,并顺便掌握 Bash 的基本知识,能够继续阅读:

http://www.funtoo.org/Bash_by...
http://www.funtoo.org/Bash_by...
http://www.funtoo.org/Bash_by...

剩下的事,应该交给 Gentoo Handbook

9 年前我刚刚开始折腾 Gentoo 的时候,已经用过了几个月的 RedHat 公司发布的 Fedora Core(如今的 Fedora 项目的前身)。当时自认为已经具有了一些『Linux 使用经验』,但事实证实这些经验对于摆弄 Gentoo 并无产生多大帮助。在个人不懈努力下,折腾了两个通宵,终于让 Gentoo 在个人机器上运行起来,后来的几个月,断断续续补习了一些 Linux 基本命令的用法以后,才感受 Gentoo 的安装过程其实很是的简单,甚至能够将这个过程做为 Linux 基础知识学习中的一个实践环节。

如今这篇文档临近尾声,而我只想再说两句:

  • 很遗憾 9 年前要没人为我写一篇这样的文档 :)
  • 接下来你应该认真阅读 Gentoo Handbook ,而后利用 Gentoo LiveUSB 或光盘将 Gentoo 安装到计算机上

附录:如何在 VirtualBox 中运行 Minimal installation CD

首先你要懂得 VirtualBox 的基本用法,好比如何基于光盘镜象文件的方式安装系统。

若是想在 VirtualBox 中直接运行 Minimal installation CD 的镜象文件,那么这就与向 VirtualBox 中安装其余系统差很少,惟一不一样的就是所进入的 Linux 环境将做为学习 Linux 基础知识的环境。

若是想在 VirtualBox 中运行 Gentoo LiveUSB,那么要稍微麻烦一点,可参考:http://www.intowindows.com/ho...

相关文章
相关标签/搜索