3 ms·
Users seem to love it, but... Why should I use it? I have a number of personal machines, but I tend to mirror whatever I need to use at work; currently mostly
by w0m 3y ago
Users seem to love it, but... Why should I use it?
I have a number of personal machines, but I tend to mirror whatever I need to use at work; currently mostly Ubuntu.
Nix seems Great to help cleanup my ansible deployments, but it also seems problematic with the lack of LTS releases to where I couldn't potentially roll out at work.
- flkiwi 3y agoSo, it took me an inordinate amount of effort to get to this point, but I find managing my nixos laptop to be idiotically easy now. And, to be clear, I'm not a developer. I just want an easy to use config that I can port over to a new laptop when the time is right (and maybe port a similar config over to my desktop as well, once I get around to installing NixOS). It's very weird, because I went from "WHY IN GOD'S NAME WOULD ANYONE WANT THIS?" to "my life is now measurably better" over the span of about 48 hours, and I have no idea what clicked. Something about adding flakes to the mix (NixOS + HM + flakes) broke the logjam. Or maybe it was simply how damned useful this config was to learn from: https://github.com/Misterio77/nix-starter-configs https://github.com/Misterio77/nix-starter-configs I went from that to a per-user, per-machine (with defaults for each) config in about an hour, and I haven't fundamentally changed that setup since. I have no idea why it's so compelling to me, but the combination of being able to tell the machine how to configure itself in one place with the ease of adding software ... I'm going to spin up a config this weekend and put it on my kid's laptop. There are other tools to accomplish the same thing, but NixOS is just so easy ... and poorly documented ... and has weird CLI conventions ... and doesn't do a super job of garbage control ... and
- rgoulter 3y agoThe Nix package manager is to apt what Emacs/Vim are to Notepad. Nix is a very powerful tool for dealing with packages. NixOS uses the package manager to manage the system configuration. With a declarative config, you mitigate the risk of "I made this change, forgot what that change was" (or otherwise systems becoming out of sync with each other). Ansible also solves this, sure. (Though, NixOS forces a system into a target state). Especially useful for working on more than one machine is the ability to conveniently install the same sets of packages everywhere. -- The standard thing to do is just run "install <package>" on each machine. Whereas with Nix, you can write a meta-package of packages you want, and either install this system-wide, or just have those packages added to PATH for when you need them. With Nix, you pay an upfront cost, so that later you don't have to pay the cost later. -- It's a similar trade-off to using Ansible, or using a dotfile manager across machines. Nix's reproducibility has benefits, too; before using Nix, when picking up a side project would often require that I'd update the code, as system package managers updated their package versions. -- With Nix, it's easy to retain references to old versions, and possible to have both old and latest versions of a package available on the same system.