长期维护
维护工作包括若干方面。
追踪更新
追踪更新是其中最基本的(即使不是工作量最大的),这里对其进行简要说明。
注:本项目的维护工作目前由 clsty 执行,这里仅作为记录与参考,并不是指构建或使用本项目须参与维护。
当然,假如本项目最后一次发布镜像的时间距现在超过两个月,使用者就可能要参考本节内容来构建最新镜像了。
mkarchiso
首先要更新系统,确保使用了最新的 archiso
包。
然后,根据特定场景实行相应的步骤。
-
场景:源文件
mkarchiso-original
(由/usr/bin/mkarchiso
复制而来,Arch Linux 官方提供)可能有更新。- 使用
PATCH.sh
,将 mkarchiso 打补丁到位(若源文件的更新超过了补丁的容错范围,补丁可能会应用失败,这时需要手动操作)。 - 使用
DIFF.sh
,根据官方 mkarchiso 与刚刚处理好的补丁版 mkarchiso 进行对比,来更新补丁。
- 使用
-
场景:想要对补丁版 mkarchiso 进行修改。
- 利用
DIFF.sh
判断mkarchiso.patch
是否精确反映了差异;若否,先按源文件有更新来处理。 - 按需修改补丁版 mkarchiso。
- 使用
DIFF.sh
,根据官方 mkarchiso 与刚刚修改好的补丁版 mkarchiso 进行对比,来更新补丁。
- 利用
-
场景:想要对 diff 的参数进行修改,例如
diff -u
变成diff -U5
。- 利用
DIFF.sh
判断mkarchiso.patch
是否精确反映了差异;若否,先按源文件有更新来处理。 - 按需修改
DIFF.sh
中的所有 diff 命令。 - 删除
mkarchiso.patch
,再使用DIFF.sh
创建新补丁。
- 利用
Firefox
主要是对 Firefox 插件的更新,以及对书签作适当调整。
按照指示操作即可。
anotherpac
主要是将 anotherpac 所引用的几个仓库与上游进行同步:
releng
必要性
本项目是基于 releng 的,而 releng 本身与 archiso 工具又是不断更新的。 这就会导致一个问题:如果本项目从旧 releng 拿来的基础部分不变,却与新 releng 偏离过大,则可能无法用最新的 archiso 及配套工具来成功构建本项目的 arCNiso 镜像(或者即使得到了镜像也无法正常运行)。
方法论
- 基本要求:避免启用会自动整理代码风格的功能(比如 Lazyvim 默认开启的某个插件),否则可能会给逐行比对(diff)带来巨大麻烦。
- 关注 GitLab 上 releng 的最新变化,如
- 使用 diff 类工具(除 diff 本身以外还有多种 TUI/GUI 前端可选)对比本项目目录与 archiso 所提供的
/usr/share/archiso/configs/releng
目录。
其他
-
./getiso
:适用于在另一台机器上构建镜像的场景。 -
./testiso
:用于利用 VirtualBox 对镜像进行测试运行。- 使用前可能需要手动配置 VirtualBox 虚拟机(参见环境要求),并使虚拟机名为 arCNiso。
- 推荐将
ignored/path
设置为共享目录,自动挂载到虚拟机内,以便在宿主机与虚拟机之间传输文件(但是 symlink 类的无法直接这样传输,可以先用 tar 打包,或换用 ssh 的 scp 传文件)。
-
./publishiso
等系列脚本:用于自动发布。