对用于上传到PPA的包进行版本控制

我有一个名为Artha的包,我将其作为x86和x86_64架构的源和(deb)二进制文件分发,即我有制作deb文件的经验。 我收到了很多关于建立PPA的请求。 我以为我会为即将发布的版本做这件事。 Ubuntu存储库中的Artha版本为1.0.2,我正在尝试为Artha 1.0.3创建PPA。

我阅读了Launchpad的Personal Package Archive文档 ,现在已经设置了PPA,但是关于版本控制的这个页面说明对于像Artha这样的包已经在Ubuntu的存储库中,名为artha-1.0.2-1ubuntu1 ,PPA版本应该是artha-1.0.3-1ubuntu1ppa1 ,这样当Ubuntu的repos更新到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 -sddebuild -S -sa ? Launchpad页面说现有包的替代版本应该使用前者。 这对我来说听起来很模糊。 这是什么意思? 更新版本是否算作替代版本?

有很多关于设置PPA的详细页面。 但是他们只需要设置一次,而PPA都是为了更快地提供特定包的更新,可维护性非常重要,如果有人能指出我这样一个谈论更新等的文档,我会很高兴。即关于初始上传后PPA发生的事情。

生成的软件包的版本来自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" $ 

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

 $ 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  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应该已经存在了。