我需要将gitlab-ci与docker一起使用,以便在每次提交时自动构建和测试archlinux包。
我的.gitlab-ci.yml
:
image: pritunl/archlinux
before_script:
- pacman -Su pkgbuild-introspection --noconfirm
stages:
- build
makepkg:
script:
- makepkg --clean --rmdeps --syncdeps --noarchive --noconfirm --noprogressbar --asdeps
stage: build
一切都很好,但是当CI调用makepkg命令时,我收到了这个错误:
==> ERROR: Running makepkg as root is not allowed as it can cause permanent, catastrophic damage to your system.
==> ERROR: An unknown error has occurred. Exiting...
我该如何解决?
答案 0 :(得分:2)
AFAIK,无法以root身份运行makepkg
。如果您以root身份运行,makepkg
可以将文件放在系统的任何位置,而不仅仅放在$pkgdir
所在的包中。这是使用fakeroot
停止的,Nearby Search Requests在root
运行时被禁用。
假根只是构建目录中的子目录 函数和行为作为系统的根目录。结合在一起 使用fakeroot程序,makepkg创建一个假的根目录,和 使用root将已编译的二进制文件和相关文件安装到其中 作为所有者。
我建议您扩展pritunl/archlinux
图片并添加一个简单的用户,仅适用于makepkg
操作。