6 ms·
NixOS Linux review, is it the alternative to Debian and Archlinux?
- cobbaut 3y agoBetteridge's Law says no :) "Declarative: in normal Linux distro you configure the operating system with a sequence of commands, " No I pretty much can point and click the configuration of Debian XFCE.
- diffeomorphism 3y agoThis sequence of commands is entered by pointing and clicking. "Command" is also just an English word.
- mobiuscog 3y agoNix has the same problem as Terraform: it solves a lot of problems, but you have to 'live and breathe' their DSL. You're no longer learning/maintaining Linux - you're learning and maintaining Nix.
- senectus1 3y agoI like the way you're thinking. What do you recommend? I haven't played with Linux in about 18 years, (back then it was Ubuntu and Gentoo)... what the going recommendations now?
- lvncelot 3y agoIf you like the idea of Nix but are "meh" about the language, you could check out Guix, which does the same thing as Nix but with Guile (Scheme) as the configuration language. (Disclaimer: Still stuck on NixOS, am myself "meh" about the language and have only dabbled in Guix, still need to commit a machine to it)
- tsuujin 3y agoI’m all in on Nix (the package manager) today and use it across multiple Linux and Mac machines to handle my configs and most of my app installs. That said, I still find nix difficult to understand and learn, and when I get stuck on something it seems extremely frustrating to unstick myself. I would love to try Guix, mostly because I think building on an existing language would have solved many of my issues with nix, but the whole point for me is that I want a stable config across all of my platforms; the “non free” restrictions guix poses has gated me from it.
- inawarminister 3y agoguix-nonguix (nonfree) is a bit hush-hush but in my experience works well enough for all hardware drivers and proprietary-adjacent softwares that I need
- tsuujin 3y agoI made an effort to look into this at one point, and discovered that that there are actual rules prohibiting discussing it on the normal communication channels. Made it seem like troubleshooting was going to be way more difficult than it was worth.
- huijzer 3y ago> Nix has the same problem as Terraform: it solves a lot of problems, but you have to 'live and breathe' their DSL. I find it much more pleasant to live and breathe the NixOS configuration than to live and breathe someone else's OS. It's a bit like a woodworkers workshop. Do you prefer to have someone else configure the workshop or do rather tune it to your use-cases over time? > You're no longer learning/maintaining Linux - you're learning and maintaining Nix. I disagree. I learned more Linux fundamentals with NixOS (and via that the Arch documentation) than I learned from running Ubuntu.
- mobiuscog 3y ago> I find it much more pleasant to live and breathe the NixOS configuration than to live and breathe someone else's OS. I grew up with Linux and whilst it's changed, it's far more of my OS than what is provided by Nix. The idea is sound, to provide a more standard configuration, but that's what many Linux standards have done, and then been forked because people don't all think the same way - and they shouldn't. Sure, if you're running servers or otherwise need reproducible systems in production, there's absolutely a lot of value in Nix. For a personal computer, which is something I still value greatly, I don't want to be constrained so much, especially by a DSL that is not intuitive to me. I know Nix isn't 'new' and has just become more popular of late due to influencers, and I see the benefits for those that don't mind the aspects I mentioned, but it's absolutely not for me, or a lot of others I suspect. I will stick with Debian for stable, Arch for rolling, and see what occasional others (void, for example) have to offer at the time. I used to be a big fan of gentoo, and I still would prefer to build from source, but it doesn't offer anything beyond that - I would love a variant of gentoo that also isolated dependencies for each package. Then again, I suspect as flatpak continues to do well (or Canonical impose snaps everywhere) there will be even less space on the desktop for such 'personality' anyway.
- grigio 3y agoMhm.. yes, what is the problem with it if it makes your life better ? It's the problem with every abstraction it can be 90% good but for edge cases you need to know what is happening behind the scene. But for some use cases is better to know the state of the system instead of running by hands a sequence of commands.
- mobiuscog 3y agoThe problem is that when you need to fix those edge cases, suddenly you have to learn all of the things that the abstraction 'protected' you from. I have no problem with the ability to know the state of the system - that's one of the 'cool' features. I just don't like it being locked away from me (on my personal computer) and having to use a language (DSL) that I dislike to describe everything when I already am happy with what exists.
- n8henrie 3y agoFair, but "learning / maintaining Linux" is not a singular entity. Every project uses a different configuration (toml, yaml, json, ini, etc.), much of which can often be accomplished -- even for multiple machines simultaneously -- with some nix.
- yetanother12345 3y ago>their DSL Non-American here: - Digital Subscriber Line? Damn Small Linux? Urban Dictionary certainly is no help[0]. Please connect the dots for me... [0] https://www.urbandictionary.com/define.php?term=DSL https://www.urbandictionary.com/define.php?term=DSL
- commotionfever 3y agodomain specific language
- l0b0 3y agoIt sounds like you're saying we should all use Linux From Scratch. Or are you saying that Nix is somehow equally bad as Terraform? Because as a user of both, that's ridiculous.
- sshine 3y ago> is it the alternative to Debian and Archlinux? Is it the alternative? For desktop or server? NixOS will continue to be niche and continue to be an alternative. For desktop, NixOS will continue to be a niche, like Arch and Gentoo, because of the learning curve. But if you're already running Arch Linux, NixOS is a step in a direction you do want to consider, but may not want to afford with your time. For server, NixOS will also continue to be a niche. Using it both attracts talent and limits the talent pool, because lots of very capable DevOps and sysadmins just never got around to NixOS, even if they are veterans in both the classic and the cloud world. It's like making a startup with Haskell. Also, I've been holding back on switching to NixOS, but I'm finally dedicating my next free weekend to install it on my laptop. I would love to be able to reproduce my exact working environment on new machines more easily. I'm not switching from Debian / Alpine on server any time soon.
- WastingMyTime89 3y ago> For desktop, NixOS will continue to be a niche, like Arch and Gentoo, because of the learning curve. But if you're already running Arch Linux, NixOS is a step in a direction you do want to consider, but may not want to afford with your time. It doesn't help that the Nix documentation used to be one of the worst I have ever encountered while Arch and Gentoo have some of the most comprehensive and well written Wikis. Did it significantly improve in the past two years?
- sshine 3y ago> Did [NixOS'es documentation] significantly improve in the past two years? There has been more blog posts and YouTube learning material on NixOS very recently. I don't know what happens when you dig deeper than those. It does require a lot of tinkering.
- tsuujin 3y ago> Did it significantly improve in the past two years? I feel like I can pretty concretely answer with “no”. The docs are hard to read and don’t cover content well, and the ecosystem split that flakes brought have made it more complicated than ever for a new user to jump in today. There’s plenty of user generated content out there. Sometimes it can fill in a gap, but most of the time I find that I have to just figure it out myself. Nix is a cool system overall but the learning curve still seems needlessly steep. https://determinate.systems https://determinate.systems seems to be doing good work for the nix community though. Shout out to them for sure.
- lemper 3y agodidn't sell me at all. especially the "Nix flake is magic" part.
- thumbuddy 3y agoNo thanks way to complicated. I like to use my computer not configure my OS. For OS geeks though it's probably neat.
- eternityforest 3y agoNix looks like it will be ideal for that once it gets front end tools. Seems like it would be the perfect end user OS, with the right GUI admin system so nobody ever had to deal with Nix. I like the config file model a lot more than interactive commands, but it's neither discoverable nor copy pastable into the terminal. Most of the traditional Linux ecosystem seems to be built assuming that a person would be interactively managing individual computers, and automation just kind of gets stacked on top, or added much later. Like, fstab. For a long time all your entries were in one place, and some distros still just have one file. Which is fairly insane, because a script can't just have it's own file, it has to be able to edit the main one, which is in some space/tab separated format probably because JSON and the like didn't even exist, so there are scripts out there with "Add this line if this is not already present" code and all sorts of hacks. Plus, package management breaks stuff regularly, anything not in the base repos has to be carefully maintained to keep up. Which is almost impossible when there are so many distros to keep up with. So then you need flatpaks to fix it, but there's always some random bug in the flatpaks that doesn't get caught because there's fewer eyeballs... To me the entire Linux ecosystem is insane, and nobody should have to do something by typing a command interactively, that doesn't really help make things reproducible and predictable. It's like, an oil painting when what you actually wanted was a CAD model. Traditional Linux is kind of inherently for OS geeks, it assumes you want to have an install you keep for years that you tinker with and set up just right, whereas Nix seems to assume you want the install to be a commodity part, configured from some standardized options. I rarely see any area of computing that isn't improved greatly by declarative tech, so I'm a bit biased.
- thumbuddy 3y agoI prefer graphical interfaces to declarative languages with escape hatches to a lower level form. I don't like what can go wrong with declarative tools or APIs that are too high level. Don't get me wrong, SQL is brilliant, but I feel like when the complexity of the underlying system is high, declarative approaches become scarier and scarier. If something goes wrong or doesn't do what I need all those elided things are no longer elided and I'm now at the mercy of understanding all of it with no escape other than to upstream a change, kill a project, or change technologies. The Linux ecosystem is insane, but so is every software technology of sufficient size. I sincerely do not need my downloading of some tool I've never used to be reproduced, more than likely I will uninstall it after a half hour of playing with it. Or if I. In a dire situation, pin a version Different tastes for sure.
- DrNosferatu 3y agoCan you use a one-line (or few-lines) declaration in that config file to setup a complete and updated GPU Tensorflow/Pytorch stack? - Anyone in the know?
- skulk 3y agoIs there some reason this doesn't work? (First google search result for "nix Nvidia tensorflow" btw) https://nixos.wiki/wiki/Tensorflow https://nixos.wiki/wiki/Tensorflow
- 4oo4 3y agoI tried out NixOS the other day using the stable ISO image in a VM. To try to get some familiarity I tried to install a really simple package (neofetch). After the VM was stuck at 100% CPU for about 10 minutes I gave up. Not sure if it was a cold start issue for the package manager or a quirk of using the live ISO versus an actual install but I was too demotivated to keep learning.