4 ms·
> In the end, I really think Nix and NixOS are very strong tools for achieving reliable and reproducible system configurations and package management. Unfortuna
by aquova 2y ago
> In the end, I really think Nix and NixOS are very strong tools for achieving reliable and reproducible system configurations and package management. Unfortunately, though, I don’t think the benefits I’ve gotten in this one month of using NixOS so far justified the cost I’ve initially spent and continue to spend learning Nix and NixOS.
This largely reflects my experience with NixOS as well. I installed it for a few months on my laptop (on two separate occasions) and there are parts of the OS I love. Being able to simply define your packages and user setup in a single configuration file is incredible, and even now if I wanted to switch back to Nix, I could dig up my configuration.nix and pick up where I left off. Gone too are the piles of mysterious packages installed on my system but I can't recall why they're there or if I still need them.
Unfortunately, once you start stepping off the beaten path, Nix often became a source of frustration. If there's a well working package available in its repositories, great. If not I found creating my own Nix packages to be an experience of arcane incantations, even for the simplest things. Compare this to writing Arch AUR PKGBUILDs, which are simple, glorified shell scripts, and it quickly led to me growing frustrated with the OS.
I think what eventually did me in was trying to get Neovim LSPs installed correctly. For some reason I never really understood, where ever my Nvim plugin was installing them was certainly not where Nix wanted them, and I never resolved the issue. Things like this eventually drove me back to the comforts of Arch, although every once in a while I look back over and wonder what could've been. I think it's the only distro I've tried in recent years that really tempted me to switch permanently.
The ideas of NixOS are fascinating, and I really think it can create a new paradigm in the Linux space. However, I'm unsure whether it'll be Nix itself that really gets there.
- UI_at_80x24 2y agoMy experiences with NixOS almost exactly mirror yours. I like the concept to a degree but find the implementation flawed. If the project was more cohesive and unified (i.e. OpenBSD); then all the edge cases wouldn't combine to make it less then the sum of it's parts. I love the idea that every configuration could be treated like a cooking recipe. Here's a list of all the ingredients, this is how I want them combined; and poof it's 100% repeatable.
- alberth 2y agoThis is describing the broader difference between the BSDs (kernel + userland) vs Linux (only kernel). With that being said, I’d love it if a NixOS like variant came to a BSD.
- yjftsjthsd-h 2y ago> With that being said, I’d love it if a NixOS like variant came to a BSD. https://github.com/nixos-bsd/nixbsd https://github.com/nixos-bsd/nixbsd exists, though I've not tried it
- steinuil 2y agoI don't think the benefits of defining your system config in this way are immediately visible after one month. I kind of loathed reinstalling Linux before NixOS because I knew I'd have to spend a lot of time remembering how to reinstall and configure my desktop environment, reconfiguring sshd, fixing font rendering and setting a fallback I liked, reinstalling all my terminal utilities and copying their config files over, setting caps lock to esc, and all those little changes I made to my previous installation that I'd inevitably forgot to record. For servers that's even more relevant: I usually logged into my home raspberry pi every once in a while because I needed to fix something and I didn't even know what services were running on it! With NixOS it's all comparatively simple: I switched my gaming PC to NixOS a few months ago and while I had to reconfigure some things like display settings, everything else just immediately worked exactly the same as on my laptop after installing. I set up nix-darwin on my work macbook and share all my dev environment's configuration with my other computers. Now if I change some Helix settings on the macbook, I just have to commit them to my flake (which is just a git repo) and to get those changes on my desktop as well I just have to pull and rebuild. If I want to install some new service on my home server I just open the relevant configuration.nix file in my config, enable an option, build it locally to check that everything's working, and push the changes to my server. I don't ever feel the need to do a clean reinstall of my system because everything is already as clean as can be, and if I really wanted to it'd just be a matter of backing up /var and /home, putting the nixos installer on a usb stick, and running nixos-rebuild from there. I think the benefits of NixOS come into play months down the line, when a problem comes up and all the specific knowledge about what you did with your setup has faded from memory, but all the operational knowledge on how to use Nix is still there. Edit: I'd recommend trying out NixOS a server or VPS and installing Nix with home-manager on your usual distro for a while. That might give you a taste of what you can do with NixOS without having to fully commit to having it as your main OS and doing everything the "nix way".
- aquova 2y agoI haven't tried Nix on a server, but it has tempted me for the reasons you've described above. I frankly don't recall many of the configuration steps I made ages ago, and having a single configuration to handle the ports and services seems like it could be a great benefit. I'll need to try it out someday, but as you mentioned, I'm not in the habit of reinstalling servers unless I really have to haha.
- LorenzoGood 2y agoI eventually figured out how to configure neovim by just using nix to provide the lsp packages: https://github.com/foehammer127/machines/tree/main/users%2Ffoehammer%2Fnvim https://github.com/foehammer127/machines/tree/main/users%2Ff....