Why Nix and NixOS are the future of software deployment
-
6 mins read
Nix
The traditional Linux package management workflow is great in theory: you are able to install a package from a centralized source without annoying installers and with automatic dependency resolution.
That should be enough, right?
No, it’s not.
What happens if two packages need two different versions of the same library?
[root@arch test]# pacman -Syu
:: Starting full system upgrade...
:: Replace dbus-python with extra/python-dbus? [Y/n]
resolving dependencies...
looking for conflicting packages...
:: ffmpeg-2:7.0.1-1 and ffmpeg-obs-6.1.1-10 are in conflict. Remove ffmpeg-obs? [y/N]
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: ffmpeg-2:7.0.1-1 and ffmpeg-obs-6.1.1-10 are in conflicts
These problems with the traditional approach aren’t new and here are a few that I consider very important: