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
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.