假设我有一个 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
dh_install
获取相对于当前目录的路径,当前目录通常是包的顶级目录。在你的情况下project_0.0-1
,所以你的find
调用应该输出project/path/to/...
.是的,那也行。我知道我推荐了
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 {} + \;
我认为这行不通。
(在大多数情况下,我希望您的主构建能够将二进制文件安装到给定的目标,但这是另一个讨论。)