启动台:命令行界面“复制软件包”

我正在使用Launchpad上传一个.dsc文件,一个debian.tar.gz文件和一个.orig.tar.xz文件。orig存档包含了i386和amd64文件,并且我使用debian/rules来构建不同架构的软件包。但是它只能在Trusty系列上构建。我想使用“复制软件包”功能,但我希望它能自动化。
目前,我必须连接到Launchpad,点击“查看软件包详细信息”,点击“复制软件包”,然后使用:
> Destination PPA:
> This PPA

> Destination series:
> Utopic

> Copy existing binaries

有没有一种方法可以自动化所有这些“将旧系列中的现有二进制文件复制到新系列中”的操作,或者通过CLI在脚本中使用它?谢谢。
潜在客户:
  • Q: 或许 ubuntu-archive-tools 可以帮我做到这一点,它似乎有一个复制软件包的 Python 脚本?

    A: 它不适用于这个: python copy-package -y -b --ppa-name=myname/myppa --to-ppa-name=myname/myppa -s trusty --to-suite=utopic -e versionofpackage

  • Q: 如果我将我的更改日志条目从 trusty ; urgency=low 改为 utopic trusty ; urgency=low,会有所改变吗?

    A: 这样不起作用: Unable to find distroseries: utopic trusty. Further error processing not possible because of a critical previous error.

  • Q: 构建 1 个 orig.tar.xz 和多个 .dsc & debian.tar.gz

    A: 我目前正在构建一个增加版本号的解决方案(即 mypackage-1.1.0-0trusty0mypackage-1.1.0-0utopic0),但这个解决方案可能不够好,因为我必须为每个版本重新上传 orig.tar.xz,而且在 PPA 中占用的空间是原来的两倍,因为构建的 .deb 被视为两个不同的软件包。


1就记录而言,如果您之前已经上传了orig.tar.xz,则无需重新上传。运行debuild -sd(或dpkg-build-package -sd)以生成一个不上传原始tarball的.changes文件。 - saiarcot895
第一种方法出了什么错误? - saiarcot895
感谢@saiarcot895的第一个提示,我会使用它!!第一种方法没有输出任何内容,我认为这是因为--to-suite不适用于"series",而是适用于其他东西。我不知道。它似乎起作用了,但我的PPA上没有任何变化。 - MrVaykadji
1--to-suite是用于系列的。我不会指定-e标志,因为默认情况下会选择最新版本。另外,尝试将--ppa-name=myname/myppa拆分为-p myname --ppa-name=myppa,因为--ppa-name只需要PPA的名称。此外,如果目标与源相同,您无需指定--to-* - saiarcot895
@saiarcot895:我无法让copy-package工作。我有授权令牌,我是PPA的所有者,但它不起作用。 - MrVaykadji
1个回答

copy-package对于这个很好,但是正确的现代调用应该是:

./copy-package --from=~myname/ubuntu/myppa --from-suite=trusty --to=~myname/ubuntu/myppa --to-suite=utopic -b -y packagename

(正如saiarcot895正确指出的那样,你需要将--ppa和--ppa-name分开,但这总是让人感到困惑,这也是我们添加统一的--from和--to选项来指定存档的原因之一。此外,你忽略了包名,这可能是你没有输出的原因;更近期的copy-package版本会检查这一点。)