-
Notifications
You must be signed in to change notification settings - Fork 298
lilac 常见问题
在社区编译机上 lilac 的日志存放目录为 /home/lilydjwg/.lilac
. 共有两种日志可以查看:
-
build.log
: 全量的打包结果日志, 信息为某一个包打包是否成功, 时间戳,以及打包用时. -
log/<TIMESTAMP>
: 每一次 lilac 运行的详细打包日志,有详细的错误信息, dependency resolve 结果等. 文件名由时间戳表示 如: 2018-11-10T09:13:01 表示 UTC+8 2018-11-10 09:13:01 执行的打包任务的日志信息
另外,你可以通过 Archlinuxcn Packages Dashboard 查看最近的打包状态和打包日志。
因打包失败的主要原因为 maintainer 的配置有误, 而重新打包浪费编译机资源且大多是无用功, 因而 lilac 目前在包没有更新的时候, 即使该包上次打包失败了, 也不会进行 repackage, 这时候需要 maintainer 对包进行更新, 如編輯 PKGBUILD, 修改 lilac.py 等操作后进行提交, lilac 就会在下一次打包作业运行时进行打包。如果觉得不需要修改任何东西,比如打包错误表明是由于临时性网络故障,可以参考下面的方式手动触发 lilac 打包。
有两种方式:
- 可以在 lilac.yaml 的 update_on 字段增加一节 manual 的更新条件,并修改 manual 条件的参数。更新条件可以并列多条,manual 条件可列在其余更新条件之下。
- 如果想要在 lilac 定期排程以外触发 lilac 建构特定包,可以用 GitHub 帐号登录 https://build.archlinuxcn.org/triggerabuild/ 将包名加入队列。
你需要编写 pre_build
函数, 在 pre_build
里对 PKGBUILD 进行修改, 可以通过 sed
或者推荐使用 lilac 内置的 edit_file
功能.
具体例子可以在 repo 内通过 git grep edit_file
来查看,通过使用 lines
对 PKGBUILD 按行读入, 后通过 print
函数写入 PKGBUILD, 详见 archlinuxcn/repo 内.
不建议在本机上运行全量的 lilac, 可以在本机运行 lilac 对单个包进行调试,配置 lilac 的方式见 archlinuxcn/lilac. 以下是一些注意事项:
-
single_main
不会读取配置的build_prefix
,single_main
默认的第一个参数是makepkg
, 如果想要使用其他如extra-x86_64-build
则需要传递build_prefix
参数给single_main
. -
single_main
不会做 dependency resolution, 因而如果要测试的包在 lilac.py / lilac.yaml 里指定了 dependency 的话是无法构建的.
以打包者账户 ssh
到 build.archlinuxcn.org 上,可以 sudo cleanup-package-files <pkgbase>
方式确认 lilac 历史打包过程中缓存着的文件,确认后可以 sudo cleanup-package-files --real <pkgbase>
方式删除那些文件.
很多包需要在 Python、Ruby、boost-libs、icu 等官方包升级之后重新构建。这时可以在 lilac.yaml 的 update_on
字段里添加项目,如:
- archpkg: python
from_pattern: '^(\d+\.\d+)\..*'
to_pattern: '\1'
考虑到很多包都会有类似的需求,此字段支持别名。比如上述配置可以使用名为 python
的别名:
- alias: python
当前已定义的别名可以看 lilac2/aliases.yaml。
注意:别名是 lilac.yaml 在加载时被解释的。nvchecker 并不支持,在 lilac.py 中也读取不到。