对要上传到 PPA 的软件包进行版本控制

对要上传到 PPA 的软件包进行版本控制

我有一个名为阿尔莎我将其作为源代码和 (deb) 二进制文件分发给 x86 和 x86_64 架构,也就是说,我有制作 deb 文件的经验。我收到了不少设置 PPA 的请求。我想我会在即将发布的版本中这样做。Ubuntu 存储库中的 Artha 是 1.0.2 版本,我正在尝试为 Artha 1.0.3 创建 PPA。

我读Launchpad 的Personal Package Archive文档,并且 PPA 现已建立,但是有关版本控制的此页面说对于像 Artha 这样已经在 Ubuntu 仓库中的包,其artha-1.0.2-1ubuntu1PPA 版本应该为artha-1.0.3-1ubuntu1ppa1,这样当 Ubuntu 仓库更新到 Artha 1.0.3 时,它会取代我的 PPA 包。

当我制作 .deb 包时,我通常会得到这些文件

  • artha_1.0.3.orig.tar.bz2
  • artha_1.0.3-1.debian.tar.gz
  • artha_1.0.3-1.dsc
  • artha_1.0.3-1_amd64.build
  • artha_1.0.3-1_amd64.changes
  • artha_1.0.3-1_amd64.deb

以及它们的 i386 对应版本。这一页上传到 PPA 时显示将上传文件 .dsc、.changes 和 .debian.tar.gz。

我感到困惑的是。我该如何让这些文件具有上述版本?即带有“ppa”后缀?当然,我觉得手动重命名 Artha 的源包解压目录似乎不是正确的方法。

另外我应该debuild -S -sd还是debuild -S -sa?Launchpad 页面说现有软件包的替代版本应该使用前者。这对我来说听起来很含糊。这是什么意思?更新版本算作替代版本吗?

关于如何设置 PPA 有很多详细的页面。但是它们只能设置一次,而 PPA 的目的在于更快地更新特定软件包,并且可维护性非常重要,如果有人能给我指出这样一份文档,其中讨论了如何进行更新等,即关于首次上传后 PPA 发生的事情,我会非常高兴。

答案1

结果包的版本来自于提供的版本号,debian/changelog因此您必须在那里拥有适当的版本。

1.0.3-1将取代 Ubuntu 仅上传版本1.0.3-0ubuntu1

$ dpkg --compare-versions 1.0.3-1 le 1.0.3-0ubuntu1 || echo "False"
False

但它不会取代源自 Debian 的带有 Ubuntu 更改的版本,即1.0.3-1ubuntu1

$ dpkg --compare-versions 1.0.3-1 le 1.0.3-1ubuntu1 || echo "False"
$

波浪号 ( ~) 字符在版本号中具有特殊含义。例如:

$ dpkg --compare-versions 1.0.3-1 le 1.0.3-1~ppa1 || echo "False"
False

由于你的软件包不是来自 Debian,我使用这样的版本号,1.0.3-0~ppa1这保证了它低于直接从 Debian 同步的版本或在 Ubuntu 中引入的版本,

因此你的更改日志看起来应该是这样的:

artha (1.0.3-0~ppa1) quantal; urgency=low

  * New upstream release.

 -- Your Name <[email protected]>  Sun, 07 Oct 2012 13:06:56 -0400

是否使用debuild -S -sddebuild -S -sa确实是一个不同的问题,但这里有一个简短的答案。

-sa确保将.orig.tar.bz2上传。如果您之前没有上传过此上游版本,请使用此。

-sd明确地规定只上传debian.tar.gzdiff.tar.gz。这适用于对目标存档或 PPA 中已有的上游版本进行更改的情况。这是因为原始 tarball 应该已经存在。

相关内容