linux · archlinux · 2014-04-18 · yuex

缘起

一直都想写一篇关于 Arch Linux 的博客,可以用来帮助 Arch 新玩家上路, 又可以总结一下自己入坑三四年来的一些心得。 年前的时候,我的 Thinkpad X220 双硬盘中的 mSATA SSD 挂了,援救了一下数据和系统。 本打算借机写写 Arch Linux 的安装,也积累了一些素材。但思来想去, 每个人的硬件型号、网络环境、分区习惯、软件选择的品味等等,不尽相同, 一份安装指南不一定会对每个人都有用,甚至还有可能在某些情况下起到截然相反的效果, 影响观者对于 Arch 的热情,所以最后也就没有落笔。

然而,今天又有同事问起 Arch Linux,同事有一些 Linux 基础,对 Arch 比较好奇。 我想不如准备一些参考资料,说说自己作为 Arch 用户的使用心得, 来告诉新玩家 Arch 是什么,使用 Arch 会遇到怎样的问题,这样来得更实在一些。 像安装指南、发行版比较之类,已经有不少很好的资料了,实在不需要我的狗尾续貂。 此外,Arch 本身就不太适合刚刚接触 Linux 的玩家。而对于有一定 Linux 基础的玩家, 手把手地教人家怎样安装,应该这样,不要那样,这样才对,那样不对, 在我看来, 无异于对别人的一种不尊重。

综上种种,有了这篇小文。本文不会涉及具体的 Arch 安装步骤、详细 Arch 特性比较, 但我会给出这些资料的链接。此外,我会说说我的使用心得和一些 Arch 使用的小建议。

Arch Linux 是什么?

可以参考以下几篇文章,这些 wiki 页面中一般都有中文翻译页的链接,可自行跳转

  • Arch Linux - Wikipeida 上的 “Arch Linux” 条目,涉及历史等一些基本信息
  • The Arch Way - Arch Linux 的设计哲学,KISS。
  • Arch Compared to Others - Arch Linux 与其它发行版的比较,如果你是从其它发行版转过来,可以看看从 Arch 这里,你会得到什么,会失去什么,来帮助你选择。
  • Arch FAQ - 还有问题?可以翻翻这个 FAQ

当然,介绍当中或多或少都有各种各样的忽悠,这里我讲一讲我三四年使用中, 感触最深的三点

滚动更新 。Arch 采用的是滚动更动,没有 Ubuntu 和 Fedora 中发行版的概念。 你不需要在一个固定年限之后重装系统来保持更新。你的配置可以使用很多时间。 特别的,作为桌面系统,如果你把 /home 挂载为一个单独的分区, 你甚至可以在 / 挂掉之后,重装 Arch,挂回 /home,然后惊喜的发现, 你 /home 中的各种配置仍然可以正常工作。 不过这里要注意的是,Arch 的滚动更新不是完美的。在一些重大更新的时候, 需要手工配置一些东西,如果没有正确更新,下次直接进行系统整体更新的话, 有可能会让系统无法正常启动。2012-2013 年之间的 Systemd 和 Gnome3 切换, 就出现过这个问题,也吓走了一些 Arch 玩家。 不过,一般来说加入 Arch Announce 的邮件列表之后,重大更新都会在其中宣布。 一年最多也就一两次,不是很频繁。另外,即使系统挂掉了,使用 archboot 救援之后, 都会正常恢复的。比如像我,root 分区所在的 SSD 硬盘挂了两次 (硬件挂了两次,不是软件),/home 中的资料、配置仍然都在。

活跃且友好的社区 Arch WikiArch Forum 都是质量非常好的资源, 基本上 Arch 使用过程当中遇到的任何问题,都可以利用 wiki 自己解决。 如果真的没有相关的内容(在我自己的使用过程中目前还没有遇到这种情况), 你可以到论坛上求助,解答都非常热心。不过记得解决问题之后, 要去 wiki 更新一下相关页面。:)

简洁的包管理格式 。Arch 有自己的包管理系统 Pacman 和包格式 PKGBUILD。 PKGBUILD 中可以写清楚信赖,源码的位置,编译和安装命令。基于 PKGBUILD, Arch 官方提供了 AUR ( Arch User Repository ),可以让用户自己提交 PKGBUILD。 而其它用户可以通过 http 或者 yaourt 或者 packer 来下载 PKGBUILD, 进行包的编译和安装。也正因为这样,AUR 当中有很多最新的软件。

安装 Arch Linux

详细的安装指导可以参考以下 wiki 页,页面中有对应的中文翻译页,请自行跳转

在安装之前,或许你会需要检查下你是否了解这些东西:

  • UEFI/GPT 或者 BIOS/MBR - 我建议你使用 UEFI/GPT,不可否认,BIOS/MBR 正在被淘汰
  • LVM - 如果将 //home/var 放到 lvm 上的话,对于硬盘空间的充分利用和日后救援系统,都有不少裨益
  • Linux Boot Process - 这会帮助你更好地理解 BootLoader、Kernel、Systemd/init 之间的关系,这有助于理解安装过程。

在安装过程中,我建议你保持手边有第二台可以连网的设备,因为你可能要不时地查阅 Arch Wiki

安装之后

成功安装 Arch 之后,你应该可以启动到一个 shell, 虽然这个离一个真正的桌面系统还有点距离,不过已经很近了。 这里,我建议你休息一下,回顾一下安装过程中遇到的各种问题, 或许有针对性的记一些笔记会是个不错主意。如果以上的安装对你来说小菜一碟, 那么不用怀疑,你就是那个为 Arch 而生的人,坚定地走下去吧!:)

如果你决定继续进行,我建议你先从图形界面开始。什么?你在桌面系统上不用图形界面? 真有够硬核!如果你决定还是委屈地配合我一下,安装一个图形界面,可以参考

安装完图形介面之后,基本上 Arch 的安装就可以告一段落了, 但是请检查你是否完成以下工作?

  • 加入 Arch Announce 邮件列表,邮件量很少,一年十封左右,但是一旦有信,就意味着你在下次更新之前要仔细阅读,贸然更新可能会挂掉系统
  • 访问 Pacman Rosetta,提供了一个 pacmanyumapt-get 之间对应命令的参考。日常使用中,你可能还有用到 Pacman Tips
  • 从 AUR 安装 yaourt 或者 packer,这应该是第一个也是最后一个你需要手工安装的 AUR 包 , 具体步骤可以参考 AUR。如果有必要,可以参考 Yaourt
  • 如果你以前没有使用过 systemd,那么你应该访问 Systemd,目前很多发行版都已经有了 迁移计划
  • 如果你使用 Python,要注意 Arch 官方源当中既有 python2 也有 python3。一般 python 默认解析到 python3,要使用 2 版的解析器,必须使用 python2。不太方便?可以参考使用 virtualenv 和 virtualenvwrapper,如果你真的是一个 pythoner,你会知道去哪里找这两个模块的源码和文档
  • 最后,请从 AUR 安装 archey, 并且执行它

还想玩更多?

结语

欢迎入伙!快去编写 Arch Wiki 和提交 AUR 包,来纳你的投名状吧!

但请记住,人生总是很艰难,有一股黑暗势力每年都会入侵一次 Arch 的世界。 它们会以各种方式来破坏 Arch 世界的和谐,包括但不限于

  • 利用原力损毁你的硬盘
  • 利用意识控制让你忘记查看 Arch Announce,或执行 rm -rf *

做为一名正义的 Archer,你会使用 Archboot 来维护世界和平的,对吗?