如何使用`pbuilder`构建源代码包以进行PPA上传?
我正在尝试使用pbuilder
上传到PPA。 使用以下命令构建包:
sudo pbuilder build _.dsc
但上传失败并出现错误:
Source/binary (ie mixed) uploads are not allowed.
据说我需要使用pdebuild
来构建source package
,但是pdebuild
不会解析构建依赖性。 我该如何构建这个包,以便最终上传? 我不想手动安装依赖项。
答案是你没有。 pbuilder
获取源包并构建二进制文件。 它也可以在没有构建源包的情况下获取源代码,并创建您自己托管的二进制文件,或者添加到您自己的debian存储库系统中以自行托管。
这不是PPA所需要的。
您想要做的,以及我强烈建议的是,您遵循传统的打包程序,并在代码上运行debuild -S
,包含源代码, debian/
文件夹以及其他所有内容的目录。 。
然后,在通过debuild -S
构建源包debuild -S
,您可以通过debuild -S
将创建的.changes
文件在源目录上方的一个目录中上载到PPA。 (此步骤在Launchpad的PPA上传帮助文档中引用)。
理论上你可以使用pdebuilder
来保持你的系统干净并在chroot内部构建,但请继续阅读我的声明,以及之前为什么它失败了。
根据评论,您已正确识别debhelper无法找到autoreconf
插件。
正如我在对这个答案的评论中所说, pbuilder
和pdebuilder
都不够聪明,无法确定debhelper的依赖关系。
要解决您的问题,以便您的东西可以构建,您将不得不手动使用pbuilder
或pdebuilder
登录chroot。 然后,您必须手动将dh-autoreconf
安装到chroot中,通常在登录chroot后使用apt-get install dh-autoreconf
。
一旦你完成了,并保存了chroot的状态,你应该能够pbuilder
或pdebuilder
你的包。
(但是,我更喜欢传统上使用包,我不在乎我的构建系统是否完全干净,我真正构建的都是源包,并且debhelper插件不会让我的系统变得非常混乱)
pbuilder
用于从源包构建二进制包。 PPA还从源包构建二进制包。 只需dput
您在创建
文件时创建的source.changes
文件。
使用pbuilder
一个要点是在本地模仿干净的chroot环境,该环境用于在官方档案和PPA中构建二进制包。