Using a long term release of Ubuntu, such as Xenial, means that you will find times when you want to compile something which requires a later version of something, typically a library. And when you search the official Ubuntu backports, you've drawn a blank.
Provided a later version of the package exists in any Ubuntu release, the process of making a backport is surprisingly easy. The following instructions are based on those here, but I've added notes based on my experience of backporting
libuv1 to Xenial.
To begin, you will need the following:
- A login for Launchpad.
- A Launchpad PPA. I've created a personal PPA specifically for backports.
- A Xenial build host, with the following packages installed:
One (or more) OpenPGP keys registered with Launchpad for use signing packages. Launchpad has instructions on how to go about this if you haven't already.
- A sufficiently later version of the package from any Ubuntu distribution. Check for these at packages.ubuntu.com. You need to find the name of the source package. In my case, it's
libuv1, and version 1.11.0 is available in
Now we're ready to start. On your Xenial host, run
backportpackage. I ran the following:
You can use the
-s option to specify the release from which you want the package to be obtained. If omitted, the most recent release is used, which is just fine with me.
This process will download the source package, apply a backport change, and sign it (so you'll have to type your GPG key passphrase a couple of times) and upload it to the incoming queue on your PPA. Wait a while, and Launchpad will build packages for you.
Launchpad will even show you the
apt command to use to add your backports repository to you system. Check the page for your backports PPA.
And that's it. Admit it. It's easier than you thought, eh?