Live data from Hacker News

Nix-GUI: Make NixOS usable for non-technical users through settings / GUI

github.com

161–170 of 206 posts

Re: Nix-GUI: Make NixOS usable for non-technical users through settings / GUI

#161
post #156
post #154

Earlier quoted context omitted.

Home Manager always seems like a unnecessary layer though. Why is it needed if you already control everything with NixOS?

It's for the user packages. This way you can keep the system profile lean for fast updates of the kernel and such, and then update firefox and other things separately. With Guix they have had manifests for a while, which are integrated into Guix proper and are like the package half of Home Manager (not the config stuff). I only keep a handful of things installed as system packages, and then I have probably 100 or mor…

> This way you can keep the system profile lean for fast updates of the kernel and such, and then update firefox and other things separately

That makes a lot of sense. Right now a nixos-rebuild is really slow for me as I have a big configuration.nix file. I guess Home Manager could help in this case, will dig into it.

Re: Nix-GUI: Make NixOS usable for non-technical users through settings / GUI

#162
post #87

Earlier quoted context omitted.

Wait, isn't a point of NixOS is that your updates are guaranteed to be smooth? I haven't used it, but your story now worries me. I don't want to be back at "just reinstall the OS" days, even if configuration is portable.

> And it wouldn't upgrade to the latest version of NixOS because of some certificate issue This sounds like Lets Encrypt changing it's protocol. Nix itself doesn't give a shit about such things, but maybe some sort of script was supposed to double-check the cert on boot (just speculating). While NixOS can be reproduciable, whatever software Let's Encrypt runs is obviously outside the host's control, so perhaps "leap-…

I couldn't figure out what it was, but it was definitely a problem with NixOS itself, possibly with expired root certificates or something like that. The upgrade command couldn't connect to the nixos servers. I know there was at least one root certificate that expired in the past 3 years, so maybe I just caught a bad interval for not upgrading.

Re: Nix-GUI: Make NixOS usable for non-technical users through settings / GUI

#163
nix is awesome and would make a great addition to windows and mac as well, if we all standardize on something like this, we could have more reproducible computing environments across dev, prod, and fun. also improves security a lot due to software supply chain management w/ immutable builds, and could make rebuilds + updates far easier and faster

it's a bit esoteric though, the syntax and docs can both improve a lot.

my dream machine is qubes host running nixos guests but that's a lot to set up and learn!

Re: Nix-GUI: Make NixOS usable for non-technical users through settings / GUI

#164
post #87
post #47

Earlier quoted context omitted.

Crazy thing about NixOS is that it's so good, all the bad parts can be excused. I like to go on forums and complain about how the Nix configuration language is horrible, and there's not much documentation on how to get general things done. But that said, I'm still running NixOS on my servers. And no way that I'd ever go back to old fashioned provisioning scripts like Ansible. Just yesterday I had a problem upgrading…

Wait, isn't a point of NixOS is that your updates are guaranteed to be smooth? I haven't used it, but your story now worries me. I don't want to be back at "just reinstall the OS" days, even if configuration is portable.

