For example, one in which packages do not conflict because they are installed in a directory for each package, and there is an "alternatives" mechanism for any global choice.
For example, one in which packages do not conflict because they are installed in a directory for each package, and there is an "alternatives" mechanism for any global choice.
* http://cr.yp.to/slashpackage.html
* http://cr.yp.to/slashcommand.html
Their major problem was the idea that one had to register things with what was to most of the world just some bloke on another continent. But they had concepts like a hierarchical package naming scheme ("admin/", "mail/", &c.), self-contained build trees with versioned names, symbolic links to denote "currently selected version", and an "index"/"alternatives" directory full of symbolic links.
I'm one of the Guix hackers, and we're about to make a new release announcement today, so I encourage you to check it out: http://gnu.org/software/guix
Feature changes are ok on release upgrades.