Thursday, February 12, 2009

Package pinning in Ubuntu.

If you try to mix packages of different releases in Ubuntu, you will soon find out that this is not as easy as it seems. The problem is, other than in plain Debian in Ubuntu the backports, security fixes and updates all come with another release tag. I.e., if you want to get package foo from jaunty, but everything else from intrepid - including all the goodies, you get a working pinning setup by creating /etc/apt/preferences like this:

Package: foo
Pin: release a=jaunty
Pin-Priority: 991

Package: *
Pin: release a=intrepid
Pin-Priority: 990

Package: *
Pin: release a=intrepid-updates
Pin-Priority: 990

Package: *
Pin: release a=intrepid-security
Pin-Priority: 990

Package: *
Pin: release a=intrepid-backports
Pin-Priority: 990

Further reading