4

We currently use Reprepro to provide in-house publishing of various proprietary packages (eg Security agents) which vendors only provide .deb download for rather than upstream repositories for direct consumption.

We are able to publish packages just fine, but only the latest version is retrievable via apt-cache madison somepackage

We'd like to essentially do what GitLab for example is able to do and make multiple versions available, like in this example:

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

I've read and re-read the reprepro manpage but it's not very easy to understand. All I know from reading the reprepro/apt mail lists about multiple-versioning is that in the last 3 or so years, they added the capability to reprepro, and that's all I've been able to find.

Thanks!

1 Answers1

6

This was fixed in a recent version of reprepro to add the functionality for multiple versions. It is now in the Debian repo and will make its way to the Ubuntu repositories eventually. You can use that package today (reprepro (5.4.1-1)) or compile the software to use multiple versions with the Limit and Archive arguments:

Limit

Limit the number of versions of a package per distribution, architecture, component, and type. The limit must be a number. If the number is positive, all old package version that exceed these limit will be removed or archived (see Archive option), when a new package version is added. If the number is zero or negative, all package version will be kept. By default only one package version will be kept.

Archive

Specify a codename which must be declared before (to avoid loops). When packages exceed the version count limit (specified in Limit), these packages will be moved to the specified distribution instead of being removed.

Jared
  • 254