BitBucket Pipeline构建Dpkg报错:control目录权限777不符合要求
解决dpkg-deb权限错误:control目录权限777不符合要求
报错根源:你仅修改了外层process-mgmt-svc目录的权限,但deb包构建要求DEBIAN/control目录及其内部文件的权限必须处于755-775区间,当前这些文件/目录权限为777,不符合规范。
以下是两种可行的修改方案,调整BitBucket Pipeline脚本即可解决问题:
方案1:复制时不保留原权限,直接设置正确权限
修改脚本中的复制和权限配置步骤:
script: - apt-get update && apt-get install -y dpkg-dev # 确保安装必要的dpkg工具 - cd .. - mkdir process-mgmt-svc - cp -r build/. process-mgmt-svc # 去掉-p参数,不保留原文件权限 - chmod 755 process-mgmt-svc/DEBIAN # 设置control所在目录权限 - chmod 644 process-mgmt-svc/DEBIAN/control # 若为可执行脚本则改用755 - dpkg-deb --build process-mgmt-svc
方案2:递归修正DEBIAN目录下的所有权限
如果需要保留部分原文件权限,可通过find命令递归调整:
script: - apt-get update && apt-get install -y dpkg-dev - cd .. - mkdir process-mgmt-svc - cp -rp build/. process-mgmt-svc - # 递归设置DEBIAN下所有目录权限为755,文件权限为644 - find process-mgmt-svc/DEBIAN -type d -exec chmod 755 {} \; - find process-mgmt-svc/DEBIAN -type f -exec chmod 644 {} \; - dpkg-deb --build process-mgmt-svc
说明:deb包的DEBIAN目录是核心配置区域,目录权限必须为755(允许所有者读写执行,其他用户读执行),普通配置文件一般设为644(所有者读写,其他用户读);若包含postinst/preinst等可执行脚本,可单独将其权限设为755。
内容的提问来源于stack exchange,提问作者Priyamal
相关产品推荐
相关产品推荐

