We are running a production server based on Ubuntu 9.10 Karmic Koala, kernel is almost up-to-date (2.6.38.2-grsec-xxxx-grs-ipv6-64) but karmic package repository is now ridiculously outdated, eg. Nginx is 0.7.62 - really buggy - while latest stable is 1.0.x!
In addition, Karmic just reached its end of life.
This question: Best practices for keeping UNIX packages up to date? looks similar but actually only includes some suggestions about package managers; not at all what I need!
So the options that I see are:
- Get a new machine, install it from scratch, migrate
- Distribution upgrade
- Use a different repository (launchpad/ppa / backport / pinning)
- Build your own
The disadvantages of #1 are quite obvious.
I do not dare do a dist-upgrade path though, as downtime and possible catastrophic consequences are just impossible to predict for a production server, and currently am mostly re-building my own required packages. But I'm sure I might be missing some.
It is not really clear to me what the risks are (stability/compatibility) of using Ubuntu backports, in addition, nothing is officially provided for 9.10 anymore. Launchpad are individual-builds, similar question - how much better is this than compiling my own?
Building packages seems fine, but:
- Sometimes I have trouble reproducing the correct ./configure options in order to re-use my existing configuration files
- I am sure there are tons of packages and dependencies that are now pretty outdated and possible sources of bugs
Finally… what about "old" packages in a recent distribution? I guess there's no other way than re-building them myself? Is a combination of 2 and 4 finally the best path?
Is there any objective consensus on what is the best way to do this, or reasons why some of my options are fine/not fine?
If really there isn't, I will accept that the question gets closed before creating an endless thread!