在 DEB 包中包含二进制文件

在 DEB 包中包含二进制文件

我需要从主要 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.

这只是将外面的所有内容放入/debiantarball 中并使用它。

相关内容