this post was submitted on 19 Jun 2023
61 points (98.4% liked)

Linux

47283 readers
751 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hi everyone!

I saw that NixOS is getting popularity recently. I really have no idea why and how this OS works. Can you guys help me understanding all of this ?

Thanks !

top 50 comments
sorted by: hot top controversial new old
[–] Tilted 21 points 1 year ago (10 children)

I used NixOS for a couple of years. My experience is like this:

  1. It is a rolling release (mostly)
  2. You write a declarative configuration for your system, e.g., my config will say I want Neovim with certain plugins, and I can also include my Neovim configuration
  3. It is stable, and when it breaks it is easy to go back
  4. Packages are mostly bleeding edge
[–] [email protected] 5 points 1 year ago

Note that there's both the rolling unstable channel and a bi-annual stable release channel.

[–] [email protected] 5 points 1 year ago (2 children)

The configuration stuff seems great. I guess it reduce the struggle of porting a full config from one pc to another right ?

[–] Tilted 9 points 1 year ago

Yes absolutely. It is really great. It is also a source of frustration, e.g., missing configuration options, non-obvious options and so on. Overall it works well.

load more comments (1 replies)
[–] [email protected] 4 points 1 year ago

Important to note that NixOS has both a rolling release and point release version.

load more comments (7 replies)
[–] [email protected] 20 points 1 year ago (2 children)

everyone

Now that's what I'd call a stretch...

[–] [email protected] 11 points 1 year ago

Indeed, why would I switch, already have been running NixOS for 10+ years.

load more comments (1 replies)
[–] [email protected] 10 points 1 year ago* (last edited 1 year ago) (2 children)

Here's the straightforward version of why I use it:

  1. The entire state of your operating system is defined in a config file, and changes are made by changing the config file. This makes it super easy to reproduce your exact system many times and to know where all the many different configuration elements that describe your system are located.

  2. Updates are applied atomically, so you don't have to worry about interrupting the update process and if it fails, the previous state of your system is still bootable. By default every time you change something, you get another option in the boot menu to roll back to.

  3. Making container-like sub systems is super easy when you're familiar with nix, so you can have as many different enclaves as you like for different software versions, development environments, desktop setups, whatever without taking a performance hit. Old versions of stuff are very accessible without breaking your new stuff.

  4. The package manager has a lot of software and accessing nonfree stuff is straightforward. Guix looks rad, but nix ended up being the more practical compromise for my usecase. I didn't want to have to package a heap of software the moment I made the switch.

load more comments (2 replies)
[–] [email protected] 8 points 1 year ago (1 children)

I have been using for years on servers. My lemmy instance is hosted on it.

Although for desktop I had too many issues back in 2019 so I ended up back to Arch Linux and then EndeavourOS

Would be fun to try again to use it on desktop

load more comments (1 replies)
[–] [email protected] 8 points 1 year ago (5 children)

It's insanely stable but you have to have a lot of linux/programming knowledge to do even the simplest things like installing/updating your software or making little tweaks. I played with it for hours the other day and I'm just too dumb to figure it out lol I think it's just a super stable highly customizable distro for power users and a lot of people like that. If you can get over the learning curve it's a pretty powerful and unique os

load more comments (5 replies)
[–] [email protected] 7 points 1 year ago (2 children)

I keep seeing trends with Linux distribution like teenager looking for new fashion.

I think it’s mostly the very young Linux user who hope from one distribution to the another over and over whereas many just stick with what they got : Ubuntu, Debian, mint, maybe fedora.

NixOS is certainly interesting tho.

load more comments (2 replies)
[–] [email protected] 7 points 1 year ago* (last edited 1 year ago) (3 children)

NixOS is a fully declarative and reproducable system.

What this means is that you can create a single configuration.nix, which includes all of your applications, settings, aliases, environment variables, user account + groups, etc., and copy that over to another NixOS machine (including different architectures) and run nixos-rebuild boot to completely reproduce the system on that other machine.

The nix package manager is also really good at telling you if the configuration will break anything, where, and how, and refuses to apply until the issue is fixed.

