3 ms·
This is a pretty good take. Although I'd further emphasise: knowledge of Linux is "necessary but not sufficient" for using NixOS. NixOS requires additional know
by rgoulter 5y ago
This is a pretty good take. Although I'd further emphasise: knowledge of Linux is "necessary but not sufficient" for using NixOS. NixOS requires additional knowledge, rather than a different set of knowledge.
I think for many developers with Linux experience, probably getting a reasonable NixOS desktop setup is straightforward.
There are some compelling benefits to Nix/NixOS, but these also require getting past a steep cliff in the difficulty curve.
- evh 5y ago>I think for many developers with Linux experience, probably getting a reasonable NixOS desktop setup is straightforward. I took this as an excuse to try NixOS myself and an opportunity to provide anecdata. Previous Linux experience: Lots, including about 7 years of Gentoo use, some Arch and the usual distro hopping before that. Mostly on laptops (not counting VMs). Lately it's mostly been the BSDs so I'm a little lost. It took me about 45 minutes from searching for their site to have a working XFCE install using their minimal install ISO with VirtualBox. Certainly a different experience, but with their install guide and searching "nixos xfce" you'll get it done. Promptly rebooted and went for an encrypted ZFS root - less straightforward but after a few PEBKAC snags I got it up in an hour or two. My immediate impression is that this is great but not being allowed to just # which zsh >> /etc/shells rubbed me the wrong way. Definitely something I'll consider using in the future, seems like a good fit for i.e. a VPS you might want to move easily. Naturally I haven't learned the config language fully, but it seems easy enough if the docs aren't terrible.
- pxc 5y agoThanks for sharing your experience! > My immediate impression is that this is great but not being allowed to just `# which zsh >> /etc/shells` rubbed me the wrong way. Yep. That kind of thing will come up; on NixOS, root's interactive whim doesn't own /etc— `nixos-rebuild` owns /etc. But of course, both root and nixos-rebuild are you, so that's not so bad. :) For those curious (I assume the parent poster already figured it out) the NixOS way of enabling ZSH as a login shell is the following one liner: programs.zsh.enable = true; which will both ensure that it is installed and on the PATH, and add it to /etc/shells for you. As a rule of thumb, it's generally a good idea to check the NixOS options to see if there's a module defined for configuring a program before just adding it to your `environment.systemPackages`. Here's NixOS' zsh configuration options, for example: https://search.nixos.org/options?channel=21.05&from=0&size=50&sort=relevance&type=packages&query=programs.zsh https://search.nixos.org/options?channel=21.05&from=0&size=5... (`programs.zsh.{shell,prompt,loginShell,interactiveShell}Init` are your escape hatches; you can put whatever custom zsh scripting you want in there)
- whateveracct 5y ago> This is a pretty good take. Although I'd further emphasise: knowledge of Linux is "necessary but not sufficient" for using NixOS. NixOS requires additional knowledge, rather than a different set of knowledge. You can use NixOS to learn more about Linux quite well. You can't really ruin everything by mucking around at the low-level. Just rollback to previous generation. I've definitely learned a lot due to NixOS allowed me to hack with impunity.