In other words, the old adage still rings true. The beauty of Nix is that you can do anything. The ugliness of nix is that you can do anything
In other words, the old adage still rings true. The beauty of Nix is that you can do anything. The ugliness of nix is that you can do anything
Everything is a battle and nix battle is bit less hopeless than the imperative distro battle, but again, nix is bad but noone wants to build a better thingy.
I've seen countless attempts and I'm trying to make my own build system (not targeting linux distros though). The problem is extremely hard. Essentially you have to build a general purpose PL which is better (more introspectable/debuggable/extensible) than other GPPLs.
It turned out to be ansible... which is a pure python tool. Beats me.
There's also some cases where it wants to build Android Studio from source. I've just removed it and now run it in a VM.
I'm sure I'm doing it wrong, and I'm sure nixos-rebuild has a reason to build things from source, and maybe I'm not RTFMing hard enough. But good god, I just need my system to update.
I guess our system's nixpkgs moves forward while the nixpkgs in our project flake.nix stays the same. So eventually the nixpkgs of the project is garbage collected, because it isn't pinned by the system, and it needs to redownload and rebuild?
I don't know.
I try to `nix flake update` my system configuration every 2-3 months.
Arguably, running Arch and not updating frequently is a pain, too.
You should manually create a garbage collection root (that pesky 'result' symlink, --out-link)
There are introspection tools for that.
> Build from source
That's not an issue unless you stay on master or use config flags (there is just a handful of them, but they are imortant, eg cudaSupport=true can easily give you 5-6 hours of build time, rocmSupport can easily give you a couple of days)
You can use hydra to observe the ebb and flow of broken packages getting fixed and pick good git hashes to pin to. Once I figured that out I was very happy and had a good time glancing through hydra to monitor this. Now I can make informed decisions about what hash I build from and still keep unstable train, upgrading more often then I was before.