我正在尝试打包一组已编译的二进制文件,包括文档、头文件、使用示例等......
原始二进制文件的安装说明建议将所有文件复制到以下目录中/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-missing
dh 的参数,例如:
%: dh $@ --fail-missing
当安装的文件未包含在包中时,这将导致构建失败。
答案2
好的,我建议一个比较简单的解决方法。进行备份,然后删除install
、postinstall
、preinstall
。然后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 -uc
从debian
文件夹中运行。将两个存档放在临时文件夹中,然后:
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
除非您缺少一些依赖项,否则我不明白为什么这不起作用。