this post was submitted on 02 May 2024
60 points (81.2% liked)
Programming
17405 readers
186 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Didn't really look into NixOS so only learned that it is an immutable OS after reading your article.
I once tried Fedora Sericea. Ended up having many Toolboxes (like Distrobox) with libraries and tools for development, but only a couple of Flatpaks.
I think the ideal user for immutable OS will be someone who want to use computer like a smartphone, just install apps (as Flatpaks) and let the OS do its update things.
NixOS is a reproducible OS. I wouldn't call it immutable.
It's not really fully reproducible either.
Isn't it fully reproducible with flakes?
Nope, nix doesn't ensure or require that the builds are deterministic. It's not any better in that regard than other package managers.
Pin package version and --pure?
That should already allow it to be ahead of other PMs.
A package is reproducible if you use the same inputs, run the build, and get the same outputs.
The issue is that the build can produce different outputs given the same inputs. So you need to modify the build or patch the outputs. This is something that is being worked on by most distributions: https://reproducible-builds.org/who/projects/
NixOS is not special in that regard nor are all NixOS packages reproducible.
Nixos is immutable to force system configuration through the declarative nix configs/build system not to limit tinkering.