我需要从主要 Node.js Javascript 文件构建一个 DEB 包,但它也应该包含一些二进制文件。它们列在里面debian/source/include-二进制文件否则我会收到错误消息
dpkg-source: error: unrepresentable changes to source
有问题的命令是:
bzr builddeb -- -us -uc
添加文件后包含二进制文件,运行时bzr builddeb ---us-uc再次,现在我得到了一个不同的错误:它说
dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/mailadmin_0.0-1.diff.n6m5_6
我不知道如何摆脱它。
在下一行输出中它告诉我
dpkg-source: info: you can integrate the local changes with dpkg-source --commit
但是,如果我在包的构建区域中运行此命令,它会给我无法表述的源代码变化再次出现错误信息,虽然 debian/source/include-二进制文件也存在于构建区域中。
我不明白如何摆脱这个问题......
我尝试删除构建过程生成的所有文件,但仍然没有成功。
更多细节:
目标目录是/opt/mailadmin。由于这个目录不常见,所以我将其列在文件中debian/mailadmin.install(其中包含一行:)
opt/mailadmin opt/
这bzr 构建 deb进程按预期使用此文件。
由于该项目是新的,因此没有上游 tarball。
答案1
您的错误与二进制文件无关。虽然听起来非常相似。(dpkg
在这种情况下,可能值得提交错误报告以获取更好的错误消息。)如果它与二进制文件有关,则它看起来像:
dpkg-source: error: cannot represent change to package_name-X.Y/debian/some_binary_file.png: binary file contents changed
即使如此,也只有在使用旧版1.0
源包时才会发生这种情况。
这与上游 tarball 有关。如果您确实在使用,bzr builddeb -- -us -uc
则必须确信bzr builddeb
您有一个上游 tarball,否则它会在查找 tarball 时出错。您创建的任何 tarball 的内容与 bzr 分支的内容不匹配,因此您会收到有关“意外的上游更改”的错误。
处理这种情况最简单的方法是传递标志--split
:
bzr builddeb --split -- -us -uc
从bzr help builddeb
:
--split Automatically create an .orig.tar.gz from a full
source branch.
这只是将外面的所有内容放入/debian
tarball 中并使用它。