我已成功将我的应用程序上传到 launchpad:但是它无法在 i386 和 amd64 上构建。以下是链接: https://launchpad.net/~mkamenjak/+archive/ubuntu/bugappppa/+packages
以下是来自启动板的构建日志: https://launchpadlibrarian.net/190190054/buildlog_ubuntu-utopic-amd64.bugapp_1-2ubuntu2_FAILEDTOBUILD.txt.gz
以下是我的 debian/control 文件的内容:
Source: bugapp
Section: web
Priority: optional
Maintainer: Mario Kamenjak <[email protected]>
Build-Depends: debhelper (>= 9)
Standards-Version: 3.9.5
Homepage: <insert the upstream URL, if relevant>
Package: bugapp
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: A webapp for bug.hr
<insert long description, indented with spaces>
以下是我的 debian/rules 文件的内容:
#!/usr/bin/make -f
%:
dh $@
为什么它无法构建以及我究竟该如何修复它?
笔记:我之前从未打包过任何东西。没有任何 .deb 或 .rpm 打包经验。
答案1
pbuild
Dobey 的回答是,使用或来跟踪依赖关系更加容易/快捷sbuild
。检查简易建造。
然而如果你有小工具需要打包并且连接带宽较低,我自己更喜欢直接在启动板上构建,因为我没有准备好chroot
环境设置,有时需要在低资源机器上工作。
来自构建日志:
dh_auto_test -a
make[1]: Entering directory '/build/buildd/bugapp-1'
qmltestrunner -input tests/unit
make[1]: qmltestrunner: Command not found
Makefile:18: recipe for target 'check' failed
make[1]: *** [check] Error 127
make[1]: Leaving directory '/build/buildd/bugapp-1'
dh_auto_test: make -j1 check returned exit code 2
很显然,您需要qmltestrunner
构建工具,请检查它的包:
$ dpkg -S qmltestrunner
qtdeclarative5-dev-tools: /usr/lib/x86_64-linux-gnu/qt5/bin/qmltestrunner
qtchooser: /usr/bin/qmltestrunner
因此添加它们来构建依赖关系。
Build-Depends: debhelper (>= 9), qtdeclarative5-dev-tools, qtchooser
然后再次上传。
更新:
pbuild
我很久以前就用过,现在又开始寻找新东西了。我认为cowbuilder
①
是最简单的可用工具。
安装它。
sudo apt-get install cowbuilder
编辑
pbuildrc
配置# this is your configuration file for pbuilder. # the file in /usr/share/pbuilder/pbuilderrc is the default template. # /etc/pbuilderrc is the one meant for overwriting defaults in # the default template # # read pbuilderrc.5 document for notes on specific options. MIRRORSITE=archive.ubuntu.com/ubuntu COMPONENTS="main universe"
两个已知问题:
- 这
MIRRORSITE=archive.canonical.com/ubuntu
将不起作用。(在 trusty 中看到,在 wily 中没有这样的问题) COMPONENTS="main universe"
,默认main
仅是,universe
需要cowdancer
②。
- 这
创建牛图像
sudo cowbuilder --create
构建你的 Debian 源码包
sudo cowbuilder --build yourpackage.dsc
在以下位置查找构建的软件包:
/var/cache/pbuilder/result/
参考:
①Debian 维基:cowbuilder
(pbuilder
包装纸)
②LP Bug#747053:cowbuilder 需要在 pbuilderrc 中启用 universe
答案2
您缺少构建应用程序所需的依赖项,构建依赖部分debian/控制文件。
另外,你应该使用构建或者构建器在将包上传到 Launchpad 上的 PPA 之前,测试包的本地构建,以确保包可以构建。