Hacker News new | past | comments | ask | show | jobs | submit login

> I've been looking for a simple package management solution that doesn't interfere with my OS and simply puts all packages in /some_location/package/version, and that allows me to install packages on remote machines together with the other packages they depend on.

Almost anything that achieves this will necessarily be as "overengineered" as Nix. What you're asking as it turns out is not a simple problem at all, and a "simple" approach to it will end up rather fragile.




Not really. Coming up with syntax to describe dependencies and code that computes the indirect dependencies of a package and rsyncs all packages (which are all exclusive directories) to a given remote host took a few hours.

I still don't understand why you need chroot and all other horrors. Just use RPATH to ensure you link to the right version of the dependencies, no magic or pseudo-containers needed.


The rpath trick you mention is how Nix actually works, but the difficulty is in convincing build routines to obey it. I'd estimate less than a quarter of the packages in nixpkgs have "well-behaved" build routines where it's just a matter of telling the build system where to look for things. Ensuring that you're using all the correct corresponding versions of libraries, headers and auxiliary files for all dependencies requires some build environment trickery, unless you want to maintain extensive patches for half of your packages.

It also means we can allow most build systems to "auto-discover" their dependencies rather than extensively coach them with explicit locations of everything (i.e. tens of configure --with-foo=... flags)




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: