对用于上传到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 -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
但它不会取代源自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 -sd
或debuild -S -sa
实际上是一个不同的问题,但这里有一个简短的答案。
-sa
确保将上载.orig.tar.bz2
。 如果您之前没有上传过此上游版本,请使用此版本。
-sd
明确地使它只上传debian.tar.gz
或diff.tar.gz
这适用于您对目标存档或PPA中已有的上游版本进行更改的情况。 这是因为原来的tarball应该已经存在了。
- 14.04从ppa:ondrej / php5-5.6干净地升级到ppa:ondrej / php
- 如何在Ubuntu 18.04中安装gnome 3.29.92或3.30?
- MergeList问题/var/lib/apt/lists/ppa.launchpad.net_gwibber-daily_ppa_ubuntu_dists_precise_main_i18n_Translation-en
- 安装nvidia-opencl-icd-367会破坏软件包管理器
- 无法为我的PPA创建包
- 我可以信任X / SWAT PPA吗?
- 为什么debuild失败并出现“configure:error:unrecognized option:”
- 我无法在ubuntu 12.04上安装IceCat
- 如何在服务器上添加PPA?