Here is my attempt to solve seven years old infamous problem: https://bugs.archlinux.org/task/16702 Patch won't solve problem out of the box, a small changes in kernel PKGBUILD will be required, but only concerning install part. Idea behind patch is pretty simple: 1) Configure list of packages and number of old versions pacman should try to preserve. 2) When upgading to new version, keep old in place, if it has no file conflicts with new one, and mark it as `archived`, remove oldest `archived` version instead. Most of time pacman treats `archived` packages as if they aren't installed. For now it won't check package conflicts and dependencies, only file conflicts with newer versions. It's only an outline of full solution, proof of concept to illustrate the idea. I'd like to hear opinion of community whether this problem should be solved at all, or is it more like a feature of ArchLinux, and if it should, whether such approach suits ArchLinux's philosophy.