|
|
Subscribe / Log in / New account

Poettering: Revisiting how we put together Linux systems

Poettering: Revisiting how we put together Linux systems

Posted Sep 5, 2014 22:44 UTC (Fri) by thoughtpolice (subscriber, #87455)
In reply to: Poettering: Revisiting how we put together Linux systems by lottin
Parent article: Poettering: Revisiting how we put together Linux systems

If you're referring to Guix, then yes. Guix is based on the Nix package manager (instead using Guile as the configuration language, not the 'Nix language'), and they solve many of the same problems.

But rather than using subvolumes or btrfs, you instead calculate hashes of system dependencies (roughly speaking) based on their own input dependencies, and use that to separate things on the filesystem - this means 'firefox 29' and 'firefox 30' can coexist, because they have separate hashes, and are stored on the FS in separate locations.

The final 'system' is then 'built' using symlinks to these paths, as POSIX (IIRC) guarantees symlink renames are atomic on any filesystem. So the package manager is by design transactional on any filesystem. This means you can rollback any transaction like installing a package that might break.

It also means you can do things like take the 'closure' of a package (the package + the transitive closure of its dependencies) and ship them to other machines using SSH or whatnot.

The Guix developers are also working on a distro (I don't remember the name) based on Guix and the GNU Daemon Managing Daemon (dmd), an alternative to systemd.

In contrast, Nix has NixOS, built on the original Nix package manager. NixOS uses systemd for its init system (and used upstart before).

(For full disclosure, I'm a NixOS developer as well.)


to post comments


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds