Using a functional distro (such as Guix, Nix) really reduces the amount of anxiety around "oh shit I gotta update all my computers asap due to the new security patches but what if something goes bad aaaaaaaahhhh"

@cwebber so, how does a functional distro deal with this? If something breaks, that means some of the software still has to stay on the vulnerable version, no?

@bugaevc Ever done an upgrade in a rush and something goes badly and your server is just hosed, and important packages are in an unusable state?

In Guix/Nix you can roll back of things go badly. And the upgrade is switched over atomically.

You can then also, in the worst case, just upgrade some packages and not others after you found out it didn't work.

You can also test the upgrade locally and "push" the upgrade from your workstation to your network of machines.

@cwebber ah, so you're mainly advocating for atomic (for easy rollback), and not for functional (everything pins its exact dependencies). That makes sense :)

@cwebber @bugaevc

So @johnburnham mentioned the other day how he recovered a broken NixOS system even after nix-collect-garbage the other day.

Not sure about the details, but would love to read about it, since I stopped using Nix during recent breaking changes spree (due to lack of time to keep up and poor migraiton guides).

I should really motivate myself to get back to it...

For me the most important thing, practically speaking, is that (breaking changes aside), Nix turns releases from an event to a workflow item.

And of course, theoretically, Nix is important because it just captures the notion of "what is a piece of a software" correctly for the first time in the history of the field.


@jonn @cwebber @bugaevc

Basically I ran into this issue after my system crashed mid rebuild:

The solution was to do

sudo nixos-rebuild switch -I

and use the nixpkgs tarball directly. Pretty cool that that's possible

Sign in to participate in the conversation

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.