我快疯了。我已经构建了一个不需要任何实际编译的工具——它只是一个Perl脚本——当我在上面运行bzr builddeb
时,我会得到一个WORKING.deb文件,当我运行dpkg -i zfsync_1.0.0-0ubuntu3_all.deb
时,它会将我的脚本zfsync复制到/usr/bin/zfsync。
然而,当我运行bzr builddeb -S
,然后运行dput
时,生成的source.changes文件会更改为我的PPA,它不会出错。。。但是apt-get-install-zfsync的结果是"成功"安装,只有我的二进制文件实际上没有放在/usr/bin中!
我有一个debian/install文件,其中包含zfsync usr/bin
,没有其他内容。出于绝望,我创建了一个简单的Makefile,如果运行make install
,它也会将zfsync复制到/usr/bin。然而,似乎没有什么帮助,在Canonical公司可怕的PPA农场上半小时的"建造"时间让我失去了理智。
当我执行apt-get-source zfsync时,在获取的源目录中查找不会显示任何debian/install
文件。我不知道PPA为什么要剥离那个文件,但它显然是——如果没有它,我的脚本就不会真正安装。
拜托,拜托,外面有包装大师吗?帮助
我仍然不知道它为什么要折磨我——我严格遵循Ubuntu的打包指南——但最终我还是成功了。
我最终做的是:将apt-get source zfsync
放入一个完全不同的目录,然后调查其中的内容。
除了一个包含我所有东西的"zfsync-1.0.0"文件夹外,还有一个"zfsync"文件夹,里面有usr/share/doc
,但根本没有usr/bin
。我在"zfsync"文件夹中手动创建了usr/bin/zfsync
,非常确定"debian/install"中有"zfsyncusr/bin",然后做了bzr init
、bzr commit
和dput ppa:jrssnet/zfsync zfsync_1.0.0-0ubuntu5_source.changes
。。。五分钟或十分钟后,成功!Ubuntu的构建过程实际上不仅产生了.deb,而且产生了一个.deb,它实际安装了我的DAMN脚本。:)