如何创建和管理多架构的PPA?

我有一个程序需要为每个ubuntu版本重新编译。

目前我正在使用Ubuntu的PPA打包它,仅用于当前的发行版。

最后,我必须为之前的ubuntu版本提供软件包。

我不知道如何做到这一点。

Ubuntu PPA构建服务器如何工作 – 它只是查看最新的更改日志条目(在debian / changelog文件中)中的分发字段,以确定应该构建软件包的分布?

debian规范允许在分发字段中添加多个分布。 但这并不能帮助我。

一些ubuntu文档谈到将分发名称编码为版本号(在debian changelog文件中)。

但这在实践中如何运作? 该程序的新版本可用,那么什么? 我是否为每个发行版添加了一个新的更改日志条目,并且PPA buildserver会在每次发布后自动为每个分发新包构建? 或者PPA构建服务器是否只查看第一个更改日志条目?

要做的就是为每个Ubuntu版本上传一次

Launchpad不会为不再支持的Ubuntu版本构建软件包,只为一个特定版本的Ubuntu构建软件包。 目标版本是(如您所知)在更新changelog文件中指定的最新条目!

请记住,在所有版本的Ubuntu中,可能无法在相同版本中使用程序所依赖的程序包。

您还谈到了“多架构”(架构= CUP类型,例如x86,LPIA,AMD64)这没有什么区别,因为只要您拥有Architecture: any包中的Architecture: any ,每个上传的包都是为所有可用架构构建的( debian/control )文件,这也允许你使包依赖于不同的包的不同架构(不止一次定义包)

Launchpad目前处于测试阶段,它允许您一次性构建多个ubuntu版本的软件包,无需任何额外工作。 您甚至可以每天自动构建包。 https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted 替代文字

关于命名约定,标准是做这样的事情:

  • 1.0-0ubuntu1用于最终在Ubuntu官方档案中的软件包
  • 1.0-0ubuntu1~lucidppa1用于放入PPA中用于清洁的软件包的版本
  • 1.0-0ubuntu1~karmicppa1为Karmic包的版本

原因是版本字段中的〜表示版本号的“少于零”。 因此,如果有人在Karmic添加您的PPA,他们将获得~karmicppa1包。 当他们升级到Lucid(并阅读你的PPA)时,它将被Lucid PPA包替换。 如果您的软件包进入官方存档,那么从您的PPA过渡将顺利进行。

另一个优点是将版本放在版本字段中可以清楚地说明文件适用于哪个版本(并巧妙地提醒您每个版本上传一个版本)。 例如,当您有不同的依赖关系时,您可能还需要为每个Ubuntu版本提供不同的分支。