3 ms·
TL;DR: check out Nix (https://nixos.org/nix/ https://nixos.org/nix/) To anyone interested in addressing dependency hell with as small a footprint as possible,
by ramblenode 10y ago
TL;DR: check out Nix (https://nixos.org/nix/ https://nixos.org/nix/)
To anyone interested in addressing dependency hell with as small a footprint as possible, I encourage you to check out Nix and NixOS. Flatpak, Docker, and Ubuntu Snappy all take a slightly different bite out of the problem but still rely on imperative provisioning of a stateful system, and this comes with costs in system size, system indeterminancy, or both. The Bundles and Runtimes in Flatpak are treated the same in Nix: a package's dependencies are specified in a configuration file, and these files are composable so that shared dependencies are not replicated (as they are in the container model) and the dependency footprint is minimized. A package exists in a directory identified by a cryptographic hash of its build input, so if the input (the package) ever changes then this change will be transparent to other packages, avoiding name conflicts and allowing multiple versions of an application to exist without breaking other applications that depend on them. This means sandboxing comes for free without any of the overhead of a container. The Nix package repo is pretty impressive given how small the mindshare is compared to dpkg, RPM, etc. I am frequently surprised at how many small and lesser used applications have been packaged.
- gkya 10y agoThere's also the GuixSD: http://www.gnu.org/software/guix/ http://www.gnu.org/software/guix/. Same thing with a touch of Lisp.
- zzzcpan 10y agoIs guix as rough on the edges as nix? I have nixos installed in qemu, but so far don't find the experience to be pleasant. The ideas are great though, definitely the direction to move for all package managers.
- gkya 10y agoI've no experience with Nix, but I tried guix package manager and it was fine. I didn't hit any edge cases, but I didn't dive deep. I tried installing GuixSD (the OS) too, but failed, and because I was in a hurry, couldn't investigate much. But I did hit a critical issue: scarse docs. It's nowhere near FreeBSD where docs indeed help you out without a google search.
- aidenn0 10y agoNixOS has gotten signigicantly less rough, though the documentation is still spotty. That being said, Nix as a userspace package manager is great, and I use it everywhere.
- digi_owl 10y agoThere is also Gobolinux. Originally started as a way to manage user compiled programs in a students home dir on the university server. There is also the GNU utility Stow that do much the same by wrapping the install step of a compile.