我想添加最新的美食从 Debian sid 包到我们的球队的 PPA因此,想要运行最新版本的 Gourmet 的 Ubuntu 用户可以将该 PPA 添加到他们的软件源中。(从依赖关系来看,这应该不是什么大问题,因为几乎所有当前依赖关系都已在所有当前支持的 Ubuntu 版本中可用。)
我已经下载了*.dsc
文件、debian 和原始 tarball,甚至发现我可以使用这软件包source.changes
文件。我还下载了 Debian 维护者的公钥,以便dput
可以验证软件包。然后我尝试使用将软件包上传到我们的 PPA dput ppa:~gourmet/ppa gourmet_0.17.3-1_source.changes
(我也尝试过不使用波浪号)。这似乎成功了,但我没有收到确认电子邮件,现在我们的 PPA 上没有显示任何软件包电力供应协议,这让我想到相信该软件包被拒绝,因为 Debian 维护者的密钥显然不在我们团队成员的密钥之中。
那么,将软件包从 Debian (sid) “复制” 到 Launchpad PPA 的最简单方法是什么?我是否真的需要在本地重建整个软件包才能上传它?
答案1
你需要重建来源在上传之前在本地更新软件包,以便调整更改日志并重新生成更改文件。尽管反向移植软件包是一项非常常见的任务,但此操作已编写脚本。请查看backportpackage
命令ubuntu-开发工具包裹。
要从 Debian 反向移植软件包,只需提供目标发行版系列、PPA 和软件包的 dsc 文件:
backportpackage -d trusty -u ppa:gourmet/ppa http://ftp.de.debian.org/debian/pool/main/g/gourmet/gourmet_0.17.3-1.dsc
将软件包从一个 Ubuntu 版本反向移植到另一个版本甚至更简单,因为您不需要找到 dsc 文件。假设我们想从 utopic 反向移植到 trusty:
backportpackage -s utopic -d trusty -u ppa:gourmet/ppa gourmet
答案2
有几种方法可以做到这一点。
当我为 Rhythmbox 执行此操作时,我遵循了以下步骤:
a. 获取源文件和 debian 文件
b. 解压源文件(.orig.tar.xz)
c. 将源文件夹重命名为rhythmbox-3.0.3
c. 解压 debian 文件 (.debian.tar.xz)
d. 将 debian 文件夹移至源目录下
e. dch -i
更改变更日志文件
f. 将“不稳定”软件包名称更改为 ubuntu 目标的名称 - 这里我使用了精确的适用于 12.04。请根据您的应用更改版本。此处 rhythmbox 为 3.0.3 - 所以我刚刚添加了-1~ppafossfreedom
rhythmbox (3.0.3-1~ppafossfreedom) precise; urgency=low
* rebuild
-- fossfreedom <[email protected]> Thur, 07 Jun 2012 13:19:18 +0100
g.创建一个新的源包:dh_build --createorig
h. 使用你的密钥构建源代码:你的密钥在debuild -S -k0xABCDEFG
哪里ABCDEFG
i. 上传要构建的软件包:
cd ..
dput ppa:fossfreedom/rhythmbox rhythmbox_3.0.3-1_sources.changes