I’m an experienced Linux user (as in, Gentoo & Arch behind my belt) but I’ve never used NixOS and I’ve researched it some but I’m not sure if it’s worthwhile to try. It just seems so hard and alien. I need some reassuring info about how typical tasks are handled.
- There are flakes and channels(?). I don’t want to spend time learning both, so since flakes are better and more modern, can I just use them for everything? Is there a good beginner tutorial for “flaking” the whole system?
- NixOS has releases every 6 months, right? So every half year I can run a command and all packages upgrade? Is that the same when running on flakes? Or are some of them pinned and won’t upgrade automatically?
- So a flake is basically a package.lock file. Now suppose I want to update that single package without changing any other flakes. How do I bump all the deps’ versions automatically? On a system like Debian, packages are updated as a snapshot, so I don’t need to know that e.g. GIMP 3.00 required libfoo >= 1.47 while GIMP 3.10 requires libfoo >= 1.52. How does it happen with Nix?
- How are flakes’ dependencies deduped? For example, libfoo is required by 10 flakes, one of them has libfoo 1.23, another libfoo 1.22, another 1.24 etc. I’d like to bump the dep versions in all flakes to 1.24 so I can test and garbage-collect versions 1.22 and 1.23. Can this be done automatically?