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

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

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

目前我正在使用 Ubuntu 的 PPA 为当前发行版进行打包。

最后,我必须提供适用于以前的 ubuntu 版本的软件包。

我不确定如何实现这一点。

Ubuntu PPA 构建服务器如何工作 - 它是否仅查看最新更改日志条目(在 debian/changelog 文件中)中的分发字段来确定应为哪个分发构建包?

Debian 规范允许在发行版字段中添加多个发行版。但这似乎对我没有帮助。

一些 ubuntu 文档讨论将发行版名称编码到版本号中(在 debian changelog 文件中)。

但这在实践中如何运作?程序有了新版本,然后呢?我是否要为每个发行版添加一个新的变更日志条目,然后 PPA 构建服务器会在上传后自动为每个发行版构建新软件包?还是 PPA 构建服务器只查看第一个变更日志条目?

答案1

方法是上传每个 Ubuntu 系统都安装一次版本。

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

请记住,您的程序所依赖的软件包可能不会在所有版本的 Ubuntu 中提供相同的版本。

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

答案2

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

答案3

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

  • 1.0-0ubuntu1 是最终进入 Ubuntu 官方档案的软件包
  • 1.0-0ubuntu1~lucidppa1 是你在 lucid 的 PPA 中放入的软件包版本
  • 1.0-0ubuntu1~karmicppa1 是该软件包的 Karmic 版本

原因是版本字段中的 ~ 表示版本号“小于零”。因此,如果有人在 Karmic 上添加您的 PPA,他们将获得 ~karmicppa1 软件包。当他们升级到 Lucid(并重新添加您的 PPA)时,它将被替换为 Lucid PPA 软件包。如果您的软件包随后进入官方档案,则从您的 PPA 的过渡将顺利进行。

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

相关内容