我正在构建仅二进制包:
dpkg-buildpackage -b -us -uc
Run Code Online (Sandbox Code Playgroud)
构建实际上运行成功,但我已经删除了以前版本的包,现在 dpkg-genchanges 抱怨:
dh_builddeb
dpkg-deb: building package `zzz' in `../zzz_01-4_amd64.deb'.
dpkg-genchanges -b >../zzz_01-4_amd64.changes
dpkg-genchanges: binary-only upload - not including any source code
dpkg-genchanges: error: cannot fstat file ../zzz_01-1_amd64.deb: No such file or directory
dpkg-buildpackage: error: dpkg-genchanges gave error exit status 2
Run Code Online (Sandbox Code Playgroud)
有没有办法跳过这一步?我真的不需要它,因为我正在构建供本地使用的 deb 包,而以前的版本是不必要的。
debian/files之后你看到了什么台词dpkg-buildpackage?它应该是这样的:
hello_2.8-2_i386.deb devel optional
Run Code Online (Sandbox Code Playgroud)
该文件由它创建和更新,dpkg-deb并dpkg-genchanges读取它以获取要在.changes文件中列出的文件。
dpkg-deb如果它已经存在,只需添加一个新行debian/files,因此必须确保它在二进制构建的开头被删除debian/rules。 dh_clean对此会有帮助。