我应该如何打包我的源代码以便 Launchpad 为所有版本的 Ubuntu 构建我的包?

Bra*_*iam 5 launchpad ppa

我有一个应该为所有版本的 Ubuntu 构建的包,所以我希望 Launchpad 构建所有这些......好吧,它没有。我只trusty在更改日志发布字段中使用提交,然后 Launchpad 为 Trusty 构建它。我改变了它precise,只是为 Precise 构建。有没有办法可以为多个发布目标使用相同的源?

ffc (1.3.20140513-1) trusty; urgency=medium

  * Non-maintainer upload.
  * Moving to git.
  * Syncronized debian/* with upstream

 -- redacted <redacted@example.com>  Fri, 16 May 2014 16:15:00 -0400
Run Code Online (Sandbox Code Playgroud)

Nat*_*man 5

是和否。

目前无法dput用于上传为多个 Ubuntu 版本构建的包。但是,您可以使用以下两种方法之一来实现您的目标:

创建配方

如果您从 Launchpad 上的一个分支构建一个包,并且您有 Debian 打包,请创建一个针对您希望支持的 Ubuntu 版本的每日构建配方。本答案的后半部分对此进行了更详细的描述。

这确实是最好的解决方案,因为它还会在您每次进行更改时自动执行新构建(尽管您可以手动分派额外的构建,但每天只能进行一次自动构建)。

手动上传多个版本

这不是一个理想的解决方案 - 但它有效。您需要做的是使这项工作:

  • 调整更改日志中的版本号以匹配此格式:

    [version]-1ppa1~[release]1
    
    Run Code Online (Sandbox Code Playgroud)

    ...其中[version]是软件包版本和[release]是一个Ubuntu释放代号(例如trustysaucy等)。

  • 确保更改日志设置为构建正确的版本。换句话说,对于 Trusty,更改日志的第一行应如下所示:

    ffc (1.3.20140513-1ppa1~trusty1) trusty; urgency=medium
    
    Run Code Online (Sandbox Code Playgroud)

使用上传包dput,然后为要为其上传包的每个版本重复上述两个步骤。您可以在此处查看有关其工作原理的示例。