我正在打包一个 Debian 软件包,它应该简单地安装一些源代码/usr/src/bcm5974-4.2
和一个 X 配置文件/usr/share/X11/xorg.conf.d
。它正确解压配置文件,但似乎根本没有安装/usr/src/bcm5974-4.2
目录。
我的项目可用在 GitHub 上这里。我在用着氟PM用一个非常简单的 Makefile 来打包它:
#!/usr/bin/make -f
PKG_NAME=bcm5974-4.2-dkms
PKG_VERSION=1.0.0
PKG_DESCRIPTION="Backported BCM-5974 module from kernel 4.2 including new MacBook hardware support."
MAINTAINER="NOPE"
all:
test -d build || mkdir build
fpm -f -s dir -t deb -n $(PKG_NAME) -v $(PKG_VERSION) -a all -p build/ \
-d dkms -d build-essential -d linux-headers-generic-lts-vivid \
-m $(MAINTAINER) --description $(PKG_DESCRIPTION) \
--post-install scripts/post-install.sh --pre-uninstall scripts/pre-uninstall.sh \
--post-uninstall scripts/post-uninstall.sh \
--deb-changelog CHANGELOG \
--exclude '.git*' usr/
这为我创建了一个漂亮的小 Debian 软件包build/
:
$ dpkg-deb -c build/bcm5974-4.2-dkms_1.0.0_all.deb
drwx------ 0/0 0 2015-11-04 13:41 ./
drwxrwxr-x 0/0 0 2015-11-04 13:41 ./usr/
drwxrwxr-x 0/0 0 2015-11-04 13:41 ./usr/share/
drwxrwxr-x 0/0 0 2015-11-04 13:41 ./usr/share/X11/
drwxrwxr-x 0/0 0 2015-11-04 13:41 ./usr/share/X11/xorg.conf.d/
-rw-rw-r-- 0/0 755 2015-11-04 13:40 ./usr/share/X11/xorg.conf.d/52-synaptics-bcm5974.conf
drwxrwxr-x 0/0 0 2015-11-04 13:41 ./usr/share/doc/
drwxrwxr-x 0/0 0 2015-11-04 13:41 ./usr/share/doc/bcm5974-4.2-dkms/
-rw-r--r-- 0/0 157 2015-11-04 13:41 ./usr/share/doc/bcm5974-4.2-dkms/changelog.Debian.gz
drwxrwxr-x 0/0 0 2015-11-04 13:41 ./usr/src/
drwxrwxr-x 0/0 0 2015-11-04 13:41 ./usr/src/bcm5974-4.2/
-rw-rw-r-- 0/0 237 2015-11-03 14:50 ./usr/src/bcm5974-4.2/Makefile
-rw-rw-r-- 0/0 32171 2015-11-03 14:50 ./usr/src/bcm5974-4.2/bcm5974.c
-rw-rw-r-- 0/0 246 2015-11-03 15:42 ./usr/src/bcm5974-4.2/dkms.conf
它似乎拥有我想要的一切,但它没有将源安装到/usr/src
.我怎样才能让它正确安装源/usr/src
?
答案1
事实证明,我的安装前/安装后/卸载脚本中存在一个错误,导致在错误的时间删除内容。
例如,参见这:
rm -fr "/usr/src/$dkms_name-$dkms_version"
Debian prerm 钩子在软件包更新期间也会被调用,所以看起来这个脚本在安装过程中删除了我的源目录。