Spanning a tech career over 22 years using macOS to Gentoo I am thrilled to be using NixOS and its's capabilities on all my devices and in all respects I possibly can. It's a distro, it's a package manager, it's a language. I don't even want to compare it to other linux distros because it is simply in a class of its own (not to diminish other OSes and PMs). I am now learning something new every day, taking notes and to reiterate excited about this amazing technology and interested in how the future of compute and human / computer interaction could be changed as this project progresses. Purely Functional.
NixOS is the only system I'm willing to stick with because of its reproducibility, declarative nature, and composability.
With declarative configuration, you can manage your entire system just like managing code.
With reproducibility, you no longer have to deal with strange environment differences (not absolute, but these issues are significantly reduced).
With composability, you can manage your configuration in a modular way. This is especially effective when you need to manage multiple computers because you no longer have to synchronize configurations between different machines by copying them. Instead, you can extract their common parts for unified maintenance and individually maintain the differing parts. Finally, you can combine the different parts, just as you would do when writing any other code.
Using NixOS allows me to continuously improve my skills, and it provides me with a high ceiling, making it feel like second nature to use. In this regard, it's very similar to tools like Vim, Emacs, and Git. If you also enjoy these tools and have experience with functional programming languages, there's a good chance you'll also appreciate NixOS.
Hey there, tech adventurers! Ready to take a whirlwind tour through the neon-lit alleyways of NixOS? Buckle up, 'cause we're diving into an OS that's not just playing by the rules – it's rewriting them.
**Cool Cats of NixOS**
1. **Package Party**: Ever been trapped in dependency limbo? NixOS says bye-bye to that mess. Their package game is like an ultra-chic closet where software can't fight over the spotlight. Multiple versions? No sweat.
2. **Epic Configs**: Kiss your config chaos goodbye! NixOS lets you boss your system around with a slick language. No need to beg text files for mercy – just declare what you want and bam! It's a modern art masterpiece.
3. **Rollback Ready**: Worried about stepping on the wrong upgrade toes? NixOS has your back. It's like an "undo" button for your system. Say goodbye to the days of regret and embrace the zen of easy rollbacks.
**Speed Bumps on the Groove**
1. **Funky Fresh**: Hold onto your hat – NixOS ain't your grandpa's Linux. It's got a style all its own, and that means a bit of a learning curve. If you're a noob, be ready to spin your wheels a bit.
2. **Lonely Road**: NixOS is forging ahead, but the trail might be a bit quieter. Finding help might mean digging a little deeper. If you're used to a bustling crowd, this might feel like a solo dance.
But hey, ain't no party like a NixOS party! If you're down to dance to a different beat, this OS is like that underground club where you discover the next big thing before everyone else catches on. Neon lights, futuristic vibes – NixOS isn't just an OS, it's a state of mind. Whether you're a coding guru or just dipping your toes into Linux waters, this is one spin you won't forget.
Previously tumbleweed was my go to distro, I thought no other distro would ever be good enough or unique enough to make me switch, but nixos is that distro, its very unique, its immutable but unlike many other immutable distro's you can change basically everything about it, you're not just locked into gnome or plasma, or whatever software the distro maintainers give you, if you don't want a full desktop environment and you want to use just a window manager instead then you can, you can even install both and pick and choose what to boot into and not have any of the software from the desktop environment show up when you're in the window manager.
You can even install their unstable rolling release along side their stable fixed release and pick and choose what to boot into, so you can literally run the fixed release and the rolling release of the same distro on the same PC, unlike pretty much every other distro where you have to choose if you want to run either a fixed release or a stable release, so there's no risk when updating or running unstable because you can just boot back into your previous stable version just as easy as it is to boot into an older kernel in the grub menu, you can also install different versions of the same software, all your configs are stored in one or two files, so its a piece of cake to reinstall your system to exactly how it was before, you can even save different config files for different desktops or window managers.
It does require a learning curve if you like to tinker though, and documentation is lacking in some areas, but apart from that its awesome, I recently put nixos on my mothers two laptops because one of them broke when I upgraded debian bullseye to bookworm, now I don't have to worry about an upgrade breaking the system, its kind of like having btrfs snapshots without having to run btrfs.
NixOS is an absolute game-changer! Unparalleled stability and reliability at the cutting edge. The Nix package manager ensures seamless software management and rollbacks. With an amazing community, ultimate customization, and top-notch security, it's the best Linux distro out there! Don't miss out!
NixOS offers deterministic goodness like no other! Thanks to its innovative Nix package manager, you can rest assured that your system will remain consistent and reproducible across installations and updates. This means no more unexpected surprises or conflicts, making NixOS an absolute joy to use. Say goodbye to dependency headaches and embrace a world of predictable, reliable computing bliss!
Among the Linux distributions I've used so far, NixOS is by far the best. It has all the features I've been looking for and couldn't find before. Linux means freedom to me. I'm not afraid of making mistakes with NixOS, and that makes me feel even more free. I used to frequently switch distributions, but now I believe I will spend many years with NixOS.
Give NixOS a chance without a doubt, you won't regret it. Perhaps you, too, will find what you have been searching for, just like I did for years.
From my point of view it is the most versatile operating system. It is so well built from the architectural stage that it competes with the very powerful operating systems of the past and present.
Traditional Windows and UNIX operating systems do not have this paradigm, I wish they did.
Here we are talking about the reproduction of things; you can quickly have a system prepared with everything you had 20 years ago, so that you can feel the experience from then at least from time to time.
You can go ahead with the updates without worrying. if you compare the operating systems Ubuntu, Debian, RedHat, AlmaLinux, Fedora, CentOS, Arch Linux and others with NixOS. You will always have a broken OS from time to time, due to incompatibilities; which does not happen with NixOS.
We don't like things that don't work and are broken!
Notice for the other Linux operating systems, it should improve the user experience and configuration.
You have your own build system, which gives you a lot of freedom to build things.
Even if it's hard to learn, it's worth it. you know why it's worth it, because you're a programmer and you can learn new and beautiful things in this life.
A powerful system that can be customized.
You can go back in time to boot for the configuration you want, which gives you a fantastic experience.
You can have multiple versions of the same program with small changes made by you; just slightly modifying some derivatives.
You can go to different configuration branches to experience old and new things or complicated hardware architectures.
You can have what you want with this operating system. Because this OS preserves the Linux philosophy; you to be the master of the operating system, and the system to do exactly what you want.
The UX/DX experience is quite good. A reliable system with documentation full of examples.
Come on Linux community, let's make this operating system a flagship operating system.
I want this operating system to be very attractive like Android, to be used by many people, to have many AI and Blockchain capabilities.
From my point of view it is an operating system from the future.
And I will always use it from now on.
Thank you to the Nix community, for what achievements you have had, have and will have.
I will stay with you.
I wish that whoever reads this note, will come back here again and share this further.
Has been a rock solid distro for me. Has a installer these days but to use you have to learn the nixos language to make use of nix. If I want to setup dev env I have to read more.
Their wiki and the search for packages often get you the rest of the way to your goal.
Their stable repo is nice if you just like to have two major releases per year. And minimize the update cycles.
Nix has had more prebuilt kernels then arch repo, I think there is enough good software without adding anything.
I use some flatpaks for steam and games, and I got what I need.
this is a good distro to use. This distro has multiuser package management (system packages, system wide local packages, and user wide local packages) ability to roll back with ease, it is immutable, and it is quite up to date. There are also tons of packages for nixos. NVIDIA works great on nixos, broadcom wifi drivers work great on nixos, flatpaks work great on nixos (there is a way to fix the mouse icon issue in flatpaks) You also don't have to deal with dependency hell on nixos, you can have multiple versions, each user can have its own packages without needing root access, and it is a very reliable linux distro.
I was afraid to use NixOS because it is considered an advanced distro, but the installation was smooth thanks to the Calam installer. I have been using it for a week now, and the results are satisfactory. Just one problem, I have had difficulty integrating NixOS with the use of another package manager like PIP. I liked this new paradigm of handling packages and configurations. I always considered version control and dependency management a mess in Linux. NixOS provides a system reordering. Furthermore, it allows me to better plan my configurations and have confidence in its stability in the long term.
I'm currently using EndeavourOS and NixOS is currently on everyone's lips, so I thought I'd have a look for myself. The installation went smoothly, because there is a graphical installer, which as you are used to, the basics can be configured (language, user, DE, partitioning, ...). When I was then booted I wanted to build and install my system via the declarative config file of nix of course. This takes longer than usual, but once you have created this file, you can reuse it for every installation. For startup and important info I used the "Getting Started With NixOS" guide from It's FOSS, I can recommend it to anyone switching over.
And what can I say, I haven't used it for very long, so I can't say anything about stability yet, but so far I like it very much and I am considering using it as a daily driver.
The only criticism I can think of so far is that if you don't know NixOS at all, you won't get any help when starting the OS. You have to look for it yourself. But since this is an advanced distro, I think that's ok.
By far paradigm shifting and certainly the future of operating systems.
No more needing to reinstall your OS each 2 years or fixing package/lib incompatibility issues!.
Despite the documentation problem everyone in the community says, I believe that tooling should be more consistent with more guides and examples on how to use it and which benefits users can gain from that, I say that because the community is split to those who use flakes a long with nix commands, and those who don´t, which makes kinda complicated to wrap things in your head.
Language is not perfect but far more cool and productive than using yaml, tooling is not perfect but with time it will improve a lot (see Nix language server, LSPs formatters, NixOps lorri home manager and et cetera...).
Community is getting larger and larger and more distros are adopting the idea of an immutable operating system, it seems that things are getting better.
For those who are beginning right now, take your time and don't rush to do all things once at a time, nix sure has a lot of capabilities but it's important to understand why it's so good. I recommend reading a blog series that helped me (even tho I use it a long time ago) to understand some key concepts I didn't understand before, it's called "Nix from First Principles: Flake Edition" from Tony Finn
I have been using linux systems for 10 years. Basically fedora, arhlinux, debian, opesuse, dozens of their various derivatives. I even ventured into the territory of freebsd and gentoo. I am an engineer and self-taught in the world of IT, and with that I see the greatness of nixos. I installed it for the first time a few weeks ago. Getting the basic system up and running doesn't require a lot of effort, but it's just the surface and moving on requires hard learning, especially from those who don't have programming experience. The cleanliness, lightness, flexibility and stability of the system are impressive compared to traditional gnu/linux solutions. You get a special thrill when you work with it, on it. I appreciate that it is resource-based, without dependency chaos, and creative. These directly and indirectly free up a lot of development energy, especially if there will already be a large number of automated modules available to users on a particular topic. I find the integration of non-nix packages particularly problematic. By simplifying this, you can go a long way. It has a bright future. I hope it will not be contaminated with flatpak and snaps technologies and will remain consistent.
Once you start to understand it and liking it, you don't want to leave the Nix ecosystem.
Its most unique feature: the feeling of freedom it provides, allowing users to FEARLESSLY modify configurations without risking system damage.
With the rollback feature, you return to a previous working state as easily as selecting one of your previous NixOS "generation.". That's it!
Although there's a learning curve to Nix language, for me the key is to start simple and build upon it gradually.
The most complex type, a set, (think of it a some named fields containing a value that is either a string, an interger, a version number, a url, a function... or again a set) is used super-frequently, but understanding it makes mastering the Nix language and ecosystem really achievable.
As you become familiar with it (just play with it regularly), you'll realize Nix Language is DIFFERENT, not DIFFICULT.
With my last laptop I began using Ubuntu for convenience, but soon installed the Nix package manager due to its advantages in development. Eventually, I re-installed NixOS in dual boot and haven't looked back since. Now, I even consider only using Ubuntu as containers within NixOS.
In summary, NixOS offers an unparalleled sense of freedom and flexibility, making it a worthwhile endeavor for those willing to learn its unique language.
Last advice for novices: Dont mistake Nix Language syntax with C/Java/Javascript. Here curly braces and semi-colons means a set, it's TOTALLY DIFFERENT. Indeed it is so much SIMPLER... but hey... different...
A bit of a learning curve, but once you get your head around it, it's by far the most exciting, promising and technically sound distro you'll ever use.
You are not convinced? Try nix-shell -p supertuxkart and play the game without installing it permanently on your system!
Still not sure? Then copy your configuaration.nix file from your github repository and reproduce your system to any computer you like.
And the list goes on... I haven't even touched on the experimental features, such as flakes!
This is an extreme operating system that I want to love. I'm grateful it exists. I really like the nix package manager. That said, unless you have already made the investment, you are going to spend a lot more time than you want to learning how to work around NixOS. In many respects it is NOT gnu/linux, despite meeting the criteria when you look at the kernel and software running on it. That is because it bucks generations of conventions when it comes to how you install and run software. NixOS follows a radical philosophy of dependency management and makes heavy use of linking to create virtual environments. There is no opt-out of this, the operating system is really built this way.
Definitely worth installing on a second machine or as dual boot if you are interested in a long road of learning. Definitely not worth installing as your primary OS if you have used other operating systems (intentionally left broad: eg, Ubuntu, Windows, Gentoo, iOS) before and want something you understand and can use.
NixOS is a bit of a rabbit hole, but it's one that will make you wonder why every other distro isn't doing it this way!
The nix package manager is neat & worth checking out in it's own right, if you're not looking to completely revamp your entire system setup.
However, the real achievement by the Nix team is NixOS - I will never use another OS.
Having your entire system declared in a version-controlled file is obviously beneficial. Rollbacks allow for confident experimentation, knowing that bricking your system is really only bricking that *version* of your system, and can be reverted easily upon reboot. It's a tinkerer's dream OS.
It has a very steep learning curve, once you get into the realm of flakes & functions. However, your configuration.nix file really doesn't need all that. You can do perfectly fine with a single config file describing your whole system, from what file system & kernel to use all the way up to specific versions of user packages. Drop your laptop into your bathtub? You no longer have to spend a whole day getting your system back the way you like it. Just install nixos, git clone your config repo, & `nixos-install`. Done!
In my opinion, NixOS is a great OS. This is because NixOS, other than Guix, is the only OS that offers declarativity while still being good.
NixOS is very organized due to all your settings being inside files. For package installation, you add the package to a list inside a file.
However, with the new addition of Nix Flakes, everything becomes harder to install. Due to this, I give the OS a 9/10.
Also, this OS is pure preference. Even if the OS gets good reviews, you might not like it. Maybe you like immutability and automatic package and dependency management. Your choice. Personally, I like declarativity and package version management.
If you want to use NixOS, make sure to install home-manager. Otherwise Nix is kinda bad.
Holy cow this is this bad. This is not for beginners. There is just way too much manual work with this one.
Not exactly certain what or who this is for. As a daily driver, no way.
With so many choices out there, this one is not even on my radar.
Straight away, had quite a few hardware issues which honestly was quite surprising.
Performance was also lacking. I suppose due to the hardware issues.
Tried the KDE edition which out of the box was missing Discover. There is no Software Center either.
Reminds me of EndevourOS which is equally terrible.
Sorry not for me.
good, but room for improvement
And one day you will definitely sit in a puddle, because that stuff could broke something on your system.
In a generic distribution there is no any easy way to go through the issue, but in NixOS you will manage it by using only
one command "nixos-rebuild switch --rollback"! And that is it. This is like git in programming world:
your system in one stable state, you can look around, make experimental changes and commit them, and you can discard any commits you make in that state without impacting any branches by performing another checkout.
not really for beginners, but recommended
After a terrible learning curve, you begin to learn the power of NixOS : the system is quasi-indestructible and infinitely reproductible...
1. You destroyed something ? First, congratulations, it's difficult because everything is read-only. But no problem, just reboot to the previous version. Everything stays intact until you "collect-garbages" (a nix command).
2. You need Firefox with 1500 strange options and different ones for 150 different users ? No problem, when configured the first time, the next deployment are instantaneous. No need to re-set the settings every time you test something or add a new user.
Because your system AND users AND sysconfigs AND userconfigs AND applications AND apps configurations are declarative. A simple nixos-rebuild and there you go, a fresh new system, ready to use.
To me, this is the end-all-be-all OS. It's the only OS I've encountered so far that allows *complete customization by configuration*. The fact that builds are reproducible means that I can have complete confidence that the OS will always work. If a build fails? Revert a version.
The only downside is that the learning curve is steep. But come to think of it, that's not the fault of the OS. That's caused by the mess of the current ecosystem that NixOS is (in my opinion) the only sane answer to.
Giving it a rating of 10 comes from the fact that my life as a developer and FOSS engineer has become massively more productive and straight-forward. Nix flakes are a gift to anyone working with software. Thanks!
Having spent a number of years with ArchLinux, over the last year or more I have moved to NixOS as my main driver for servers and notebooks. I also use it to compose docker images etc.
I like how the community shares their .dotfile configurations and how the makeup of the configurations is how you declaratively manage the system. It just feels much tidier than the imperative methods that are used in most desktop systems.
It takes a little of study to come to grips with the Nix language and the documentation could be better - but the community is excellent.
There might be the odd trade-off required when using proprietary packages that are not compiled for NixOS. I hear there are ways around that too, but not something that has bothered me enough yet to spend time to deal with it.
So I recently left the Windows world and hopped back into Linux, which I used to use a lot back between 2012-2015.
I have been distro-hopping like crazy for the last several weeks. I knew I wanted something more advanced than Ubuntu. The problem is that I am also a distro minimalist, meaning I want a naked, raw operating system. Something without any apps installed other than a desktop. I had remembered reading about NixOS years ago, but never gave it a try. I guess now was the time.
Here's what I appreciate about Nix. The graphical installer makes getting started easy. I love the simplicity and cleanness of managing the installed system. I personally do not like Firefox as much as I like Brave. Simply go into the configuration file, delete the line containing Firefox, and add Brave. Boom. Do a simple rebuild of the system, and your system now never even knew Firefox was installed.
Ironically, I chose to add apps using Flathub which also runs in a containerized manner, but does eliminate the need to edit the configuration file every time I want to add an app.
I don't like that Nix doesn't let you choose what file system to use at install time, at least with the auto format function. I also don't like that some of the most necessary commands are hidden away in documentation or on chat boards. For example, how do you update the packages? It isn't as obvious. Minor nitpickings, but I chose the KDE desktop, and there is a broken icon down in the lower left corner. I just deleted it.
I'm still learning about NixOS, but I feel like this is the system to hang with for the long term. Tons of power and flexibility. You have the option between a stable updates channel or a more rolling distro type of channel, called unstable. I would recommend this system strongly.
I finally tried it out. The installer takes away some pressure, as I wasn't confident that I could jump in and set it all up correctly from scratch. Now that I had this base Gnome install though, I realised that the packager and config file setup are not at all as scary as I thought they would be. In fact, it's pretty easy to get your head around and just start building up your OS like you would do with any other distro. The packager is brilliant. It's fast and immensely powerful, and I haven't even delved into ad hoc shell environments and all that jazz yet. A lot of those tools are more geared towards developers anyway, which I'm not any more. And special heads-up for the documentation.. it's really, really good.
The default Gnome is great (I hope the other desktops available are as good as this). It's clean and it's stable and fast. It's the only distro apart from Ubuntu-based ones that automatically found and set up by Brother printer and scanner.
The amount of packages available is awesome as well. The whole thing feels like the stability of Debian with the cutting edge of Arch and the updated Gnome of Fedora. It's incredibly well thought-out. I hope to get my new 'built for linux' laptop soon. I'll be able to try out how easy it is to replicate my current setup on a new machine.
For anyone hesitating to try it out, thinking it might be too messy to deal with, I can assure you that it isn't. I highly recommend this distro.
There is a certain demographic that NixOS will appeal to, as is evident in the reviews here: expert users who used to distro-hop, always searching for something that works reliably for all their nontrivial needs. Many, myself included, end up settling on NixOS. In this review I'll try to outline why I think that is more of a pattern than a fluke.
NixOS strikes a very good balance between "it just works" and DIY:
"It just works":
- nixpkgs is the largest repository of Linux software in existence, both in number of packages and in number of up-to-date packages
- especially with the graphical installer, installing NixOS to a graphical system is as easy as with all other graphical distros
DIY:
- experimentation without fear of messing up the system (with rollbacks and GC) is rightfully in the spotlight
- Nix is source-based, so you can patch packages on the fly
- declarative configs mean that at the end of the day, all your hard work can be saved to version control, so it doesn't have to be done again, by you or anyone else
- a central configuration keeps it easy to remove cruft that invariably accumulates in imperative OSes
Many DIY folks try to reinvent a subset of NixOS through hand-crafted configs that copy and sync their dotfiles, install packages, etc. Nix formalises this into something easier to maintain and reason about.
The biggest barrier to entry is of course the steep learning curve. The only way to use NixOS is to learn the Nix expression language and surrounding idioms for building software. It takes about a year or so to attain proficiency, or about half that if you have someone helping you. But like with all foundational skills, it pays dividends in the long run.
The benefits of learning Nix:
- ability to build and run any software project with Nix, on any distro and even macOS
- ability to run software without installing it or any dependencies
- by learning how to use the system you also learn how to contribute to nixpkgs / NixOS itself, which is how it has become so large in the first place
- learning the functional paradigm makes you a better engineer overall
I don't expect that the configuration language will be abstracted away (e.g. by GUI) any time soon. But with improved documentation, the learning curve might become more approachable to the general audience. The community is exceptionally active and welcoming to contributions.
I tried many of different Linux distributions before and was really happy to meet NixOS suddenly.
There is no doubt that the future of Linux World is NixOS.
In my opinion it will take not much time till NixOS becomes widely used around the whole planet.
IMHO the greatest feature of that distribution is "rollback" possibility. It is awesome.
Imagine that you have installed something that is not exactly you need, you forgotten to prune it
and kept going your searches. Once you've found it and of course you completely forgot about that previously installed
unneeded stuff. And one day you will definitely sit in a puddle, because that stuff could broke something on your system.
In a generic distribution there is no any easy way to go through the issue, but in NixOS you will manage it by using only
one command "nixos-rebuild switch --rollback"! And that is it. This is like git in programming world:
your system in one stable state, you can look around, make experimental changes and commit them, and you can discard any commits you make in that state without impacting any branches by performing another checkout.
I recommend it for everyone.
Like many of the other reviewers, I have also used, with varying degrees of success and fidelity, many of the popular Linux distributions (Debian, Fedora, Centos, Ubuntu, OpenSuse, KDE Neon, Mint, Arch), as well as some of the underdogs now farther down the list as well. For the record, I probably used Gentoo/Funtoo the longest (c. 15 years), which I finally abandoned[1], but only after having learned a great deal about how Linux works, about its strengths as well as its weaknesses.
NixOS is by far the most interesting distribution I've used to date, and I think -- might be the future of the Linux desktop. Why? NixOS is, quite literally, an OS built completely around its package manager (Nix and the expression language that supports it). It appears to take aim at solving a key problem of most Linux distributions -- the fact that application software is developed and updated at varying speeds, and those applications use versions of key libraries, which themselves are developed independently and thus have their own production timelines, further complicated by the relentless advent of new hardware, and the leap-frogging between the various elements create inconsistencies (at times quite circular) that can become difficult to overcome (so-called dependency hell). This difficulty seems to me the key problem that NixOS targets, and by doing so places **application software** -- and the resulting experience users derive from it -- at the very core of everything.
Many reviews more than a year or so old speak of weakness in documentation. Although still not perfect, the depth and extent of documentation has evidently improved significantly in the meantime. The user group is still small, but growing and (at least in my experience) quite responsive. The installation itself demands only that you understand something about disk partitioning, and are able to customize an configuration file from a generic template to fit your needs. But the key parts are already there: to get a machine up and running is not necessarily a struggle. The struggle really comes later, in gaining a mastery of the Nix language sufficient to fully understand how the system really works, and how to use it create a development environment. This is where better documentation comes in. A key point, however, is that once a satisfactory `/etc/nixos/configuration.nix' file is obtained, a user could replicate this setup across many machines, making it possible to obtain a consistent desktop experience.
NixOS may not be for everyone, and understanding its functionality is not trivial, but such hurdles will also likely become less substantial with greater user adoption and deeper documentation. I feel it has tremendous potential, and the investment has been well worth it thus far for me. I'm very grateful to Distrowatch for showcasing it.
[1] Getting bogged down with one too many KDE-QT library issues, and recognizing I was spending far less time _using_ the system than I was recompiling it.
I have installed most Linux distributions over the last 10 years, however, I have to admit that NixOS is definitely something unique.
I have this installed on my two laptops with quiet different specs running Gnome3 with a fresh install the memory used is around 650MB this is the lowest I have seen. This has enabled me to run NixOS on my old Dell that has only 2GB of ram and 32GB of emmc, on which it runs fast enough to be usable.
I have taken the config from that and used it on my other Dell that has 16GB of ram and a 500GB SSD, it flies but it made setting up the second machine really simple.
Pros: -
* Dead easy to install using the Calamares installer.
* Good choice of DEs.
* An opportunity to learn something new.
* Over 80000 packages available in the repository
Cons: -
* You do need to be comfortable with editing a config file, but once you get your head around the concept, you'll love NixOS
I am loving NixOS surprise yourself and give it a go!
I installed nixos-gnome-22.05.342.a634c8f6c1f-x86_64-and even though it says Gnome, it offers several desktops. I chose Xfce. Everything went smooth. Only thing I miss is Synaptic. the nix-env is similar to apt-get, but itI is always better. to use a graphic too;.There are a few things missing from their repo, alacarte and aisleriot solitaire come to mind. I don't understand what being reproducible means. I have not experienced their community yet. This is my first day testing Nix. I think it shows promise.
That's the way to manage systems. (Nearly) everything can be declared from code. Reproducable, gitops-able, very nice.
With the remote-deployment tools you'll be able to manage a lot of systems without any hassle. You'll be able to move forward very fast because of the recovery concept which comes with the versioning with nix.
The community is very active. You'll find nearly every tool you'll looking for.
Give it a try! Even if the learning courve is steep and you'll have to finger out the special nix syntax. It's worth it!
This distro is different to all other distros in that it has a modern way of managing it. You manage it like a single system, through a single configuration construct. Your configuration can be copied to another installation and will adopt all the configuration. It is idempotent, deterministic, it is how modern Linux should be. I have converted all of my installations over the NixOS with a common set of configuration across them all. Take the DRY (Don't Repeat Yourself) mentality of programming to system administration. The downside of NixOS is the poor documentation. The documentation is getting better and with more people using NixOS it will continue to improve.
Best thing ever, I can't switch back. My whole system is reproducible now, which allows me to have it running on multiple machines without additional effort. Awesome.
After using NixOS, going back to the usual linux distros is a pain. In my opinion, the nix approach is a large improvement over the usual "get the package and hope it works" approach. Reproducibility is very important for ergonomics, it just deals with so many headaches. That said, the OS is far from being the most user friendly and not being the most ubiquitous means not everything is supported and every use case isn't covered by a random stack overflow post. Learning how nix works in order to use it has a steep learning curve, but still the benefits are worth it (things are also changing very quickly).
To be honest it's not easy to use. Nix language is quite...different from languages that I ever used. But after I get comfortable with the language, I can't leave NixOS. Declarative OS is so awesome, you can have same OS and configuration across different machine. Not only that, if you want to customize package you don't need to package it yourself, you just need to override or add what you want in the configuration, you can even cherry pick package from unstable channel if you want newer package but want your system to stay in stable channel. Also NixOS is super stable, and upgrading to higher version is painless to.
I'll never be able to leave declarative OS'es again, be it GUIX or NixOS.
It can be a bit special getting into, but you will get completely hooked!
Before NixOS i was primarily using Ubuntu-derivations, and it was such a bother to work on multiple set-ups.
Managing servers is so insanely easy with nixos compared to other distros, and switching DE or WM is literally a single line difference in your config.
I have been a GNU/Linux User since 2009, having used everything from Mint to SuSE to Gentoo. NixOS was the distro that cured my distrohopping. Be warned: it took me quite some time to get comfortable with the configuration language, but ultimately it turned out to be quite rewarding!
I switched to NixOS from Gentoo, so that's a very low bar on 'usability'. From my point of view, NixOS is actually extremely easy to use, contrary to what some of the other reviews say. But I realize that a lot of people will be coming from the perspective of Ubuntu, Fedora, etc. and that may not be true for them.
At any rate, I've found NixOS so much better in both concept and execution than any other Linux distro I've tried (Linux Mint, Ubuntu, Puppy Linux, Debian, Slackware, and Gentoo), but especially Gentoo, which has been my primary OS on my desktop and laptop for a year. The packages actually manage to outclass *all of those* in terms of what software, at least the software I need, is available, despite NixOS being much newer in terms of general adoption and having a smaller (I think) userbase than most. Installing new packages and setting up hardware "just works" without needing to deal with USE flag nightmares and kernel recompilation (I generally clung onto Gentoo for the latter, since I want to be able to control the hardware support in the kernel, but NixOS still does this without needing my manual intervention). An entire system rebuild on NixOS is faster than installing a single desktop program on Gentoo, and the initial installation (text-mode) took me maybe 2 hours even with no familiarity with the Nix language. I have also seen no reduction in performance between Gentoo and the binary-distributed Nix, and average performance might actually be slightly higher because I'm not having to constantly bog down my computer by compiling source code.
Only downsides are that it takes up a lot of space, it can be hard to set up development software (CMake, my beloved), and if a package doesn't work because of a distributor error there's not a whole lot you can do, hence not a 10/10. Still the best iteration of Linux out there so far.
NixOS uses a new paradigm for structuring the system, based on the Nix package manager and providing a very high degree of build reproducibility. NixOS is amazing for developers that are willing to go out their comfort zone and learn new ways. It doesn't take long to learn the basics, but it might take some experience to learn how to package software. It provides great tools for developers, like nix-shell which is able to provide highly reproducible development environments, or tools for building lightweight container images using the same package manager.
This is not an easy distribution and requires effort, the status of the documentation is ok, not great, and it requires looking at packages source codes more than you would normally do in another distro, but the benefits are also numerous. It misses a few things that might be given for granted in other distros, such as graphical installers, but the community is active and working to improving the status.
The concept behind Nixos is interesting, probably even good. The practical downsides however are mountainous: As soon as anything does not run as expected you are left with a hardly-documented "programming" language that has no easily accessible inner logic (and I am a enthusiastic Haskell programmer, therefore declarative stuff is not new to me). There are some resources to be found in the internet that describe the way to work yourself into a being that is able to work with NixOs. As inner peace and the liberation from the cycle of death and rebirth were not my main objectives (an installation to use at the workplace was) I switched after a day of failed attempts to install emacs and texlive with the packages I need.
I've never seen some technical tool so bad, it's just awful - still not possible to easily install Nix inside a docker image by yourself, as the installation script does not allow root execution (but still requires root). Lesson learned : stay away from Nix.
It's a great distro if most of the package you want is already in nixos repo, otherwise you need to build it yourself and, it's not just run "make" command, it must be build with nix way. Since it has different approach than other common distro, when a problem arise, it's very unique, a solution from another linux system most likely wouldn't work, and the poor documentation make it worse. But I like the idea of reproducible configuration, and upgrading and downgrading is painless. It's great for tinkering or used on your personal machine. For work, not so much (unless your team use nixos too)
I use this distribution daily in a production environment. It is not a friendly distro. It does some things well. Builds are reproducible and it is kind to developers in that it supports having different software revisions available. But you have to weigh that with the downsides. Documentation is poor, and use community is nowhere near the size of other distros. You are tied to their particular programming language to manage your system. Trivial tasks on other systems require rebuilding the entire system on nixos. The steep learning curve means that you need to figure extra months of training for every person hired to work on it. Packages are kept in one massive folder and symlinked out. This means that no software is going to have it's files and libraries in the place you would expect. It can be gotten around for most well built software but it's a pain. Everything with Nixos is a pain. I feel like it's more theoretical then practical. It has lofty intentions and does stick to the philosophy it's built around fairly well. Which is probably good for students and programmers who are interested in these things. I feel NixOS makes the tradeoff of ease of use and practicality in favor of dogmatic belief in a programming paradigm. I would not recommend it for use in a production environment. I would also not recommend it as a desktop distribution. Unless you are a programmer and someone who is willing to invest a lot of extra time and effort into it for the joy of it acting in a way you think it "should" you are better off with a different distro.
I am loving NixOS. It is the distribution people want to use but don't know. Learning curve is steep but worthwhile. Seriously, I cannot go back to other distros, it feels wrong.
It is the most exciting linux distro I ever used. You can get make your system whatever you want by editing a single file.. /etc/nixos/configuration.nix. If you don't like it, you can revert back from bootloader.
Once you used to the nixos, other linux distributions will feel like bloated ( .bashrc, fstab, user management, sudoers file, package managenent, xorg settings, etc,. :-(
finally, neither it have older packages like debian stable (which are too old ) nor bleeding edge packages like arch linux ( which are too unstable for production machine ). I find the packages are in the sweet spot ( not too old / not too unstable). You dont have to worry about lack of packages. nix has more than 60000 pkgs and there is also NUR ( nix user repository)
Good execution of an absolutely fantastic paradigm: declarative configuration.
The single biggest benefit declarative system configuration (and therefore NixOS) brings to you: configure once for your use case and replicate on all your devices.
Or define different use cases and deploy as needed anywhere, including share them with your friends.
Especially DW visitors will have a certain focus on system configuration, now imagine that you want to migrate from an old laptop to a new one:
1. run the installer
2. copy your `configuration.nix` (which has evolved with your every configuration step on your old machine)
3. finish install
4. now you have everything exactly like you had it/wanted, no more post-configuration!
(One exception may be some hardware specific functionalities that may need to be tweaked, but only if the hardware (significantly) differs).
This paradigm can be applied both on system and user level, so you don't have to think about what packages you need after a system change ever again.
To make it even easier:
- refactor your `config*.nix` to use-case and hardware specific files
- put our configs in a git repo
Now you literary have a library of complete system setups uniquely tailored to your needs at your disposal, and you can install the complete OS with all chosen settings and programs with literary **one command**.
Ok, there is a learning curve in the beginning, but just so you never have to spend much time on configuration later on, so it's well invested time.
Spanning a tech career over 22 years using macOS to Gentoo I am thrilled to be using NixOS and its's capabilities on all my devices and in all respects I possibly can. It's a distro, it's a package manager, it's a language. I don't even want to compare it to other linux distros because it is simply in a class of its own (not to diminish other OSes and PMs). I am now learning something new every day, taking notes and to reiterate excited about this amazing technology and interested in how the future of compute and human / computer interaction could be changed as this project progresses. Purely Functional.
NixOS is the only system I'm willing to stick with because of its reproducibility, declarative nature, and composability.
With declarative configuration, you can manage your entire system just like managing code.
With reproducibility, you no longer have to deal with strange environment differences (not absolute, but these issues are significantly reduced).
With composability, you can manage your configuration in a modular way. This is especially effective when you need to manage multiple computers because you no longer have to synchronize configurations between different machines by copying them. Instead, you can extract their common parts for unified maintenance and individually maintain the differing parts. Finally, you can combine the different parts, just as you would do when writing any other code.
Using NixOS allows me to continuously improve my skills, and it provides me with a high ceiling, making it feel like second nature to use. In this regard, it's very similar to tools like Vim, Emacs, and Git. If you also enjoy these tools and have experience with functional programming languages, there's a good chance you'll also appreciate NixOS.
Hey there, tech adventurers! Ready to take a whirlwind tour through the neon-lit alleyways of NixOS? Buckle up, 'cause we're diving into an OS that's not just playing by the rules – it's rewriting them.
**Cool Cats of NixOS**
1. **Package Party**: Ever been trapped in dependency limbo? NixOS says bye-bye to that mess. Their package game is like an ultra-chic closet where software can't fight over the spotlight. Multiple versions? No sweat.
2. **Epic Configs**: Kiss your config chaos goodbye! NixOS lets you boss your system around with a slick language. No need to beg text files for mercy – just declare what you want and bam! It's a modern art masterpiece.
3. **Rollback Ready**: Worried about stepping on the wrong upgrade toes? NixOS has your back. It's like an "undo" button for your system. Say goodbye to the days of regret and embrace the zen of easy rollbacks.
**Speed Bumps on the Groove**
1. **Funky Fresh**: Hold onto your hat – NixOS ain't your grandpa's Linux. It's got a style all its own, and that means a bit of a learning curve. If you're a noob, be ready to spin your wheels a bit.
2. **Lonely Road**: NixOS is forging ahead, but the trail might be a bit quieter. Finding help might mean digging a little deeper. If you're used to a bustling crowd, this might feel like a solo dance.
But hey, ain't no party like a NixOS party! If you're down to dance to a different beat, this OS is like that underground club where you discover the next big thing before everyone else catches on. Neon lights, futuristic vibes – NixOS isn't just an OS, it's a state of mind. Whether you're a coding guru or just dipping your toes into Linux waters, this is one spin you won't forget.
Previously tumbleweed was my go to distro, I thought no other distro would ever be good enough or unique enough to make me switch, but nixos is that distro, its very unique, its immutable but unlike many other immutable distro's you can change basically everything about it, you're not just locked into gnome or plasma, or whatever software the distro maintainers give you, if you don't want a full desktop environment and you want to use just a window manager instead then you can, you can even install both and pick and choose what to boot into and not have any of the software from the desktop environment show up when you're in the window manager.
You can even install their unstable rolling release along side their stable fixed release and pick and choose what to boot into, so you can literally run the fixed release and the rolling release of the same distro on the same PC, unlike pretty much every other distro where you have to choose if you want to run either a fixed release or a stable release, so there's no risk when updating or running unstable because you can just boot back into your previous stable version just as easy as it is to boot into an older kernel in the grub menu, you can also install different versions of the same software, all your configs are stored in one or two files, so its a piece of cake to reinstall your system to exactly how it was before, you can even save different config files for different desktops or window managers.
It does require a learning curve if you like to tinker though, and documentation is lacking in some areas, but apart from that its awesome, I recently put nixos on my mothers two laptops because one of them broke when I upgraded debian bullseye to bookworm, now I don't have to worry about an upgrade breaking the system, its kind of like having btrfs snapshots without having to run btrfs.
NixOS is an absolute game-changer! Unparalleled stability and reliability at the cutting edge. The Nix package manager ensures seamless software management and rollbacks. With an amazing community, ultimate customization, and top-notch security, it's the best Linux distro out there! Don't miss out!
NixOS offers deterministic goodness like no other! Thanks to its innovative Nix package manager, you can rest assured that your system will remain consistent and reproducible across installations and updates. This means no more unexpected surprises or conflicts, making NixOS an absolute joy to use. Say goodbye to dependency headaches and embrace a world of predictable, reliable computing bliss!
Among the Linux distributions I've used so far, NixOS is by far the best. It has all the features I've been looking for and couldn't find before. Linux means freedom to me. I'm not afraid of making mistakes with NixOS, and that makes me feel even more free. I used to frequently switch distributions, but now I believe I will spend many years with NixOS.
Give NixOS a chance without a doubt, you won't regret it. Perhaps you, too, will find what you have been searching for, just like I did for years.
From my point of view it is the most versatile operating system. It is so well built from the architectural stage that it competes with the very powerful operating systems of the past and present.
Traditional Windows and UNIX operating systems do not have this paradigm, I wish they did.
Here we are talking about the reproduction of things; you can quickly have a system prepared with everything you had 20 years ago, so that you can feel the experience from then at least from time to time.
You can go ahead with the updates without worrying. if you compare the operating systems Ubuntu, Debian, RedHat, AlmaLinux, Fedora, CentOS, Arch Linux and others with NixOS. You will always have a broken OS from time to time, due to incompatibilities; which does not happen with NixOS.
We don't like things that don't work and are broken!
Notice for the other Linux operating systems, it should improve the user experience and configuration.
You have your own build system, which gives you a lot of freedom to build things.
Even if it's hard to learn, it's worth it. you know why it's worth it, because you're a programmer and you can learn new and beautiful things in this life.
A powerful system that can be customized.
You can go back in time to boot for the configuration you want, which gives you a fantastic experience.
You can have multiple versions of the same program with small changes made by you; just slightly modifying some derivatives.
You can go to different configuration branches to experience old and new things or complicated hardware architectures.
You can have what you want with this operating system. Because this OS preserves the Linux philosophy; you to be the master of the operating system, and the system to do exactly what you want.
The UX/DX experience is quite good. A reliable system with documentation full of examples.
Come on Linux community, let's make this operating system a flagship operating system.
I want this operating system to be very attractive like Android, to be used by many people, to have many AI and Blockchain capabilities.
From my point of view it is an operating system from the future.
And I will always use it from now on.
Thank you to the Nix community, for what achievements you have had, have and will have.
I will stay with you.
I wish that whoever reads this note, will come back here again and share this further.
Has been a rock solid distro for me. Has a installer these days but to use you have to learn the nixos language to make use of nix. If I want to setup dev env I have to read more.
Their wiki and the search for packages often get you the rest of the way to your goal.
Their stable repo is nice if you just like to have two major releases per year. And minimize the update cycles.
Nix has had more prebuilt kernels then arch repo, I think there is enough good software without adding anything.
I use some flatpaks for steam and games, and I got what I need.
this is a good distro to use. This distro has multiuser package management (system packages, system wide local packages, and user wide local packages) ability to roll back with ease, it is immutable, and it is quite up to date. There are also tons of packages for nixos. NVIDIA works great on nixos, broadcom wifi drivers work great on nixos, flatpaks work great on nixos (there is a way to fix the mouse icon issue in flatpaks) You also don't have to deal with dependency hell on nixos, you can have multiple versions, each user can have its own packages without needing root access, and it is a very reliable linux distro.
I was afraid to use NixOS because it is considered an advanced distro, but the installation was smooth thanks to the Calam installer. I have been using it for a week now, and the results are satisfactory. Just one problem, I have had difficulty integrating NixOS with the use of another package manager like PIP. I liked this new paradigm of handling packages and configurations. I always considered version control and dependency management a mess in Linux. NixOS provides a system reordering. Furthermore, it allows me to better plan my configurations and have confidence in its stability in the long term.
I'm currently using EndeavourOS and NixOS is currently on everyone's lips, so I thought I'd have a look for myself. The installation went smoothly, because there is a graphical installer, which as you are used to, the basics can be configured (language, user, DE, partitioning, ...). When I was then booted I wanted to build and install my system via the declarative config file of nix of course. This takes longer than usual, but once you have created this file, you can reuse it for every installation. For startup and important info I used the "Getting Started With NixOS" guide from It's FOSS, I can recommend it to anyone switching over.
And what can I say, I haven't used it for very long, so I can't say anything about stability yet, but so far I like it very much and I am considering using it as a daily driver.
The only criticism I can think of so far is that if you don't know NixOS at all, you won't get any help when starting the OS. You have to look for it yourself. But since this is an advanced distro, I think that's ok.
By far paradigm shifting and certainly the future of operating systems.
No more needing to reinstall your OS each 2 years or fixing package/lib incompatibility issues!.
Despite the documentation problem everyone in the community says, I believe that tooling should be more consistent with more guides and examples on how to use it and which benefits users can gain from that, I say that because the community is split to those who use flakes a long with nix commands, and those who don´t, which makes kinda complicated to wrap things in your head.
Language is not perfect but far more cool and productive than using yaml, tooling is not perfect but with time it will improve a lot (see Nix language server, LSPs formatters, NixOps lorri home manager and et cetera...).
Community is getting larger and larger and more distros are adopting the idea of an immutable operating system, it seems that things are getting better.
For those who are beginning right now, take your time and don't rush to do all things once at a time, nix sure has a lot of capabilities but it's important to understand why it's so good. I recommend reading a blog series that helped me (even tho I use it a long time ago) to understand some key concepts I didn't understand before, it's called "Nix from First Principles: Flake Edition" from Tony Finn
I have been using linux systems for 10 years. Basically fedora, arhlinux, debian, opesuse, dozens of their various derivatives. I even ventured into the territory of freebsd and gentoo. I am an engineer and self-taught in the world of IT, and with that I see the greatness of nixos. I installed it for the first time a few weeks ago. Getting the basic system up and running doesn't require a lot of effort, but it's just the surface and moving on requires hard learning, especially from those who don't have programming experience. The cleanliness, lightness, flexibility and stability of the system are impressive compared to traditional gnu/linux solutions. You get a special thrill when you work with it, on it. I appreciate that it is resource-based, without dependency chaos, and creative. These directly and indirectly free up a lot of development energy, especially if there will already be a large number of automated modules available to users on a particular topic. I find the integration of non-nix packages particularly problematic. By simplifying this, you can go a long way. It has a bright future. I hope it will not be contaminated with flatpak and snaps technologies and will remain consistent.
Once you start to understand it and liking it, you don't want to leave the Nix ecosystem.
Its most unique feature: the feeling of freedom it provides, allowing users to FEARLESSLY modify configurations without risking system damage.
With the rollback feature, you return to a previous working state as easily as selecting one of your previous NixOS "generation.". That's it!
Although there's a learning curve to Nix language, for me the key is to start simple and build upon it gradually.
The most complex type, a set, (think of it a some named fields containing a value that is either a string, an interger, a version number, a url, a function... or again a set) is used super-frequently, but understanding it makes mastering the Nix language and ecosystem really achievable.
As you become familiar with it (just play with it regularly), you'll realize Nix Language is DIFFERENT, not DIFFICULT.
With my last laptop I began using Ubuntu for convenience, but soon installed the Nix package manager due to its advantages in development. Eventually, I re-installed NixOS in dual boot and haven't looked back since. Now, I even consider only using Ubuntu as containers within NixOS.
In summary, NixOS offers an unparalleled sense of freedom and flexibility, making it a worthwhile endeavor for those willing to learn its unique language.
Last advice for novices: Dont mistake Nix Language syntax with C/Java/Javascript. Here curly braces and semi-colons means a set, it's TOTALLY DIFFERENT. Indeed it is so much SIMPLER... but hey... different...
A bit of a learning curve, but once you get your head around it, it's by far the most exciting, promising and technically sound distro you'll ever use.
You are not convinced? Try nix-shell -p supertuxkart and play the game without installing it permanently on your system!
Still not sure? Then copy your configuaration.nix file from your github repository and reproduce your system to any computer you like.
And the list goes on... I haven't even touched on the experimental features, such as flakes!
This is an extreme operating system that I want to love. I'm grateful it exists. I really like the nix package manager. That said, unless you have already made the investment, you are going to spend a lot more time than you want to learning how to work around NixOS. In many respects it is NOT gnu/linux, despite meeting the criteria when you look at the kernel and software running on it. That is because it bucks generations of conventions when it comes to how you install and run software. NixOS follows a radical philosophy of dependency management and makes heavy use of linking to create virtual environments. There is no opt-out of this, the operating system is really built this way.
Definitely worth installing on a second machine or as dual boot if you are interested in a long road of learning. Definitely not worth installing as your primary OS if you have used other operating systems (intentionally left broad: eg, Ubuntu, Windows, Gentoo, iOS) before and want something you understand and can use.
NixOS is a bit of a rabbit hole, but it's one that will make you wonder why every other distro isn't doing it this way!
The nix package manager is neat & worth checking out in it's own right, if you're not looking to completely revamp your entire system setup.
However, the real achievement by the Nix team is NixOS - I will never use another OS.
Having your entire system declared in a version-controlled file is obviously beneficial. Rollbacks allow for confident experimentation, knowing that bricking your system is really only bricking that *version* of your system, and can be reverted easily upon reboot. It's a tinkerer's dream OS.
It has a very steep learning curve, once you get into the realm of flakes & functions. However, your configuration.nix file really doesn't need all that. You can do perfectly fine with a single config file describing your whole system, from what file system & kernel to use all the way up to specific versions of user packages. Drop your laptop into your bathtub? You no longer have to spend a whole day getting your system back the way you like it. Just install nixos, git clone your config repo, & `nixos-install`. Done!
In my opinion, NixOS is a great OS. This is because NixOS, other than Guix, is the only OS that offers declarativity while still being good.
NixOS is very organized due to all your settings being inside files. For package installation, you add the package to a list inside a file.
However, with the new addition of Nix Flakes, everything becomes harder to install. Due to this, I give the OS a 9/10.
Also, this OS is pure preference. Even if the OS gets good reviews, you might not like it. Maybe you like immutability and automatic package and dependency management. Your choice. Personally, I like declarativity and package version management.
If you want to use NixOS, make sure to install home-manager. Otherwise Nix is kinda bad.
Holy cow this is this bad. This is not for beginners. There is just way too much manual work with this one.
Not exactly certain what or who this is for. As a daily driver, no way.
With so many choices out there, this one is not even on my radar.
Straight away, had quite a few hardware issues which honestly was quite surprising.
Performance was also lacking. I suppose due to the hardware issues.
Tried the KDE edition which out of the box was missing Discover. There is no Software Center either.
Reminds me of EndevourOS which is equally terrible.
Sorry not for me.
good, but room for improvement
And one day you will definitely sit in a puddle, because that stuff could broke something on your system.
In a generic distribution there is no any easy way to go through the issue, but in NixOS you will manage it by using only
one command "nixos-rebuild switch --rollback"! And that is it. This is like git in programming world:
your system in one stable state, you can look around, make experimental changes and commit them, and you can discard any commits you make in that state without impacting any branches by performing another checkout.
not really for beginners, but recommended
After a terrible learning curve, you begin to learn the power of NixOS : the system is quasi-indestructible and infinitely reproductible...
1. You destroyed something ? First, congratulations, it's difficult because everything is read-only. But no problem, just reboot to the previous version. Everything stays intact until you "collect-garbages" (a nix command).
2. You need Firefox with 1500 strange options and different ones for 150 different users ? No problem, when configured the first time, the next deployment are instantaneous. No need to re-set the settings every time you test something or add a new user.
Because your system AND users AND sysconfigs AND userconfigs AND applications AND apps configurations are declarative. A simple nixos-rebuild and there you go, a fresh new system, ready to use.
To me, this is the end-all-be-all OS. It's the only OS I've encountered so far that allows *complete customization by configuration*. The fact that builds are reproducible means that I can have complete confidence that the OS will always work. If a build fails? Revert a version.
The only downside is that the learning curve is steep. But come to think of it, that's not the fault of the OS. That's caused by the mess of the current ecosystem that NixOS is (in my opinion) the only sane answer to.
Giving it a rating of 10 comes from the fact that my life as a developer and FOSS engineer has become massively more productive and straight-forward. Nix flakes are a gift to anyone working with software. Thanks!
Having spent a number of years with ArchLinux, over the last year or more I have moved to NixOS as my main driver for servers and notebooks. I also use it to compose docker images etc.
I like how the community shares their .dotfile configurations and how the makeup of the configurations is how you declaratively manage the system. It just feels much tidier than the imperative methods that are used in most desktop systems.
It takes a little of study to come to grips with the Nix language and the documentation could be better - but the community is excellent.
There might be the odd trade-off required when using proprietary packages that are not compiled for NixOS. I hear there are ways around that too, but not something that has bothered me enough yet to spend time to deal with it.
So I recently left the Windows world and hopped back into Linux, which I used to use a lot back between 2012-2015.
I have been distro-hopping like crazy for the last several weeks. I knew I wanted something more advanced than Ubuntu. The problem is that I am also a distro minimalist, meaning I want a naked, raw operating system. Something without any apps installed other than a desktop. I had remembered reading about NixOS years ago, but never gave it a try. I guess now was the time.
Here's what I appreciate about Nix. The graphical installer makes getting started easy. I love the simplicity and cleanness of managing the installed system. I personally do not like Firefox as much as I like Brave. Simply go into the configuration file, delete the line containing Firefox, and add Brave. Boom. Do a simple rebuild of the system, and your system now never even knew Firefox was installed.
Ironically, I chose to add apps using Flathub which also runs in a containerized manner, but does eliminate the need to edit the configuration file every time I want to add an app.
I don't like that Nix doesn't let you choose what file system to use at install time, at least with the auto format function. I also don't like that some of the most necessary commands are hidden away in documentation or on chat boards. For example, how do you update the packages? It isn't as obvious. Minor nitpickings, but I chose the KDE desktop, and there is a broken icon down in the lower left corner. I just deleted it.
I'm still learning about NixOS, but I feel like this is the system to hang with for the long term. Tons of power and flexibility. You have the option between a stable updates channel or a more rolling distro type of channel, called unstable. I would recommend this system strongly.
I finally tried it out. The installer takes away some pressure, as I wasn't confident that I could jump in and set it all up correctly from scratch. Now that I had this base Gnome install though, I realised that the packager and config file setup are not at all as scary as I thought they would be. In fact, it's pretty easy to get your head around and just start building up your OS like you would do with any other distro. The packager is brilliant. It's fast and immensely powerful, and I haven't even delved into ad hoc shell environments and all that jazz yet. A lot of those tools are more geared towards developers anyway, which I'm not any more. And special heads-up for the documentation.. it's really, really good.
The default Gnome is great (I hope the other desktops available are as good as this). It's clean and it's stable and fast. It's the only distro apart from Ubuntu-based ones that automatically found and set up by Brother printer and scanner.
The amount of packages available is awesome as well. The whole thing feels like the stability of Debian with the cutting edge of Arch and the updated Gnome of Fedora. It's incredibly well thought-out. I hope to get my new 'built for linux' laptop soon. I'll be able to try out how easy it is to replicate my current setup on a new machine.
For anyone hesitating to try it out, thinking it might be too messy to deal with, I can assure you that it isn't. I highly recommend this distro.
There is a certain demographic that NixOS will appeal to, as is evident in the reviews here: expert users who used to distro-hop, always searching for something that works reliably for all their nontrivial needs. Many, myself included, end up settling on NixOS. In this review I'll try to outline why I think that is more of a pattern than a fluke.
NixOS strikes a very good balance between "it just works" and DIY:
"It just works":
- nixpkgs is the largest repository of Linux software in existence, both in number of packages and in number of up-to-date packages
- especially with the graphical installer, installing NixOS to a graphical system is as easy as with all other graphical distros
DIY:
- experimentation without fear of messing up the system (with rollbacks and GC) is rightfully in the spotlight
- Nix is source-based, so you can patch packages on the fly
- declarative configs mean that at the end of the day, all your hard work can be saved to version control, so it doesn't have to be done again, by you or anyone else
- a central configuration keeps it easy to remove cruft that invariably accumulates in imperative OSes
Many DIY folks try to reinvent a subset of NixOS through hand-crafted configs that copy and sync their dotfiles, install packages, etc. Nix formalises this into something easier to maintain and reason about.
The biggest barrier to entry is of course the steep learning curve. The only way to use NixOS is to learn the Nix expression language and surrounding idioms for building software. It takes about a year or so to attain proficiency, or about half that if you have someone helping you. But like with all foundational skills, it pays dividends in the long run.
The benefits of learning Nix:
- ability to build and run any software project with Nix, on any distro and even macOS
- ability to run software without installing it or any dependencies
- by learning how to use the system you also learn how to contribute to nixpkgs / NixOS itself, which is how it has become so large in the first place
- learning the functional paradigm makes you a better engineer overall
I don't expect that the configuration language will be abstracted away (e.g. by GUI) any time soon. But with improved documentation, the learning curve might become more approachable to the general audience. The community is exceptionally active and welcoming to contributions.
I tried many of different Linux distributions before and was really happy to meet NixOS suddenly.
There is no doubt that the future of Linux World is NixOS.
In my opinion it will take not much time till NixOS becomes widely used around the whole planet.
IMHO the greatest feature of that distribution is "rollback" possibility. It is awesome.
Imagine that you have installed something that is not exactly you need, you forgotten to prune it
and kept going your searches. Once you've found it and of course you completely forgot about that previously installed
unneeded stuff. And one day you will definitely sit in a puddle, because that stuff could broke something on your system.
In a generic distribution there is no any easy way to go through the issue, but in NixOS you will manage it by using only
one command "nixos-rebuild switch --rollback"! And that is it. This is like git in programming world:
your system in one stable state, you can look around, make experimental changes and commit them, and you can discard any commits you make in that state without impacting any branches by performing another checkout.
I recommend it for everyone.
Like many of the other reviewers, I have also used, with varying degrees of success and fidelity, many of the popular Linux distributions (Debian, Fedora, Centos, Ubuntu, OpenSuse, KDE Neon, Mint, Arch), as well as some of the underdogs now farther down the list as well. For the record, I probably used Gentoo/Funtoo the longest (c. 15 years), which I finally abandoned[1], but only after having learned a great deal about how Linux works, about its strengths as well as its weaknesses.
NixOS is by far the most interesting distribution I've used to date, and I think -- might be the future of the Linux desktop. Why? NixOS is, quite literally, an OS built completely around its package manager (Nix and the expression language that supports it). It appears to take aim at solving a key problem of most Linux distributions -- the fact that application software is developed and updated at varying speeds, and those applications use versions of key libraries, which themselves are developed independently and thus have their own production timelines, further complicated by the relentless advent of new hardware, and the leap-frogging between the various elements create inconsistencies (at times quite circular) that can become difficult to overcome (so-called dependency hell). This difficulty seems to me the key problem that NixOS targets, and by doing so places **application software** -- and the resulting experience users derive from it -- at the very core of everything.
Many reviews more than a year or so old speak of weakness in documentation. Although still not perfect, the depth and extent of documentation has evidently improved significantly in the meantime. The user group is still small, but growing and (at least in my experience) quite responsive. The installation itself demands only that you understand something about disk partitioning, and are able to customize an configuration file from a generic template to fit your needs. But the key parts are already there: to get a machine up and running is not necessarily a struggle. The struggle really comes later, in gaining a mastery of the Nix language sufficient to fully understand how the system really works, and how to use it create a development environment. This is where better documentation comes in. A key point, however, is that once a satisfactory `/etc/nixos/configuration.nix' file is obtained, a user could replicate this setup across many machines, making it possible to obtain a consistent desktop experience.
NixOS may not be for everyone, and understanding its functionality is not trivial, but such hurdles will also likely become less substantial with greater user adoption and deeper documentation. I feel it has tremendous potential, and the investment has been well worth it thus far for me. I'm very grateful to Distrowatch for showcasing it.
[1] Getting bogged down with one too many KDE-QT library issues, and recognizing I was spending far less time _using_ the system than I was recompiling it.
I have installed most Linux distributions over the last 10 years, however, I have to admit that NixOS is definitely something unique.
I have this installed on my two laptops with quiet different specs running Gnome3 with a fresh install the memory used is around 650MB this is the lowest I have seen. This has enabled me to run NixOS on my old Dell that has only 2GB of ram and 32GB of emmc, on which it runs fast enough to be usable.
I have taken the config from that and used it on my other Dell that has 16GB of ram and a 500GB SSD, it flies but it made setting up the second machine really simple.
Pros: -
* Dead easy to install using the Calamares installer.
* Good choice of DEs.
* An opportunity to learn something new.
* Over 80000 packages available in the repository
Cons: -
* You do need to be comfortable with editing a config file, but once you get your head around the concept, you'll love NixOS
I am loving NixOS surprise yourself and give it a go!
I installed nixos-gnome-22.05.342.a634c8f6c1f-x86_64-and even though it says Gnome, it offers several desktops. I chose Xfce. Everything went smooth. Only thing I miss is Synaptic. the nix-env is similar to apt-get, but itI is always better. to use a graphic too;.There are a few things missing from their repo, alacarte and aisleriot solitaire come to mind. I don't understand what being reproducible means. I have not experienced their community yet. This is my first day testing Nix. I think it shows promise.
That's the way to manage systems. (Nearly) everything can be declared from code. Reproducable, gitops-able, very nice.
With the remote-deployment tools you'll be able to manage a lot of systems without any hassle. You'll be able to move forward very fast because of the recovery concept which comes with the versioning with nix.
The community is very active. You'll find nearly every tool you'll looking for.
Give it a try! Even if the learning courve is steep and you'll have to finger out the special nix syntax. It's worth it!
This distro is different to all other distros in that it has a modern way of managing it. You manage it like a single system, through a single configuration construct. Your configuration can be copied to another installation and will adopt all the configuration. It is idempotent, deterministic, it is how modern Linux should be. I have converted all of my installations over the NixOS with a common set of configuration across them all. Take the DRY (Don't Repeat Yourself) mentality of programming to system administration. The downside of NixOS is the poor documentation. The documentation is getting better and with more people using NixOS it will continue to improve.
Best thing ever, I can't switch back. My whole system is reproducible now, which allows me to have it running on multiple machines without additional effort. Awesome.
After using NixOS, going back to the usual linux distros is a pain. In my opinion, the nix approach is a large improvement over the usual "get the package and hope it works" approach. Reproducibility is very important for ergonomics, it just deals with so many headaches. That said, the OS is far from being the most user friendly and not being the most ubiquitous means not everything is supported and every use case isn't covered by a random stack overflow post. Learning how nix works in order to use it has a steep learning curve, but still the benefits are worth it (things are also changing very quickly).
To be honest it's not easy to use. Nix language is quite...different from languages that I ever used. But after I get comfortable with the language, I can't leave NixOS. Declarative OS is so awesome, you can have same OS and configuration across different machine. Not only that, if you want to customize package you don't need to package it yourself, you just need to override or add what you want in the configuration, you can even cherry pick package from unstable channel if you want newer package but want your system to stay in stable channel. Also NixOS is super stable, and upgrading to higher version is painless to.
I'll never be able to leave declarative OS'es again, be it GUIX or NixOS.
It can be a bit special getting into, but you will get completely hooked!
Before NixOS i was primarily using Ubuntu-derivations, and it was such a bother to work on multiple set-ups.
Managing servers is so insanely easy with nixos compared to other distros, and switching DE or WM is literally a single line difference in your config.
I have been a GNU/Linux User since 2009, having used everything from Mint to SuSE to Gentoo. NixOS was the distro that cured my distrohopping. Be warned: it took me quite some time to get comfortable with the configuration language, but ultimately it turned out to be quite rewarding!
I switched to NixOS from Gentoo, so that's a very low bar on 'usability'. From my point of view, NixOS is actually extremely easy to use, contrary to what some of the other reviews say. But I realize that a lot of people will be coming from the perspective of Ubuntu, Fedora, etc. and that may not be true for them.
At any rate, I've found NixOS so much better in both concept and execution than any other Linux distro I've tried (Linux Mint, Ubuntu, Puppy Linux, Debian, Slackware, and Gentoo), but especially Gentoo, which has been my primary OS on my desktop and laptop for a year. The packages actually manage to outclass *all of those* in terms of what software, at least the software I need, is available, despite NixOS being much newer in terms of general adoption and having a smaller (I think) userbase than most. Installing new packages and setting up hardware "just works" without needing to deal with USE flag nightmares and kernel recompilation (I generally clung onto Gentoo for the latter, since I want to be able to control the hardware support in the kernel, but NixOS still does this without needing my manual intervention). An entire system rebuild on NixOS is faster than installing a single desktop program on Gentoo, and the initial installation (text-mode) took me maybe 2 hours even with no familiarity with the Nix language. I have also seen no reduction in performance between Gentoo and the binary-distributed Nix, and average performance might actually be slightly higher because I'm not having to constantly bog down my computer by compiling source code.
Only downsides are that it takes up a lot of space, it can be hard to set up development software (CMake, my beloved), and if a package doesn't work because of a distributor error there's not a whole lot you can do, hence not a 10/10. Still the best iteration of Linux out there so far.
NixOS uses a new paradigm for structuring the system, based on the Nix package manager and providing a very high degree of build reproducibility. NixOS is amazing for developers that are willing to go out their comfort zone and learn new ways. It doesn't take long to learn the basics, but it might take some experience to learn how to package software. It provides great tools for developers, like nix-shell which is able to provide highly reproducible development environments, or tools for building lightweight container images using the same package manager.
This is not an easy distribution and requires effort, the status of the documentation is ok, not great, and it requires looking at packages source codes more than you would normally do in another distro, but the benefits are also numerous. It misses a few things that might be given for granted in other distros, such as graphical installers, but the community is active and working to improving the status.
The concept behind Nixos is interesting, probably even good. The practical downsides however are mountainous: As soon as anything does not run as expected you are left with a hardly-documented "programming" language that has no easily accessible inner logic (and I am a enthusiastic Haskell programmer, therefore declarative stuff is not new to me). There are some resources to be found in the internet that describe the way to work yourself into a being that is able to work with NixOs. As inner peace and the liberation from the cycle of death and rebirth were not my main objectives (an installation to use at the workplace was) I switched after a day of failed attempts to install emacs and texlive with the packages I need.
I've never seen some technical tool so bad, it's just awful - still not possible to easily install Nix inside a docker image by yourself, as the installation script does not allow root execution (but still requires root). Lesson learned : stay away from Nix.
It's a great distro if most of the package you want is already in nixos repo, otherwise you need to build it yourself and, it's not just run "make" command, it must be build with nix way. Since it has different approach than other common distro, when a problem arise, it's very unique, a solution from another linux system most likely wouldn't work, and the poor documentation make it worse. But I like the idea of reproducible configuration, and upgrading and downgrading is painless. It's great for tinkering or used on your personal machine. For work, not so much (unless your team use nixos too)
I use this distribution daily in a production environment. It is not a friendly distro. It does some things well. Builds are reproducible and it is kind to developers in that it supports having different software revisions available. But you have to weigh that with the downsides. Documentation is poor, and use community is nowhere near the size of other distros. You are tied to their particular programming language to manage your system. Trivial tasks on other systems require rebuilding the entire system on nixos. The steep learning curve means that you need to figure extra months of training for every person hired to work on it. Packages are kept in one massive folder and symlinked out. This means that no software is going to have it's files and libraries in the place you would expect. It can be gotten around for most well built software but it's a pain. Everything with Nixos is a pain. I feel like it's more theoretical then practical. It has lofty intentions and does stick to the philosophy it's built around fairly well. Which is probably good for students and programmers who are interested in these things. I feel NixOS makes the tradeoff of ease of use and practicality in favor of dogmatic belief in a programming paradigm. I would not recommend it for use in a production environment. I would also not recommend it as a desktop distribution. Unless you are a programmer and someone who is willing to invest a lot of extra time and effort into it for the joy of it acting in a way you think it "should" you are better off with a different distro.
I am loving NixOS. It is the distribution people want to use but don't know. Learning curve is steep but worthwhile. Seriously, I cannot go back to other distros, it feels wrong.
Best linux distrobution ever!
Reason : Basically unbreakable!, Perfect for work computers!
TUXEDO
TUXEDO Computers - Linux Hardware in a tailor made suite Choose from a wide range of laptops and PCs in various sizes and shapes at TUXEDOComputers.com. Every machine comes pre-installed and ready-to-run with Linux. Full 24 months of warranty and lifetime support included!
Learn more about our full service package and all benefits from buying at TUXEDO.
Advertisement
Star Labs
Star Labs - Laptops built for Linux.
View our range including the highly anticipated StarFighter. Available with coreboot open-source firmware and a choice of Ubuntu, elementary, Manjaro and more. Visit Star Labs for information, to buy and get support.
Shells.com
Your own personal Linux computer in the cloud, available on any device. Supported operating systems include Android, Debian, Fedora, KDE neon, Kubuntu, Linux Mint, Manjaro and Ubuntu, ready in minutes.
Starting at US$4.95 per month, 7-day money-back guarantee
Copyright (C) 2001 - 2023 Atea Ataroa Limited. All rights reserved. All trademarks are the property of their respective owners. Privacy policy. Change privacy settings. DistroWatch.com is hosted at Copenhagen.
Contact, corrections and suggestions: Jesse Smith
Tips: bc1qtede6f7adcce4kjpgx0e5j68wwgtdxrek2qvc4 86fA3qPTeQtNb2k1vLwEQaAp3XxkvvvXt69gSG5LGunXXikK9koPWZaRQgfFPBPWhMgXjPjccy9LA9xRFchPWQAnPvxh5Le PayPal.me/distrow • Patreon.com/distrowatch