Skip to content

lilac 常见问题

Jiachen Yang edited this page Jan 4, 2019 · 7 revisions

lilac 打包常见问题

Q: 如何能够看到 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 执行的打包任务的日志信息

Q: 我的包打包失败了,lilac 为什么没有自动重新打包?

因打包失败的主要原因为 maintainer 的配置有误, 而重新打包浪费编译机资源且大多是无用功, 因而 lilac 目前在包没有更新的时候, 即使该包上次打包失败了, 也不会进行 repackage, 这时候需要 maintainer 对包进行更新, 如 bump pkgrel, 修改 lilac.py 等操作后进行提交, lilac 就会在下一次打包作业运行时进行打包.

Q: 我想要在打包前对上游的(比如AUR) PKGBUILD 的内容进行修改,我应该如何编写 lilac.py?

你需要编写 pre_build 函数, 在 pre_build 里对 PKGBUILD 进行修改, 可以通过 sed 或者推荐使用 lilac 内置的 edit_file 功能. 具体例子可以在 repo 内通过 git grep edit_file 来查看,通过使用 lines 对 PKGBUILD 按行读入, 后通过 print 函数写入 PKGBUILD, 详见 archlinuxcn/repo 内.

Q: 我想要在本地机运行 lilac 可以么?

不建议在本机上运行全量的 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 的话是无法构建的.

Q: 本地 devtools 打包成功而 lilac 打包出错,打包日志显示 source 中文件校验不一致,如何让 lilac 删除缓存的 source 文件?

以打包者账户 ssh 到 build.archlinuxcn.org 上,可以 sudo cleanup-package-files <pkgbase> 方式确认 lilac 历史打包过程中缓存着的文件,确认后可以 sudo cleanup-package-files --real <pkgbase> 方式删除那些文件.

Clone this wiki locally