leg*_*s2k 6 launchpad packaging ppa
我有一个名为Artha的包,我将它作为 x86 和 x86_64 架构的源代码和(deb)二进制文件分发,即我有制作 deb 文件的经验。我收到了很多关于设置 PPA 的请求。我想我会为即将发布的版本做这件事。Ubuntu 存储库中的 Artha 版本为 1.0.2,我正在尝试为 Artha 1.0.3 创建 PPA。
我阅读了Launchpad 的Personal Package Archive文档,现在已经设置了 PPA,但是这个版本控制页面说对于已经在 Ubuntu 存储库中的像 Artha 这样的包,命名artha-1.0.2-1ubuntu1为 PPA 版本应该是artha-1.0.3-1ubuntu1ppa1,这样当 Ubuntu 的存储库更新到 1.0.3 时Artha,它取代了我的 PPA 包。
当我通常制作我的 .deb 包时,我会得到这些文件
以及 i386 的等价物。这个关于上传到 PPA 的页面说文件 .dsc、.changes 和 .debian.tar.gz 将被上传。
这是我的困惑。我如何使这些文件具有上述版本?即带有“ppa”后缀?当然,我觉得手动重命名 Artha 的源包提取目录似乎不是正确的方法。
我还应该debuild -S -sd还是debuild -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
Run Code Online (Sandbox Code Playgroud)
但它不会取代源自 Debian 并带有 Ubuntu 更改的版本,即 1.0.3-1ubuntu1
$ dpkg --compare-versions 1.0.3-1 le 1.0.3-1ubuntu1 || echo "False"
$
Run Code Online (Sandbox Code Playgroud)
tilda ( ~) 字符在版本号中具有特殊含义。例如:
$ dpkg --compare-versions 1.0.3-1 le 1.0.3-1~ppa1 || echo "False"
False
Run Code Online (Sandbox Code Playgroud)
由于您的软件包不是源自 Debian,因此我使用了这样的版本号,1.0.3-0~ppa1这保证它小于直接从 Debian 同步或在 Ubuntu 中引入的版本,
因此,您的更改日志应如下所示:
artha (1.0.3-0~ppa1) quantal; urgency=low
* New upstream release.
-- Your Name <foo@bar.com> Sun, 07 Oct 2012 13:06:56 -0400
Run Code Online (Sandbox Code Playgroud)
是否使用debuild -S -sd或debuild -S -sa确实是一个不同的问题,但这里有一个简短的答案。
-sa确保.orig.tar.bz2将被上传。如果您之前没有上传过这个上游版本,请使用这个。
-sd明确规定只上传debian.tar.gz或diff.tar.gz。这适用于当您对目标存档或 PPA 中已经可用的上游版本进行更改时。这是因为原始 tarball 应该已经存在。