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


2

假设我有一个如下的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/tmpdir中?

C)我是否应该对其进行破解,并printf在install find命令中添加前缀../..

Answers:


2
  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. 我认为那不行。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.