长期维护
This content is not available in your language yet.
维护工作包括若干方面。
追踪更新是其中最基本的(即使不是工作量最大的),这里对其进行简要说明。
mkarchiso
Section titled “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
创建新补丁。
- 利用
layer-rootfs
Section titled “layer-rootfs”主要是将 layer-rootfs
目录所引用的几个仓库与上游进行同步:
releng
Section titled “releng”本项目是基于 releng 的,而 releng 本身与 archiso 工具又是不断更新的。 这就会导致一个问题:如果本项目从旧 releng 拿来的基础部分不变,却与新 releng 偏离过大,则可能无法用最新的 archiso 及配套工具来成功构建本项目的 arCNiso 镜像(或者即使得到了镜像也无法正常运行)。
- 基本要求:避免启用会自动整理代码风格的功能(比如 Lazyvim 默认开启的某个插件),否则可能会给逐行比对(diff)带来巨大麻烦。
- 关注 GitLab 上 releng 的最新变化,如
- 使用 diff 类工具(除 diff 本身以外还有多种 TUI/GUI 前端可选)对比本项目目录与 archiso 所提供的
/usr/share/archiso/configs/releng
目录。
Arch 官方包与 AUR 包
Section titled “Arch 官方包与 AUR 包”这一点在构建的时候会体现出来。
例如 btrfs-assistant
曾是 AUR 的包,后来被移到官方的 Extra 仓库,这就导致报错:
!! Retrying "paru -G --noredownload btrfs-assistant" (1/1) downloading: btrfs-assistanterror: failed to run: pkgctl export btrfs-assistant: No such file or directory (os error 2)
同理,tilix
曾是官方的包,现在已经变成 AUR 的包。
这种情况下就需要调整包名列表(即 packages.x86_64
)。
-
./getiso
:适用于在另一台机器上构建镜像的场景。 -
./testiso
:用于利用 VirtualBox 对镜像进行测试运行。- 使用前可能需要手动配置 VirtualBox 虚拟机(参见环境要求),并使虚拟机名为 arCNiso。
- 推荐将
ignored/path
设置为共享目录,自动挂载到虚拟机内,以便在宿主机与虚拟机之间传输文件(但是 symlink 类的无法直接这样传输,可以先用 tar 打包,或换用 ssh 的 scp 传文件)。
-
./publishiso
等系列脚本:用于自动发布。