PPA 工作仅使用 pbuilder 或 ppa 本身创建空的构建目录

PPA 工作仅使用 pbuilder 或 ppa 本身创建空的构建目录

我成功构建了一个 debian 包,没有任何错误。但是 pbuilder 和我的 ppa 上传不会将文件复制到 /opt/ 目录。我有以下树:

├── opt 
│   └── myDir
│       └── myfile
└── DEBIAN
    ├── control
    ├── postinst
    └── preinst   and many more ....

我已经创建了模板dh_make并编辑了postinst、版权、控制等。

我以为安装后/opt会自动克隆到我的/opt。当我使用构建我的包debuild -us -uc并使用安装该包时,情况就是这样dpkg -i,但不幸的是,当我检查 pbuilder 或我的 ppa 的输出时并没有发生这种情况。只创建了一个空的构建目录/opt/myDir。如果需要,我愿意提供更多信息。任何指导都值得赞赏。

部分信息如下:

  1. debian/control 文件

    Source: myproj
    Section: utils
    Priority: optional
    Maintainer: My Name <myname...>
    Build-Depends: debhelper (>=9), sudo, qtbase5-dev, qtchooser, qt5-qmake, qtbase5-dev-tools, gksu, nmap, xterm, fontconfig
    Standards-Version: 3.9.6
    Homepage: <mygit..>
    #Vcs-Git: git://anonscm.debian.org/collab-maint/myproject.git
    #Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/myproject.git
    
    Package: mypackage
    Architecture: any
    Depends: ${shlibs:Depends}, ${misc:Depends}
    Description: descriptions
    
  2. postinst:是一个在目标中编译 Qt 项目的 bash 脚本/opt/myDir

  3. 我没有碰过rules文件。
  4. copyright是公认的。

debuild给出了一些警告,但没有错误。请帮我解决 /opt 未被克隆到目标文件系统的原始问题。谢谢。

答案1

  • 可能您正在使用自定义构建位置,因此 debian helper 无法自动找出文件在哪里。

  • DEBIAN大写的 ?!!! 表示这是一个二进制 Debian 软件包,您确定这是预构建的二进制文件吗?否则将其重命名debian 或重新检查文档。

  • 如果您不想更改文件位置的构建规则。编写一个 debian/<packagename>.install文件,将每个文件夹或文件(在构建树中)映射到正确的安装位置。例如,如果您想在安装后复制到source-package/opt/opt则此文件的内容应该是

    opt/* opt
    

参考:Debian 维护者指南

相关内容