我已成功按照how to build a Debian package from source问题的说明操作。
但是,我想在修改源代码后重复修改包("增量版本"),并且建议的命令会重建包,但修改后的源文件不会重新编译。 / p>
如何让dpkg-buildpackage
(或debian/rules
)重建修改后的源文件?这是否可以一般地实现,还是依赖于包构建文件?
具体来说,我试图为chromium-browser
包
答案 0 :(得分:1)
您的问题的答案在https://askubuntu.com/a/2879/164798
上找到简而言之:
dpkg-buildpackage -us -uc -nc
使用完整的工具链fakeroot debian/rules binary
只是编译步骤您需要从包源目录(debian/
目录所在的位置)执行它。
.dsc
,.orig.tar.gz
(或.xz
等),.diff.gz
(或.xz
等)。 .dsc
,.tar.gz
(或.xz
等。)apt
,您可以执行apt-get source "$PACKAGE"
,这还包括下一步(它为您运行dpkg-source -x
)。解压缩来源:
dpkg-source -x "$FULLPACKAGE.dsc"
其中FULLPACKAGE
是完整的包名(包括完整版)第一次编译:
cd "$ORIGPACKAGE"
其中ORIGPACKAGE
与FULLPACKAGE
类似,版本仅限于第一个短划线(-
)dpkg-buildpackage -us -uc -nc
Unmet build dependencies:
(另请参阅dpkg-checkbuilddeps
):
apt-get build-dep $PACKAGE
,请尝试apt
。如果不是:debian/control
Build-Depends
并安装依赖项。如果你想自动化mk-build-deps -i "$FULLPACKAGE.dsc" -t sudo apt-get --no-install-recommends -y
(在那里找到:https://www.v13.gr/blog/?p=364)。pbuilder
(对不起,我对此还不知道)之后快速编译更改:
fakeroot debian/rules binary
如果您对此感到满意,请使用dpkg-buildpackage -us -uc
(如果您使用签名,请将选项留下)。
答案 1 :(得分:0)
根据您的源代码,使用的构建工具应该负责编译新修改的源文件。 debian打包工具调用构建工具,可能是你的案例中的Makefile,并从生成的二进制文件和其他文件构建一个包。
通常,包装应该是软件开发过程的后期步骤。首先编写代码,然后在准备发布时将其打包。
我建议使用pbuilder在系统的虚拟容器中进行包构建,而不是在系统本身上进行。
答案 2 :(得分:0)
您可以在debian git hooks的分支上使用git git-buildpackage和repository来帮助自动执行此操作。