In some particular scenarios, it is necessary to add several repositories on a Debian system. In this scenario I'm talking about Proxmox, a virtualization solution based on Debian Wheezy.
By default Proxmox installs its Enterprise repository in /etc/apt/sources.list.d/pve-enterprise.list:
deb https://enterprise.proxmox.com/debian wheezy pve-enterprise
However this repo is only accessible with a valid subscription. As an alternative, the community repository can be added and used:
deb http://download.proxmox.com/debian wheezy pve-no-subscription
Some packages in the Proxmox repository are far newer than on the official Debian repository.
As an example, the glusterfs packages have a big version difference:
- glusterfs-server (3.2.7-3+deb7u1) in the official Debian repository
- glusterfs-server (3.4.1-1) in the Proxmox repository
This causes apt-get install to fail because it doesn't know which version to install.
In such a situation it makes sense to set a preference on a repository over the others.
Such a preference can be set by setting different higher pin-priorities on the repositories in a preferences config file:
Pin: origin enterprise.proxmox.com
Pin: origin download.proxmox.com
Pin: origin security.debian.org
Pin: origin ftp.ch.debian.org
The content of the file is pretty much self-explaining. Each repository URL has its own Pin-Priority.
The higher the number, the higher is the priority.
It would also be possible to set the higher priority only for certain packages. In my example I have set the priorities for all packages (*).