如何在 Reprepro 中启用多个包版本的发布?

如何在 Reprepro 中启用多个包版本的发布?

我们目前使用 Reprepro 来提供各种专有软件包(例如安全代理)的内部发布,这些软件包供应商仅提供 .deb 下载,而不是供直接使用的上游存储库。

我们可以正常发布软件包,但只能通过以下方式获取最新版本apt-cache madison somepackage

我们想从本质上实现 GitLab 能够实现的功能,即提供多个版本,如下例所示:

apt-cache madison gitlab-ce | head
 gitlab-ce | 14.4.2-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu bionic/main amd64 Packages
 gitlab-ce | 14.4.1-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu bionic/main amd64 Packages
 gitlab-ce | 14.4.0-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu bionic/main amd64 Packages
 gitlab-ce | 14.3.4-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu bionic/main amd64 Packages

我反复阅读了 reprepro 的手册页,但不太容易理解。从阅读 reprepro/apt 邮件列表了解多版本控制后,我了解到,在过去 3 年左右的时间里,他们为 reprepro 添加了该功能,而这就是我所能找到的全部信息。

谢谢!

答案1

已修复在最新版本的 reprepro 中增加了多个版本的功能。现在它位于Debian 仓库最终将进入 Ubuntu 存储库。您现在可以使用该软件包( )或使用和参数reprepro (5.4.1-1)编译软件以使用多个版本:LimitArchive

限制

限制每个发行版、架构、组件和类型的软件包版本数量。限制必须为数字。如果数字为正数,则在添加新软件包版本时,所有超过这些限制的旧软件包版本都将被删除或存档(请参阅存档选项)。如果数字为零或负数,则将保留所有软件包版本。默认情况下,只会保留一个软件包版本。

档案

指定一个必须事先声明的代码名(以避免循环)。当软件包超出版本数量限制(在限制中指定)时,这些软件包将被移动到指定的发行版,而不是被删除。

相关内容