I'm looking on how to setup a private apt repository (on 10.04 LTS) that can support multiple versions.
I understand that you cannot have multiple versions of a package installed on a server. This is a purely for a development environment where we want to be able to test multiple versions before releasing them to the production apt repository.
I know you can have multiple versions by putting the version number in the package name, however I want to achieve the opposite, support multiple versions of a same package name.
e.g. packagename_1.0_all.deb and packagename_2.0_all.deb rather than packagename-1.0_1.0_all.deb and packagename-2.0_2.0_all.deb
For those that are familiar with Puppet automated eployment – we can specify what version of a package we want on a server (with the ensure tag using the same package name).
I've tried Google's debmarshal described at http://wiki.debian.org/HowToSetupADebianRepository but could not get it to work due to a lack of documentation.
Best Answer
I needed a multi-versioned repo for the same reasons like you and this is what I ended up with:
Then create
update-repo.sh
that will update your repo with the packages' infoPlace your .deb files in /var/www/repo/binary and run update-repo.sh
On the rest of the machines:
etc etc...
The magic happens because of
-m
when running dpkg-scanpackages. Without-m
, only one version is listed in Packages.gzI haven't tried it but it should be trivial to do the same for separate sub-repos, like hbdgaf proposed.