This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new Linux.com!

Linux.com

The major problem is capturing dependencies, software needs to work together

Posted by: Anonymous [ip: 98.232.31.218] on December 24, 2008 12:35 AM
Nix sounds interesting, but the really hard work is getting a large number of package maintainers to work together to make software follow rules so it can inter-operate. Debian's breakthrough was its policy that lays out rules that software packages (and its community of package maintainers) should follow. A really nice thing that apt does is support disjunctive dependency rules and the idea of virtual packages.

What is important for installing packages is capturing dependencies, satisfying them, and idempotency in the installation scripts. I don't want to have to find out myself that such and such a library is incompatible with firefox, nor do I want to have 400 slightly different versions of glibc installed on my system. What I want is Debian/testing, that is packages that have gone for two weeks without anyone filing major bugs against them and a consistent set of packages that work together.

Sure Debian could be better, but I think it's mostly about changing the policy document and improving the package building tools so that for the 90% case the tools just do the right thing for you. The thing that I don't like at present is that software starts when you install it and there's no way to turn that off. That makes doing installs into chroots to be later run on virtual machines difficult. It's not so easily solved.

The other thing in Debian is there isn't an easy way to create packages that do configuration for you. Lighttpd for instance gives you a vanilla install, but it would be nice to have a package that configures lighttpd in a particular way for you, e.g. sets it up users with home directories and installs a wiki or some such. Some thought is needed to setup packages to support plugin packages well.

#

Return to Nix fixes dependency hell on all Linux distributions