1

I'd like to create my own repository for personal use across a number of machines. Packages will be signed as usual and some of the packaged software will be the same as provided by the official Debian and Ubuntu repositories, but (usually) newer - but not always, sometimes it will be the same.

Again, my repository will contain only a subset of the packages available in the official repositories.

Which method is easier to maintain if this is a personal repository:

  • fake the version number of the packages to be always x+100 or similar, where x would be the major version of the original upstream software
  • pin it using APT pinning

APT pinning is still a somewhat arcane concept to me. I have used it, but it also led to some unusual and unwanted problems in the past.

The idea is that my own repository takes precedence for packages available in the official and my repository alike.

2

Which method is easier to maintain if this is a personal repository:

fake the version number of the packages to be always x+100 or similar, where x would be the major version of the original upstream software pin it using APT pinning

Neither. There are a bunch of techniques you could use.

First, read 5.6.12 in Control files and their fields in the Debian Policy Manual.

1) If the version is newer, you don't need to do anything.

2) If the version is the same, you could change the Debian revision number. This appears prefixed by a dash in the package version. So, for example, suppose the package version in question (for both your package and the official package) is 1.0.1-10. Then you could change e.g. 1.0.1-10 to 1.0.1-11. Or you could do something like 1.0.1-10.yournamehere. Or you could go with 1.0.1-100 As long as your Debian revision number (the string after -) is later in directory ordering than the official Debian revision number, you are good.

3) If you want to be extra sure, you could use an epoch. The casual use of epochs is generally frowned on by Debian, but for personal packages it is Ok.

So, for example, you can do 1:1.0.1-10, and your version will take precedence over every package version without an epoch. Most of the time Debian packages don't have epochs, and when they do, it is a sign that something went wrong during the lifetime of the package.

  • thanks for answering. You miss the point in your second point if the upstream package gets updated before I get to update mine, it would suddenly take precedence. So the Debian revision number is not a good way. The first one is what I already implied in my question. The epoch is likely the best solution, so thanks for bringing that up. I'll check it out and accept it if it works out. For now +1. – 0xC0000022L Jul 16 '14 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.