fakeroot debian/rules 二进制错误

fakeroot debian/rules 二进制错误

我有一个正在维护的软件包。当我发出“fakeroot debian/rules binary”时,出现此错误:

dh_install --sourcedir=debian/tmp 
cp: cannot stat `debian/tmp/usr/share/prg/1.svg': No such file or directory 
dh_install: cp -a debian/tmp/usr/share/prg/1.svg debian/prg//usr/share/prg/ returned exit code 1 
make: * [install-arch] Error 2

我无法纠正这个错误。我可以发出“cd debian/tmp/usr/share/prg”,然后发出“ls”,然后 1.svg 确实存在。

在我的 makefile 中:

dist_pkgdata_DATA = 1.svg

在我的 prg.install 文件中:

usr/share/prg/1.svg
etc/config.ini

config.ini 文件安装没有问题。

任何建议都将不胜感激。谢谢

答案1

错误是由 引发的dh_install,正如您的debian/rules文件所调用的。最有可能的是目的地缺少的是源文件,而不是源文件。在这种情况下,是否debian/prg//usr/share/prg存在?我敢打赌不存在。按照惯例,软件包的文件要么以debian/tmp(1:1 源:二进制软件包的典型形式) 构建,要么以debian/binary-package-name(1:n 源:二进制软件包的更佳形式) 构建,因此尝试从一种约定复制到另一种约定会导致错误。

检查你的debian/*install文件。另请参阅dh_install(1)手册页。特别是,

debian/软件包安装

列出要安装到每个包中的文件以及应安装到的目录。格式是一组行,每行列出要安装的一个或多个文件,行末说明应安装到的目录。要安装的文件(或目录)的名称应相对于当前目录给出,而安装目录是相对于包构建目录给出的。您可以在要安装的文件名称中使用通配符(在 v3 模式及以上)。

如果你真的想debian/prg/usr/share/prg存在,你必须指示dh_installdirs创建目录。debian/package.dirs为你的包创建,列出要创建的目录的名称,相对于构建目录,例如

usr/share/man/man6
usr/lib
usr/share/prg

相关内容