has anyone seen an explanation of nix flakes that explains the design goals of flakes & the fundamental problems they're trying to solve before diving into the syntax?

i'm looking for something like:

* the goal of flakes is to let people define packages in an uncoordinated way without a central repository
* the problem is that coordinating dependencies: you could easily end up with an explosion where you end up installing 1000 versions of libc
* the way flakes address that problem is ???

someone in the replies gave the analogy that nix flakes are like docker containers (and they use a lot of disk space for the same reasons that docker containers do: they pin versions of all their deps) but with the advantage that:

* they run natively (no VM on mac)
* different flakes can share dependencies sometimes
* there’s a lot more structure

the comparison to containers makes it SO much clearer to me

Follow

@b0rk

Note that this breaks down somewhat for flakes that provide something other than a package or a system configuration (a module, or an overlay, or a flake template).

Sign in to participate in the conversation
CleverLibre Social

CleverLibre Social is an inclusive social instance for open discussion, learning, and community.
All cultures welcome.
Hate speech and harassment strictly forbidden.