惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
WordPress大学
WordPress大学
博客园 - 【当耐特】
The Cloudflare Blog
B
Blog
Last Week in AI
Last Week in AI
小众软件
小众软件
量子位
S
SegmentFault 最新的问题
V
Visual Studio Blog
博客园 - 叶小钗
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
A
About on SuperTechFans
雷峰网
雷峰网
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
MongoDB | Blog
MongoDB | Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Martin Fowler
Martin Fowler

竹林里有冰的博客

Nuxt SSG 博客的尾斜杠到底怎么加? | 竹林里有冰的博客 小米 Xiaomi Book Pro 14 (Ultra X7) Linux 兼容性实测 | 竹林里有冰的博客 国内(大陆)版小米 FCM 熄屏断连:Rootless 环境下的尝试与可能的解决方案 | 竹林里有冰的博客 我没法访问 dl.google.com —— 记一次 TUN 下的网络 debug | 竹林里有冰的博客 Vercel 的缓存控制,你注意过吗? | 竹林里有冰的博客 小记 —— Caddy 在 Layer 4 上的流量代理实践 | 竹林里有冰的博客 你的域名后缀拖慢你的网站速度了嘛?——再谈 DNS 冷启动 | 竹林里有冰的博客 DNS 冷启动:小型站点的“西西弗斯之石” | 竹林里有冰的博客 HTTP/2 Server Push 已事实性“死亡”,我很怀念它 | 竹林里有冰的博客 Nuxt Content v3 中数组字段的筛选困境与性能优化 | 竹林里有冰的博客 后 OCSP 时代,浏览器如何应对证书吊销新挑战 | 竹林里有冰的博客 初试 Github Action Self-hosted Runner,想说爱你不容易 | 竹林里有冰的博客 DNS 解析延迟毁了我的图床优化 | 竹林里有冰的博客 Vue Markdown 渲染优化实战(下):告别 DOM 操作,拥抱 AST 与函数式渲染 | 竹林里有冰的博客 Vue Markdown 渲染优化实战(上):从暴力刷新、分块更新到 Morphdom 的华丽变身 | 竹林里有冰的博客 node-sass 迁移至 dart-sass 踩坑实录 | 竹林里有冰的博客 前端中的量子力学——一打开 F12 就消失的 Bug | 竹林里有冰的博客 2025 年,如何为 web 页面上展示的视频选择合适的压缩算法? | 竹林里有冰的博客 el-image 和 el-table 怎么就打架了?Stacking Context 是什么? | 竹林里有冰的博客 2025年,前端如何使用 JS 将文本复制到剪切板? | 竹林里有冰的博客 ssh 拯救世界——通过 ssh 隧道在内网服务器执行 APT 更新 | 竹林里有冰的博客 Cudy TR3000 吃鹅(daed)记 | 竹林里有冰的博客 使用 Cloudflare Workers 监控 Fedora Copr 构建状态 | 竹林里有冰的博客 基于 Cloudflare Workers 实现的在线服务状态检测告警系统 | 竹林里有冰的博客 构建部署在 Cloudflare Workers 上的 TG Bot | 竹林里有冰的博客 2024年,Firefox 是唯一还在坚持执行在线的 SSL 证书吊销状态检查的主流浏览器 | 竹林里有冰的博客 小爱课程表适配不完全指北——以 ZJUT 本科正方教务系统为例 | 竹林里有冰的博客 将博客从 waline v2 更新到 waline v3 | 竹林里有冰的博客 给家里云装上 Fedora 41 KDE 后,我是如何配置的 | 竹林里有冰的博客 为 Hexo 添加 follow 认证 | 竹林里有冰的博客
我为什么选择Archlinux? | 竹林里有冰的博客
竹林里有冰 · 2021-05-23 · via 竹林里有冰的博客

对于我而言,我用Archlinux主要的原因就是实用主义。我可以很负责的说,Arch真的是在我所有用过的发行版当中最符合实用主义的一个了。

很多大佬一提到Archlinux就扯些什么kiss原则,在我看来则不然。

整洁规范的系统#

规范代码为的不是为了什么Art of Code,而是可读性的提升;遵循kiss原则亦是如此。

配置文件的路径写好了,符合规范,我们就能一下子找到,我们是为了实用主义而遵守kiss原则。

同样的,我同样可以为了实用主义而破坏kiss原则。比如在我的archiso-zhullyb中,我添加了一个pacman的hook将我的定制内核重命名为linux以确保其能够正确被ventoy所识别,这也是为了实用主义。

那么,什么时候我会破坏kiss原则呢?当我认为破坏kiss原则所带来的利大于弊时,我就会考虑以一个并不规范但却有效的方法来处理问题。

但很有趣的是,由于Archlinux的官方总是将kiss奉为圣旨,这就给我们提供了一个非常nice的环境了——在一个非常规范的系统内,破坏kiss原则所带来的代价并不会很大,这就好比在一个布线整齐的机房内临时私拉两三根线并不会给维护带来多大的困难。

不同于apt在源内提供了统一软件的多个版本供用户选择,pacman剑走偏锋,默认用户系统内所有软件都是最新的。

由此带来了一个好处——不会出现由于版本过高/过低导致的依赖问题。只要我保证系统内的所有软件都是最新的,就不会出问题,非常的简单粗暴。

此外,不考虑依赖版本这一特点对于打包人来说也是一种解脱。

pacman简单的打包方式#

不同于deb以及rpm,pacman的软件包应该是所有发行版中最省事儿的。

打包软件时,我们只需要写(改)一份PKGBUILD,就可以仅仅通过在PKGBUILD所在的路径执行makepkg命令来完成一次打包,这相比起deb而言可谓是天差地别。如此简单有效的打包方式注定其将被实用主义者所青睐。

超低的社区贡献成本#

很多发行版社区开发与贡献其实并不容易参与进去,我拿Ubuntu来做个比较。

附: Archwiki是先斩后奏类型的文档,在你按下保存按钮的那一刻,wiki将立即被更新,所有访客都将看到你改动后的内容。wiki文档拥有变更记录,不担心有人恶意搞破坏,向wiki管理员提出举报后破坏者的账号会被及时封禁,wiki可以非常简单地回滚到之前的状态。

AUR同样也是,你可以随意上传自己的PKGBUILD,可以被别的用户及时看到。如果上传恶意脚本,在别的用户举报后你将迅速被封号。

Wiki方面#

Ubuntu其实是我第一个上手的Linux发行版,在为期半年的Ubuntu体验中,我对于社区做出的贡献为0。这倒也不是我不热衷于参与社区贡献,而是对Ubuntu社区的贡献成本太高了。去贡献文档翻译,需要等待漫长的审核过程,在第一篇汉化文章正式展现在别的用户眼前后,我一定会被激发出继续翻译第二篇的热情。然而,面对太长的审核周期,再高涨的热情恐怕也会被浇灭。

Arch的社区则不一样,他并不像别的社区那样严谨——只要注册个wiki的账号便可以开始贡献文档。你可以随意地编辑一篇文章或者是新增一篇自己的文章,编辑后的文章将能够立即被别的用户所阅读到,没有任何审核过程,有了这份热情,我便继续翻译别的文档,我想,这应该就是archwiki为何涵盖面如此之广的原因。

AUR方面#

同样也是拿Ubuntu对比。

在Archlinux下,我只需要简单的写一个PKGBUILD即可轻松构建一个软件包,同时,我也可以将这份有我攥写的PKGBUILD上传到AUR供别的用户使用。AUR作为一个公开的储存库,任何Arch用户都可以通过AUR Helper轻松得从AUR中获取我写的PKGBUILD并在本地打成自己的包。与此同时,我也可以创建一个私人源,直接发行我构建的二进制包。

Ubutnu则不然,他的打包方式则要麻烦得多,同时也没有类似PKGBUILD一样的东西便于用户分享自己的打包脚本。唯一能够分享自己的劳动成果的方式无非就是直接分享自己打出来的deb包,最多也不过是建立自己的ppa,这对于用户来说是极为麻烦的。用户需要处心积虑地寻找自己所需要的deb包或是含有目标包的ppa地址并手动添加,不像Archlinux有AUR这种东西能够让我们知道在哪里能够找到我们所需要的包。