Dpkg dh_install:从构建目录而不是 debian/tmp 目录复制文件?

Dpkg dh_install:从构建目录而不是 debian/tmp 目录复制文件?

假设我有一个 debian 软件包外壳如下:

project_pkg/
  .git
  project_0.0-1/
     debian/
        install
        ...
     project (git submodule with tagged commit)

使用以下安装文件:

// .../debian/install
#!/usr/bin/env bash
find $(pwd)/project/path/to/binaries -type f -executable -printf "$(pwd)/project/path/to/binaries/%f usr/bin\n"

项目有一个make入口点,例如make -C project build可以生成我需要打包的所有必要文件。

整个打包过程的制作/构建组件现在可以正常工作。但是,理想情况下,我可以从安装文件夹中找到需要安装的所有必需文件。

我现在有一个解决方案,其中涉及将项目中的二进制文件从debian/tmp/外部/debian或从/debian/rules.

但如果有某种方法可以做到这一点,我可以轻松地设置dh_install从项目中获取文件。

A)有没有办法dh_install从项目中获取文件,

B) 只需运行两个find命令并将二进制文件复制到debian/tmp目录即可吗?

C)我应该破解它并printf在安装查找命令中添加前缀../..

答案1

  1. dh_install获取相对于当前目录的路径,当前目录通常是包的顶级目录。在你的情况下project_0.0-1,所以你的find调用应该输出project/path/to/....

  2. 是的,那也行。我知道我推荐了dh_install,但第一条规则debhelper仍然是它是为您服务的工具,如果您发现跳过它更容易,您不妨这样做:

    override_dh_install:
            install -d debian/package/usr/bin
            find project/path/to/binaries -type f -executable -exec install -t debian/package/usr/bin {} + \;
    
  3. 我认为这行不通。

(在大多数情况下,我希望您的主构建能够将二进制文件安装到给定的目标,但这是另一个讨论。)

相关内容