I know that keeping /home in different partitions will preserve my data.
But what about the user-specific configuration files? Are always forward-compatible? Are there other issues as well?
I know that keeping /home in different partitions will preserve my data.
But what about the user-specific configuration files? Are always forward-compatible? Are there other issues as well?
I'd like to add a me-too to Mike Arthur's answer. I've used a Linux desktop since 1997 and have migrated my home directory along the way. Most apps just work.
The only problems I've had was when I switched distributions. Upgrading from RedHat to newer RedHat or RedHat to Fedora or Fedora to newer Fedora is usually really easy. But when I switched from RedHat to Mandrake (now Mandriva) and Mandrake to Fedora it was not a pretty sight. Mandrake and Fedora both used a customized KDE directory structure that was incompatible with each other. As a consequence at that time I deleted most of my .kde directory to recreate the settings. But since then I've not really had problems.
In any case, you can always just erase whatever's in your home directory that you don't want after a system update. I find it extremely convenient that my data is separate from my programs. Even if you have to blow away your whole home directory every two years, as a Fedora user that would save me about 2-3 backup-restore cycles (Fedora updates every 6 months).
You can also set up a directory for use with programs. I typically have /usr/local as a separate partition. I install anything I compile from scratch there. This doesn't work as flawlessly as in the data case because many times the distros are not binary compatible with each other. But at least your programs are all there and you can assess them as needed.
It's mostly up to the individual apps to upgrade their per-user config files. Upgrading a server is mostly dependent upon the distro you're using, and can range from having to pick out individual apps to rebuild and reinstall (a al Slackware) to simply telling the package manager to upgrade everything to the latest rev (a la Ubuntu, debian, and redhat variants)
I've been using Linux on desktop and server for about 5 years and had the same home directory for pretty much that whole time and had pretty much flawless upgrades of the dotfiles in my home directory.
Mike Arthur makes a good point that you can generally upgrade a system and let the files in
/home
directories take care of themselves (or rather, let their applications take care of them). But I personally like to wipe things and start clean every once in a while, since over time a lot of junk can accumulate in personal configuration files. In practice: I typically get a new computer every 3 years, and instead of copying over/home/*
in its entirety, I handpick certain bits and pieces of the config files and my data to copy over, so that I'm mostly starting fresh with a new environment. It's like a fabric softener for the computer ;-) (might have some slight performance benefits too)For config files:
Some GNU/Linux distributions have a system in place that will show you diff's as it updates the configuration files. (eg: gentoo has etc-update which will show you a diff and ask you to keep the old config, use the new one, or interactively merge the two.)
If you don't have such luxery with the distro you are using, make backups of /etc and the relevant config files, and diff/merge them manually. Always read the docs and manpages of whatever you're editing the config files for.