我尝试为 Ubuntu 构建我的包,但我无法理解该错误。我明白了
debuild -S -sa
dpkg-buildpackage -rfakeroot -d -us -uc -S -sa
dpkg-buildpackage: source package opsh
dpkg-buildpackage: source version 0.1-1
dpkg-buildpackage: source distribution unstable
dpkg-buildpackage: source changed by Niklas Rosencrantz <[email protected]>
dpkg-source --before-build opsh
fakeroot debian/rules clean
dh clean --with autotools_dev
dh_testdir
dh_auto_clean
dh_autotools-dev_restoreconfig
dh_clean
dpkg-source -b opsh
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building opsh using existing ./opsh_0.1.orig.tar.gz
dpkg-source: info: local changes detected, the modified files are:
opsh/src/check.t
dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/opsh_0.1-1.diff.TooA5f
dpkg-source: info: you can integrate the local changes with dpkg-source --commit
dpkg-buildpackage: error: dpkg-source -b opsh gave error exit status 2
debuild: fatal error at line 1376:
dpkg-buildpackage -rfakeroot -d -us -uc -S -sa failed
答案1
错误是
dpkg-source: info: local changes detected, the modified files are:
opsh/src/check.t
这意味着opsh/src/check.t
与 的内容不匹配opsh_0.1.orig.tar.gz
。在 Debian 软件包中,对debian
目录外文件的任何更改都必须是可逆的。由于您使用的是“3.0(被子)”包装,因此处理此问题的最佳方法是添加补丁。这Debian 维基有详细信息,但错误消息为您提供了将更改转换为补丁的快速解决方案:
dpkg-source --commit
您需要适当地重命名并编辑补丁(生成时,它应该包含足够的注释供您解决问题)。
仅当文件确实以对构建有意义的方式发生更改时才应执行此操作。如果它是先前构建留下的文件,而不是在原始 tarball 中提供的文件,则您应该将其添加到其中,debian/clean
以便在构建开始时将其删除。这也适用于在 tarball 中提供但在构建过程中完全重新生成的文件。