On NixOS installing any package is the same as reinstalling the operating system. Reinstalling the operating system just took a minute longer because it had to do more downloading. (edit: in theory, I actually bet that the certificates sneakily leak mutable state into the system with the expiry process, i.e. I bet that if I reinstalled the same version of NixOS with the same configuration, I'd get an install that would actually be able to talk to the nixos package servers)

But you're right to be worried a little bit, and this is exactly why many people criticize NixOS. In theory it's the most perfect operating system, but in practice it's so complicated that when something's bugged it's really hard to figure out how to recover, and the documentation is not up to the task of educating you on what to do when things are wrong.

Also this situation was a bit special because it couldn't talk to the NixOS servers for upgrading (I presume due to an expired root certificate, but I couldn't figure it out), if it was any other problem, I could simply roll back the upgrade process (which would be instantaneous because it doesn't actually remove the old packages when you upgrade).

Re: Nix-GUI: Make NixOS usable for non-technical users through settings / GUI

#165
post #59
post #47

Earlier quoted context omitted.

Crazy thing about NixOS is that it's so good, all the bad parts can be excused. I like to go on forums and complain about how the Nix configuration language is horrible, and there's not much documentation on how to get general things done. But that said, I'm still running NixOS on my servers. And no way that I'd ever go back to old fashioned provisioning scripts like Ansible. Just yesterday I had a problem upgrading…

> Crazy thing about NixOS is that it's so good, all the bad parts can be excused. I like to go on forums and complain about how the Nix configuration language is horrible, and there's not much documentation on how to get general things done. I don't think it is fair to say that Nix as a programming language is horrible, IMO, as a DSL it is pretty good and fits the domain well. It is a strange language at first and it…

The Nix language is excellent imo

Better than so many I use professionally

Re: Nix-GUI: Make NixOS usable for non-technical users through settings / GUI

#166
post #144

Earlier quoted context omitted.

I think what the parent is alluding to is: What is the practical point of using Nix when similar outcomes can be reached with more mainstream solutions? In other words, suppose I want to deploy a web app that depends on Nginx, PHP, and PostgreSQL. I could: (a) Run all as docker-compose type solution (b) Run all as scripted Nix solution (c) Install packages manually on general purpose OS Lets ignore "c" for the moment…

I don't understand how you can use docker-compose, docker, Kubernetes or anything else to achieve the same thing as NixOS. NixOS gives you a fully reproducible personal computing system, from boot config, window manager, partitioning to applications, home directories and everything in between. What mainstream options are available for doing this? Guix could be one option, but it's not mainstream so I'm not sure what…

And why would someone want that? Sure it sounds theoretically nice, especially if I was still working in IT. But learning another system with a poor ui has a large cost for a theoretical benefit.

Re: Nix-GUI: Make NixOS usable for non-technical users through settings / GUI

#167
post #48

I think NixOS would benefit from easily accessible collection of opinionated modules/profiles/configurations with minimal set of options. Something like gnome-desktop / sway-desktop / etc. Gnome actually does pretty good job here. The point is: currently my NixOS and Home Manager configurations have over 2k LOC total. When you search for configurations on GitHub/Google you are likely to find complex ones. For example…

That's the goal of https://nix.dev, you can subscribe for future updates!

Re: Nix-GUI: Make NixOS usable for non-technical users through settings / GUI

#168

A lot of odd Nix hate in here, or at least extreme dislike. NixOS is so very usable. There are a lot of foot-guns but that's true of Linux systems. It takes some time to get comfortable with all the different ways to configure stuff. There's a new language, a new build system, a new Linux distribution. I've spent very little time relative to say, figuring out dpkg or systemd, or learning Bash or C or Perl, or learnin…

> A lot of odd Nix hate in here, or at least extreme dislike. I hate this expression. I'm a nix user. But if you can't understand why people dislike it... you're the one that's odd and out of touch. If you want people to adopt nix the worst way to convince them is to call their behavior odd when it isn't. The reason why adoption of nix is so low is trivial. High initial learning curve and it's so different from every…

> But if you can't understand why people dislike it... you're the one that's odd and out of touch.

Oh I know by now why people dislike it. I've worked for years with it with engineers of all stripes. It's always big heads and bad attitudes and never Nix itself.

And Ubuntu isn't a turnkey solution to what people use Nix for lol.

Re: Nix-GUI: Make NixOS usable for non-technical users through settings / GUI

#169
post #144

Earlier quoted context omitted.

I think what the parent is alluding to is: What is the practical point of using Nix when similar outcomes can be reached with more mainstream solutions? In other words, suppose I want to deploy a web app that depends on Nginx, PHP, and PostgreSQL. I could: (a) Run all as docker-compose type solution (b) Run all as scripted Nix solution (c) Install packages manually on general purpose OS Lets ignore "c" for the moment…

I don't understand how you can use docker-compose, docker, Kubernetes or anything else to achieve the same thing as NixOS. NixOS gives you a fully reproducible personal computing system, from boot config, window manager, partitioning to applications, home directories and everything in between. What mainstream options are available for doing this? Guix could be one option, but it's not mainstream so I'm not sure what…

Eh you can do the same thing (or close enough) with a bash install script on a "stock" linux system and then a docker set up with the applications that that you want. Or with ansible. it really depends on the end goal. Not everyone needs every single bit to be the same. Or you can just image a drive. It depends on the end goal and often multiple solutions will get you there.

Re: Nix-GUI: Make NixOS usable for non-technical users through settings / GUI

#170

Earlier quoted context omitted.

Good for you. That means you haven't encountered a problem that Nix is designed to solve. (Nix is very much a "worse is better" tool in the tradition of hacking something together out of existing tools until you a minimal working product. It's designed to solve a particular class of problems quickly and painlessly, even if the end result isn't "clean" or "elegant". The "clean" and "elegant" solutions to these problem…

I believe I have a problem Nix is designed to solve (reproducible builds) all the time. However, one can work around it with enough pain and suffering on Ubuntu (I can write a shell script to download and build the specific GCC, GHC, rustc and other packages I need and build from source where required), and still find that much easier to distribute to my colleagues, rather than having to teach them to use Nix. What e…

Nix allows you to abstract over your shell scripts. Like pack those fuckers in a derivation and now people can install them with Nix in a uniform way (and compose them with their own packages) instead of manually shell scripting.

You can even use a single overlay to add a namespace to your company's nixpkgs, which will then allow your colleagues to discover all the versions of all those tools with nix repl

    > pkgs.CJefferson.ghc
and boom! All the GHC versions you've worked hard to package across branches and repos etc will be at their fingertips.

As is always the case with FP, composition and abstraction is the big longterm win with Nix. No other comparable tool comes close on those axes.

Post reply on HN