Also every time you use nixos-rebuild, it creates a new generation of your NixOS install meaning if something ends up breaking, you can reboot into the old system.

So for example, I can theoretically have the exact same configuration across my desktop, laptop, phone, server, etc., minus the automatically generated hardware-configuration.nix, which is specific to the hardware.

Also Nix supports package overlays, which means that you can modify an existing package while the maintainer still keeps it up to date.

load more comments (3 replies)
[–] [email protected] 7 points 1 year ago (1 children)

It's in no way "everyone", just a vocal minority.

[–] [email protected] 6 points 1 year ago* (last edited 1 year ago) (1 children)
load more comments (1 replies)
[–] [email protected] 6 points 1 year ago* (last edited 1 year ago) (5 children)

I daily drive GNU Guix instead, and I would strongly recommend any emacs and/or lisp enthusiasts interested in the benefits of functional, reproducible, declarative, and hackable system management to give it a try!

load more comments (5 replies)
[–] [email protected] 6 points 1 year ago (3 children)

Because it’s the latest Cool Nerd Thing™ like Arch before it, and Gentoo before that. Most of the people raving about it probably don’t have much use for its features.

[–] [email protected] 5 points 1 year ago

The features themselves are very useful for basically any user. Whether they are worth the non-standardness and issues that come with it is another question.

load more comments (2 replies)
[–] [email protected] 5 points 1 year ago

NixOS is the only[1] Linux distribution that feels like it is build around Free Software. Meaning upstream Git repositories can be treated as first-class citizen and installed directly without convoluted binary packaging system (that still exists in the background, but only as cache to speed up build times). Nix also makes it very easy to upgrade, downgrade, side grade, patch, override dependencies or otherwise change packages, or even just keep multiple versions of the same software around. Something many other distributions still struggle with or make completely impossible with the distributions own tools. Even the act of installing software in Nix becomes somewhat unnecessary, as you can just run software straight from the Git repository.

And best of all, it's all based on a very simple and transparent packaging system, if you ever used GNU stow, kind of like that, it's all held together with a bunch of symlinks and some environment variables. No contains, no ostree, none of those ugly workarounds, just plain old Unix stuff that you can find and grep through as much as you like.

Simply put, NixOS puts the joy back in Linux, while other distributions like Ubuntu try to actively trash their reputation with a proprietary App store and others like Debian just stagnate around and are still stuck with the same old packing system that was state of the art 25 years ago and hasn't improve much at all since than. NixOS just provides a dramatically cleaner and simpler approach that also happens to be vastly more powerful.

Another cool thing, if you don't wanna switch distributions just yet and reinstall the full NixOS, you can just use the Nix package manager itself on whatever distribution you are already using.

[1] There is also GNU Guix, which is basically a reimplementation of Nix with Guile/Scheme

[–] [email protected] 5 points 1 year ago

nah

didn't have enough time during the last half a decade to learn yet another thing

might be better fit than my current debian setup - but how would I ever know, since my current thing is good enough?

[–] [email protected] 4 points 1 year ago (4 children)

SYMLINKS

SYMLINKS EVERYWHERE

(also 6000 packages intalled on my system for some reason lol)

load more comments (4 replies)
[–] [email protected] 4 points 1 year ago (1 children)

I'm using Void Linux and see no reason to move over to NixOS. The concept seems cool though.

[–] Shareni 4 points 1 year ago (1 children)

The nice thing about nix and guix is that they're package managers, and so you get most of the benefits even if you're using a different OS.

I'm currently transitioning from Doom Emacs to my own config that's using guix. So far I've got a single manifest that contains all of the Emacs and Linux packages that are needed to run the config.

The guix part is really simple, but it allows me to reproduce my config on any Linux distro by cloning a repo and running a guix one liner. A different one liner can run it in a containerised environment. Also, I can roll back to any previous time I've updated something through that manifest, or pin a specific version of a package.

And that's just scratching the surface of what you can do.

load more comments (1 replies)
[–] [email protected] 4 points 1 year ago

because it's good as hell and i don't want to have to spend time having to rebuild and reconfigure fresh OS installs or risk breakage when I could just use a config file that I know already works

load more comments
view more: next ›