这是我第一次尝试从源创建自己的包。我是怎么做到的:
fakeroot
make install DESTDIR=/home/user/temp
cd /home/user/temp
mkdir DEBIAN
find etc | sed "s/^/\//" > DEBIAN/conffiles
之后我创建了 DEBIAN/control 文件并运行dpkg -b /home/user/temp
.之后我有了 deb 包,并且作为一个真正的 root 我这样做了dpkg -i /home/user/temp.deb
。但是,dpkg 不会将文件从 deb 包复制到 fs,但它会抱怨此类文件夹不存在(没有此类文件或目录)。据我了解,它必须创建 DEBIAN/CONTENTS 中的文件夹,但事实并非如此。我想念什么?
编辑我尝试添加文件 DEBIAN/dirs 和路径列表:
/etc
/etc/selinux/
/etc/selinux/refpolicy
...
但这没有帮助(我尝试使用前导 / 和不使用前导 /)
编辑命令dpkg-deb -c temp.deb
有以下输出
drwxr-xr-x user/user 0 2016-09-08 10:57 ./
drwxr-xr-x user/user 0 2016-09-08 10:57 ./etc/
drwxr-xr-x user/user 0 2016-09-08 10:57 ./etc/selinux/
drwxr-xr-x user/user 0 2016-09-08 10:57 ./etc/selinux/refpolicy/
drwxr-xr-x user/user 0 2016-09-08 10:57 ./etc/selinux/refpolicy/src/
drwxr-xr-x user/user 0 2016-09-08 10:57 ./etc/selinux/refpolicy/src/policy/
drwxr-xr-x user/user 0 2016-09-08 10:57 ./etc/selinux/refpolicy/src/policy/support/
-rw-r--r-- user/user 6176 2016-09-08 10:57 ./etc/selinux/refpolicy/src/policy/support/Makefile.devel
-rw-r--r-- user/user 6 2016-09-08 10:57 ./etc/selinux/refpolicy/src/policy/support/undivert.m4
-rw-r--r-- user/user 12 2016-09-08 10:57 ./etc/selinux/refpolicy/src/policy/support/divert.m4
-rw-r--r-- user/user 10673 2016-09-08 10:57 ./etc/selinux/refpolicy/src/policy/support/pyplate.py
-rw-r--r-- user/user 13796 2016-09-08 10:57 ./etc/selinux/refpolicy/src/policy/support/fc_sort.c
..... etc
这是我得到的:
error creating directory `./etc/selinux/refpolicy/src': No such file or directory
答案1
问题似乎是您已将目录标记为文件conffiles
中的内容DEBIAN/conffiles
。这不受支持并且确实会破坏。最近的版本dpkg-deb
会在这些情况下发出警告。
另外,该DEBIAN/dirs
文件在这里没有用处,我猜这与源目录 debian/dirs 下的文件混淆了,由debhelper
.