我为什么选择 Archlinux
我的第一次 linux 体验是从 debian 系开始的,当时对 linux 没什么概念,只知道这是很牛逼的一个玩意,是免费的,开源的(其实当时的我对开源也没有一个完整明确的概念,只觉得这种很 cool)
当我熟悉在 linux 下生存时,我了解到了很多的知识,其中最有意思的两条分别是
- 一切皆文件
- 你可以完全掌控你的系统,只要你愿意你可以干预你自己系统的每一步
关于第一点,一切皆文件。这在 windows 下是无法想象的,在 windows 下,如果你要对系统进行管理,比如组策略,你必须通过组策略编辑器,或者 CMD 下使用secedit
命令进行简单的管理,但实际上你还是要通过组策略编辑器提前导出编辑好的策略文件
但是在 linux 你只需要在一个地方编辑好你的配置文件,当你在其他机器上时你只需要保证软件的版本一致就可以直接使用该配置文件。
这只是配置的转移,像其他设备,比如 cpu 运行状况,如果在 windows 下你要编写脚本用于监测机器运行状况,你难免要使用第三方工具,但 linux 下你可以直接从 CPU 文件中读取当前状态。等等等等
关于第二点,linux 下相对来说更多的使用的是开源软件,开源软件的一个好处就是你可以进行定制,在编译过程中通过调整编译参数或选项,开启或禁用某些功能,所以任何一款开源软件,只要你愿意,同一款软件可以编译出不同的样子(一千个人心中有一千个哈姆雷特)。同理 linux 本身就是开源的
所有如果你愿意你甚至可以定制你的系统,比如lfs
关于 Archlinux 其实早有耳闻,但一直给我的印象并不是太好,太多人吹嘘它对新手不友好(好像一个系统安装方法原始一点也可以拿来吹嘘了…无语),定制性强,滚动更新等等。一直以来我使用的都是 Debian + xfce 的组合,我已经习惯了 debian 的稳定性,虽然它上面的包确实老了一些。而且apt-get
相当易用,再加上 linux 上的软件,基本都会提供 deb 格式的包。所以我一直没有尝试过 Archlinux
直到,debian 更新到 10 。它在安装镜像中移除了一些非开源的硬件驱动。很不幸,我的笔记本中招了,虽然我可以在官网下载这个包自行添加,但还是觉得有点麻烦。
当然一点点麻烦不足以让我叛逃 Debian,我是一个有轻微系统洁癖的人,当我的系统中如果存在两个功能一样的工具(浏览器除外,一个备用),我总会觉得好像空间被浪费了,我的笔记本性能好像就是被这多余的工具占用了(当然这不是真的被占用了,我只是觉得心里不舒服)。而有一次我在查找我一个软件的安装依赖时,使用dpkg -l
查看已安装软件包时,我发现我日常使用的软件不超过 30 个,但我的系统中存在 5000+ 的软件包
还有,当我想更换桌面管理器为 I3 时,我发现我在安装xorg
时它总会默认给我安装上xterm
,但我实际使用的终端不是这个…
随着使用的越久,我就越觉得 debian 包太老,系统太臃肿。最后在 10 更新后,对我硬件的不支持,促使我决定更换系统
或许你会说,为什么不选择 Ubuntu 或者 kali 或者 deepin 这些基于 Debian 的其他发行版。我之前说我的 linux 体验是从 debian 系开始的,就是我已经用过这些子发行版,最后才选择的 Debian。
- Ubuntu:新手友好,哪怕是 linux 世界最麻烦的英伟达显卡驱动都为你自动装好,但它太臃肿了和它的系统未知错误让我不胜其扰,而且 gnome3 给我一种油腻的感觉。(貌似现在的 20 版配色有改善)
- kali:渗透测试专用系统,但之前的版本默认就是使用的 root 账户登陆,所以我觉得不适合做日常系统使用。术业有专攻嘛。而且它预装的大部分工具其实很少用到,渗透测试最后使用的无非那几个常用工具,更多的就是自己编写脚本
- deepin:国产、新手友好、符合国人使用习惯、商店中有很多日常使用的 windows 独占软件移植版。这些都是它的优点,但唯独一个缺点对我来说就是致命的太臃肿
关于 redhat 系的产品,在线上服务器使用过,但感觉为了追求系统的稳定性包太老,而且我不太习惯yum
。所以不做考虑
在考虑更换系统时,我的要求如下:
- 对系统软件的掌控性,能不装就不装
- 易用性,我可以很快的搭建好工作环境
- 软件版本的新旧程度,最好能及时的支持各个软件的最新的长期支持版
- 可定制性要强,最好是没有预装桌面环境
筛选后留给我的选项其实不多了,勉强符合需求的就 Archlinux、gentoo、lfs。
但 gentoo 和 lfs 在安装系统时都是从源码安装,需要编译 linux 源码,这对我要求的快速搭建工作环境就不太合适,毕竟我总不能每次安装系统时都端杯咖啡等他编译吧
Archlinux 可能面临的问题
Archlinux 容易滚挂的问题,我查阅了一些资料,也在各个论坛爬这些帖子,发现滚挂的问题主要出现在大版本更新时,软件的依赖问题和使用 AUR 安装的软件产生的依赖问题。而这对我来说可能不是什么大的问题
- 我的安装快捷
- 我的安装配置都是写成脚本的方式,我的安装脚本大概只需要 30-50 秒左右,桌面环境的安装大约在 30 秒左右,也就是说我除开光盘刻录,测试网络连接,下载脚本这些准备事项后,我的实际安装过程可能一分钟不到再加上我手动编译安装 suckless 套装。我的整个安装过程也只需要十分钟不到
- 我关于各个软件的配置,得益于 linux 下一切皆文件的好处。我将配置存放在 github 上,当安装完所有桌面环境后,只需要将配置下载,移动。我的工作环境就已经准备好了,而且是完全符合我个人习惯的
- 上面的安装配置工作,一共加起来用不到我一杯咖啡的时间
- 我关于软件的态度
- 我喜欢使用终端来完成我的所有工作,图形化的界面过于眼花缭乱,命令式的方式让我做什么都可以通过输入一行命令来解决问题,如果一行命令解决不了,只需要写个脚本就好了。而命令的选项就是我控制如何去解决这个问题,它让我更关注的是问题本身,而不是各种花里胡哨界面
- 如果一个软件有我想使用的功能后,我为什么还要再多安装一个同质化的软件呢,为了美观?那为何不一开始就使用美观的这个。
- 关于 Archlinu AUR 源的态度
- 我个人是没有使用 AUR 源的,当然我很支持这种由社区驱动的发展方式,linux 之所以伟大就是他的开源性,每一个使用者同时也是它的开发者,用户会参与到这里面来促使它的发展
- 我之所以不使用 AUR 源,是基于系统稳定性进行考虑的。由社区用户打包的软件,难免他所考虑的没有专门的开发者这么详细。另外如果某个软件我需要使用,但官方源中没有我可以选择从源码处编译安装,或者使用类似的软件进行代替,而我本人其实没这么多特殊需求。所以至少到现在还没遇到必须使用 AUR 源的地步
- 以上只是适合于我个人,仅供参考
后记
其实综合来说,我还是比较喜欢 Debian,它的软件源比较老的问题可以通过启用testing
源来解决,但它的软件依赖问题确实让我很讨厌。虽然喜欢但我大概率是回不去了。当然服务器还是用 Debian 的
关于 Archlinux 我还是比较满意的,但因为用的时间还不长,上面的问题解决方案也只是我理论中的,只有时间能验证一切。而且 Archlinux 还有BlackArch
源,也很方便我下载各种安全工具。希望不会滚挂(其实我个人还没有滚动更新的习惯,现在基本上一周可能会滚一回)