构建软件包时如何解决dpkg-source问题?


16

这里有没有人有过创建Debian / Ubuntu软件包的经验?我正在尝试将lammps软件包(http://packages.ubuntu.com/quantal/lammps)从Ubuntu 12.10(Quantal )移植到Ubuntu 12.04

我只非正式地需要它-为了方便起见,在创建自定义虚拟机映像以部署到IaaS平台时,只需要一个.deb包即可。

遵循https://wiki.ubuntu.com/PackagingGuide上的Ubuntu打包指南,我可以成功构建,除非当我尝试使用debuild命令进行重建时,通常会出现以下错误:

 dpkg-source: error: aborting due to unexpected upstream changes, see
 /tmp/lammps_0~20120615.gite442279-1.diff.aie32n dpkg-source: info: you
 can integrate the local changes with dpkg-source --commit
 dpkg-buildpackage: error: dpkg-source --include-binaries -i -b
 lammps-0~20120615.gite442279 gave error exit status 2

在src目录中运行“ make clean-all”仍然无法解决问题。有什么方法可以完全清除在生成过程中生成的所有文件,或者要求debuild忽略源文件中的任何差异?

Answers:


6

这意味着您已对未打包的上游源应用了更改,这些更改不属于debian/patches/目录中修补程序的一部分,或者属于目录中的series文件;和/或被子贴布的状态不一致。

查看/ tmp中提到的文件,将显示有问题的更改。


非常感谢您的快速回答!有没有一种快速的方法来还原“ make”所做的更改,而不是撤消/ tmp / * diff *文件中的所有更改记录?
hanxue 2012年

29

通过构建二进制文件来避免Debian官僚主义: dpkg-buildpackage -b


1
如果您打算上载到debian,这不是那么有用。
jeremiah

4
@jeremiah,但如果您要调整供个人使用的debian软件包,则非常有用。
Wyatt8740 '18年

10

如果您不想使用被子,请将debian / source / format中的格式从3.0(被子)更改为3.0(本机)。无论如何,这为我解决了问题。


这个!被子是不可能的。
周杰伦_silly_evarlast_ Wren 2015年

1
我天真地遵循了这一评论。最终结果是您的构建将不再使用debian / patches中的补丁。您可以通过解释如何在debian / rules中添加必要的魔术来实际应用补丁来扩展答案吗?
Thomas Vander Stichele


1

当被子错误地认为我已将补丁应用于工作副本时,我看到了此问题(您可以在.pc文件夹中找到其当前状态)。在这种情况下,解决方法是强制quilt用弹出所有补丁quilt pop -a -f


0

如果您完成了所有Debian的“文书工作”,但碰巧有先前尝试留下的残存工件,则可能会发生这种情况。特别是,自动生成的对“ config.sub”,“ config.guess”和“ Makefile”的更改。

您可以将其放在debian / source / options中:

# Don't store changes on autogenerated files
extend-diff-ignore = "(^|/)(config\.sub|config\.guess|Makefile)$"

参考:https : //raphaelhertzog.com/2011/01/28/3-ways-to-not-clutter-your-debian-source-package-with-autogenic-files/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.