打包预编译程序:未找到文件列表

打包预编译程序:未找到文件列表

我正在尝试打包一组已编译的二进制文件,包括文档、头文件、使用示例等......

原始二进制文件的安装说明建议将所有文件复制到以下目录中/usr

因此我做了以下事情debian/install

bin/* /usr/tigcc/bin
doc/* /usr/tigcc/doc
examples/* /usr/tigcc/examples
include/* /usr/tigcc/include
lib/* /usr/tigcc/lib
projects/* /usr/tigcc/projects

现在我正在debuild -uc -us -sa生成 .deb 文件。我遇到了这个错误:

 dpkg-genchanges -sa >../tigcc_0.95-0ubuntu2_amd64.changes
dpkg-genchanges: Fehler: Dateienliste-Datei kann nicht gelesen werden: Datei oder Verzeichnis nicht gefunden
#translation: error: couldn't read file list file: File or directory not found

为什么我会收到此错误?我做错了什么?

编辑:debian/规则

#!/usr/bin/make -f
# -*- makefile -*-

export DH_VERBOSE=1

%:
        dh $@

(某些包装指南默认)

编辑ls -lhR debian

debian:
total 36K
-rw-rw-r-- 1 sebastian sebastian  147 Feb 22 15:45 changelog
-rw-rw-r-- 1 sebastian sebastian    2 Feb 21 23:46 compat
-rw-rw-r-- 1 sebastian sebastian  454 Feb 23 12:43 control
-rw-rw-r-- 1 sebastian sebastian 1.2K Feb 23 12:19 copyright
-rw-rw-r-- 1 sebastian sebastian  148 Feb 26 21:39 install
-rw-rw-r-- 1 sebastian sebastian  102 Feb 23 12:13 postinst
-rw-rw-r-- 1 sebastian sebastian   79 Feb 23 12:13 preinst
-rwxr-xr-x 1 sebastian sebastian   85 Feb 26 21:39 rules
drwxrwxr-x 2 sebastian sebastian 4.0K Feb 21 23:11 source

debian/source:
total 4.0K
-rw-rw-r-- 1 sebastian sebastian 12 Feb 21 23:11 format

编辑:我尝试创建一个文件debian/files,只是因为我觉得它可能有用。错误消失了,但debuild只是说了几次“无需构建”,最终没有生成任何包。


编辑:根据一位试图帮助我的人的请求,我现在提供所用文件的链接。

原始二进制文件可以在这里找到这里,下面的东西debian 这里

笔记:这些链接直接指向 tar 档案。

答案1

删除安装文件中语句/中的前面的字符。/usr/tigcc/…

此外,您应该将其设为opt/tigcc/…或删除该tigcc位并将它们正确安装到 FHS 标准路径中,具体取决于二进制文件的编译预期。

另外,添加--fail-missingdh 的参数,例如:

%:
    dh $@ --fail-missing

当安装的文件未包含在包中时,这将导致构建失败。

答案2

好的,我建议一个比较简单的解决方法。进行备份,然后删除installpostinstallpreinstall。然后rules在文件末尾添加以下内容:

override_dh_auto_install:
dh_auto_install
    mkdir debian/packagename
    mv bin/* debian/packagename/usr/tigcc/bin
    mv doc/* debian/packagename/usr/tigcc/doc
    mv examples/* debian/packagename/usr/tigcc/examples
    mv include/* debian/packagename/usr/tigcc/include
    mv lib/* debian/packagename/usr/tigcc/lib
    mv projects/* debian/packagename/usr/tigcc/projects

然后复制包含该debian文件夹和其余预编译二进制文件的整个目录,并尝试构建二进制文件通过使用debuild -b -us -uc。我认为这应该可行,但请确保所有路径均正确,并且所有文件移动操作均按预期进行。


更新

我玩了链接的二进制文件和debian目录。我必须调整文件名、文件夹结构和control指令rules

要重现.deb,您需要解压二进制存档,在提取的tigcc目录中解压 debian 目录,然后debuild -b -us -ucdebian文件夹中运行。将两个存档放在临时文件夹中,然后:

bzip2 -d -c "tigcc-0.95_orig.tar.bz2" | tar -xf - 
cd tigcc/
tar -zxf  "../tigcc-debian.tar.gz"
cd debian/
debuild -b -us -uc
ls -l ../../*deb

除非您缺少一些依赖项,否则我不明白为什么这不起作用。

相关内容