为什么 dh_auto_install 和 dh_install 不使用同一目录?

为什么 dh_auto_install 和 dh_install 不使用同一目录?

我尝试使用从源代码构建单个包dpkg 构建包。在某个时刻dh_auto_install被调用并运行make install DESTDIR=/somewhere/debian/package-name

然后dh_install被调用,但只在.or中搜索,debian/tmp但不在debian/package-name!

我得到类似的信息:

dh_install: Cannot find (any matches for) "usr/include/*" (tried in ., debian/tmp)

如何使它们都在同一目录中使用?

(如果我尝试构建多个包,则没有问题)(compat 9)

答案1

我猜测你的源包会构建一个二进制包;IE,你debian/control有一个Package:节。在这种情况下,dh_auto_install将文件安装到debian/package,然后假设这就足够了,IEdebian/package完成后,您需要安装的所有文件都会出现在正确的位置dh_auto_install

dh_install主要用于构建多个二进制包的源包:它获取debian/tmp或下的文件.并将它们复制到debian/packageX.

就您而言,由于您正在尝试安装usr/include/*,我怀疑您根本不需要dh_install- 您应该在 中找到您想要安装的文件并等待debian/package/usr/include。但是,如果您在 下安装文件,则usr/include可能会打包一个库,在这种情况下,您应该更改文件debian/control以创建多个二进制包(一个用于库,一个用于开发文件),然后dh_auto_install将安装到debian/tmp并将dh_install按照您的预期工作。

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

相关内容