I'm sick of Windows, so I decided to switch to Linux instead. After careful consideration, I came up with two options: NixOS and Fedora. The question is: which one should I choose, and why?
>>106465217Your options are wildly different unless you specifically mean Fedora Atomic.Braindead simple setup: FedoraImmutable Setup: NixOsAltho i'd probably do NixOS in a VM first just so you see what it's like.
>>106465217>decided to switch to LinuxFedora. If you're just getting into Linux, definitely Fedora.>why?NixOS requires learning and understanding an entire different philosophy/approach to software packaging, as well as an entire programming language on top of it. So not only would you be struggling to learn Linux, you would also be struggling to learn Nix and NixOS at the same time. It would be hell.I've used Linux for 6 years on servers and 3 years on the desktop, and it took me 8 months to fully understand and grasp NixOS and be efficient with it. (But once I did, the payoff is infinite)Start with normal distros. Not even immutable -- that will only hurt your learning because it doesn't let you change shit.Learn normal distros. Learn how they work.Then learn what makes immutable distros (i.e. Fedora Silverblue) different.Then, only THEN even start THINKING about NixOS.If you really want access to the package collection, you can install Nix on any distro or even macOS. But do not, under any circumstance, try to use NixOS as your first Linux OS.>>106465236Even Fedora Atomic is vastly different from NixOS. NixOS is only half "immutable" in the sense other distros are immutable, but the beauty is you can make it as little or as much immutable as you want. With ostree-based distros you're stuck with the images you get and that's it. Maybe a rpm-ostree package overlay but that's as much customization as you get. Ostree distros are like the ChromeOS of Linux distros imo. They have usecases but I wouldn't use them because I already have my NixOS setup.
>>106465236>wildly differentyeah I know, that's the reason I can't decideI like the idea of Nix being organized, possibility of snapshots and stuff, but my main concern is software compatibility and comfort for everyday use
>>106465317I get it, Nix is vastly different from any other distro — not in terms of complexity, just different. So what's the difference between learning Fedora from zero and Nix from zero?
>>106465217Before engaging in distro wars, Take a look at the chart...That said, I'm on Fedora XFCE spin right now. It offers simple package management and is stable yet sufficiently updated without being too fragile, so you can focus more on real work than on continuously tweaking/fixing the OS. That said, I'm moving back to Debian for two reasons: 1. Their repositories have a bit more of the packages I need, and 2. Debian focuses more on stability than on pushing breaking changes/innovation for the sake of "muh modern Linux OS". I don't care about that bullshit, I prefer a VERY stable base for getting shit done, and I'll always have distrobox/flatpak/appimages/VMs at disposal for everything beta/unstable/bleeding edge...NixOS is too overengineered for my taste, plus they have no security model + barely review what's on their repos, just like AUR.
>>106465439I mean if Stability is your jig then NixOS is perfect usecase.
>>106465370>Learning Fedora from zeroIt's a well trodden path, most software supports it, there's tons of documentation (at least compared to Nix). It's what Torvalds himself uses to develop and test the kernel.It works like Windows. You install stuff, update stuff, uninstall stuff. Their equivalent of .msi files, called .rpm, makes installing random stuff from the internet easy. There's a GUI package manager that automates it. You rarely need to use the terminal.If you're ever stuck, you can ask a person or an AI for help, both will know the system very well and give you support.>Learning Nix from zeroNix is first and foremost a programming language with package management capabilities. So you'd first need to learn that aspect.Then you'd need to learn the package manager: how the Nix store works, what is a derivation and how to create them, the difference between Nix and Nixpkgs, and either Flakes (new way) and/or Channels (old way) as the interface you use.Then you can start learning NixOS. You'll need to learn how the module system works, and be comfortable with reading the Nixpkgs/NixOS source code (it's not that bad), as there is little to no documentation for how things work in Nixpkgs and especially NixOS. You'll also need to get used to reading the horrible error messages that come from the module system (as its implemented entirely in Nix code).But then you'll see how it's possible to represent pretty much all system configuration as derivations, and you'll be able to write reusable configuration modules to reuse across different machines. You'll see the value of having a higher level language that can generate configs for different programs from shared values. Then you can learn about broader parts of the ecosystem, like home-manager, nix-darwin, disko, etc.If you really want to learn Nix, here's a good learning resource for it. Good luck if you decide to do it! :)>https://nixos-and-flakes.thiscute.world/introduction
>>106465439I don't wanna engage in distro wars. OP asked about Fedora vs NixOS and I'm just saying NixOS is a bad choice for beginners. Really distros don't matter. As a beginner just pick any. Just avoid "DIY" distros like Gentoo or "non-standard" distros like immutable, non-systemd, or NixOS/GuixSD because it'll make learning unnecessarily hard for you as a beginner and confuse people wanting to help you.The only difference between distros are the package managers and their repositories. Nix is different because you can just install it on any distro or macOS, fully supported side by side with other package managers. So you can have best of both worlds, Debian stable base and any bleeding edge Nix packages you need. This is actually the configuration I run on my servers, I have a few Debian and a few Fedora Asahi Mac mini's, with the bleeding edge packages I need installed from Nix.>they have no security modelIf you mean like MAC? There is AppArmor and hopefully soon SELinux, other than that it's just like any other standard desktop security.Technically you can make your own hardened security model really easily. If you mount everything on the system as "noexec" except /nix/store, and then restrict the Nix daemon to only accept connections from trusted users, it becomes basically impossible to run untrusted code on the system that's not explicitly installed by you. You can then go further and start carving out stuff you don't need, e.g. replace sudo with doas or run0, use hardened_malloc and linux-hardened, sysctl hardening, etc. It's extremely customizable, but I will admit it's very overengineered.>barely review what's on their reposYeah I'll admit that can be a problem. It's simply unavoidable when running at the scale of Nixpkgs. They review the Nix derivation code for correctness, and compile and test the binaries to ensure it works, but outside of that there's no e.g. dedicated security/malware checks from what I know.
>>106465217Are you read to program in some obscure ML-style language? No? then fedora.
>>106465370>obvious ChatGPT copyyikes brother>>106465587What model is this from? It's almost convincing.
>>106465852this is literally just the way I type. English is not my first language
>>106465852Fuck you dude I spent 30 mins writing this shit by hand. If you don't wanna read my genuine advice from going through the pain of learning Nix and NixOS and nix-darwin to manage all my systems, then that's not my problem.
>>106465881>>106465891Stop replying to ragebaiters
>>106465439fedora is not stable, considering its on 6.16.3 rn which didnt come out until like 2 weeks ago xd
>>106465908>ragebaitersback in the day we used to call them trollschatspeek keeps losing its elegance
>>106465217That's outdated NixOS logo you should check new logo.
>>106466028>oh no queers!!!
>>106465470Hmmm nope... avoiding walled gardens and niche ecosystems (like NixOS or Fedora Silverblue) is far more important to me. I view immutability/reproducibility as forced memes pushed by IBM/RedHat codelets and VCs degens trying to make a buck by reinventing the wheel, or by enslaving bending wagies with more slop so they can justify their miserable existence.Nobody serious about data integrity and data permanence should rely on their backups to some niche and poorly documented or tested silver bullet. Here, I choose diamond solid stability.Equally important, I seek maximum portability in my backup infrastructure. Something like rsnapshot checks most of my needs and is an ubiquitous, reliable, and well time-tested tool you'll find everywhere. This way, I can move 99% of my setup and backups across all Unix-like systems (Linux, BSD, macOS, even WSL or Haiku!) with minimal tweaking, anytime I want. To me, most files, including configuration files and dotfiles, should be treated as OS-agnostic. You might see this as a too-philosophical stance, but I see it as a practical one, where my backups and configs can survive for decades, so for once I get some meaningful shit done in this prison we call reality.
>>106465958Another reason I'm moving to debian. Still, fedora it's far more stable and trustworthy than Arch.
>>106466168Immutable Linus was a thing well before RedHat started Fedora Atomics. At the end of the day if stability is your motive immutable OS make perfect sense. It's far easier to rollback an immutable OS than to jump through hoops when an upgrade fails and you have to restore from backup.>Nobody serious about data integrity and data permanence should rely on their backups to some niche and poorly documented or tested silver bullet. Here, I choose diamond solid stability.Immutable OS never claim to replace backups. They don't prevent disk failures or bit rot (natively)>To me, most files, including configuration files and dotfiles, should be treated as OS-agnosticYes? This is completely irrelevant. Immutable linux doesn't make dotfiles tied to the hip
>>106466168>avoiding walled gardens and niche ecosystemsPersonally I don't see how Nix is a walled garden. I actually think it's the opposite -- it runs on all OS and distros and lets you just fork the entire Nixpkgs github repo and change it however you want. What other package manager lets you patch packages as easily as Nix?>immutability/reproducibility as forced memes pushed by IBM/RedHatKinda. Like I said before it's the ChromeOS of Linux distros. It's for normies and not existing Linux users. I don't think any proficient Linux user should use them, but I would absolutely put them e.g. on my grandma's computer.>Nobody serious [...] should rely on their backups to some niche and poorly documented or tested silver bullet.How is backup security == distro choice? Unless you're running a backup server. In which case, the diamond solid stability you're looking for is FreeBSD with ZFS :) (NixOS would be my next choice for ZFS after FreeBSD, it has excellent ZFS support and ZFS-on-root)>most files, including configuration files and dotfiles, should be treated as OS-agnosticThis is what GNU stow and home-manager solves.GNU stow just lets you reuse the existing dotfiles. It's dead simple.With home-manager you suffer through the pain of rewriting them in Nix but you gain integration with the rest of your system config.For example I configure Firefox through home-manager, it checks what architecture and kernel version it's running on, and creates a kernelconfig.io search engine entry for that CPU and kernel version. I then share it across many aarch64 and x86_64 machines, both with LTS and latest kernels, and on all machines I can use the same search engine shortcut in Firefox to look up their specific kernel config. It's good muscle memory.Sure you can do it with scripts, but with home-manager it's just simple string substitution like any other programming language.
>>106465217I would strongly recommend to not start with nixos for desktop usage, for something headless sure. also would recommend against it as a first distro, its autism extreme.t. using nixos on my home server
>>106466197fedora is not stable, fedora 42 came out in april and 6.16 came out in july
>>106465317>With ostree-based distros you're stuck with the images you get and that's it. Maybe a rpm-ostree package overlay but that's as much customization as you getBluebuild let's you create your own immutable images
>>106465370>Nix is vastly different from any other distro — not in terms of complexity, just different.No, it's definitely different in terms of complexity, as in it's far more complex and difficult.
>>106466435Yea but then you have to maintain them and it's a whole thing.But in NixOS you have to maintain your configuration as well, and keep it in sync with the upstream Nixpkgs repo. Maybe they're not that different after all.
>>106465217Just use fedora.
>>106465217In my experience Fedora broke several times while I never fucked up with NixOS. If you just want to use it for desktop usage, just start without home manager and flakes, using only the config file. That's plenty for starting out. I daily drive it for engineering purposes and it has been a smooth experience so far, using only the configuration file and not messing too much with system configurations. Hell, I changed DE several times and had no issue at all. Maybe if you tinker a lot with the system it gets complicated, I dunno.
>>106466309>>106466413Add the systemd-suite to the picture, and you have now another argument to fight agains the anti-portability crowd corpo-bootlickers shill so hard. Overall, one can argue modern Linux, with the promotion of IBM/Microsoft/Google, is slowly becoming a BIG ASS walled garden where you must to bend to investors will, starting with Android just about now. I'm just pointing global trends, everyone see it's bleak...And on that regard, where is my init-free NixOS?
>>106465217Fedora is justwerx to a fault, NixOs is itself work
>>106466719>where is my init-free NixOS?Here you go (unofficial):>https://codeberg.org/amjoseph/sixosThey also recently merged modular services as a big step towards making NixOS independent of any service manager. It means that system services defined by modules now can be composable and aren't hard-locked to systemd anymore. They plan to use the system with launchd for macOS and shepherd or maybe openrc later as options for Linux. It's already live in unstable right now and will be in 25.11 stable release.>https://github.com/nixos/nixpkgs/pull/372170
>>106465439Any specific reason for why did you pick Debian over Mint with Cinnamon for this? I crossed Ubuntu off due to Snaps. t. someone who wants to move from Windows with WSL to a Linux with a solid base + flatpaks, some containers and nix-shells for a dev environment.
>>106466780Oh ok, that's nice, maybe in 10 years I'll give it a look, lmao. Nevermind, nobody should sleep on backups to just inmutable solutions, alot of people is marketing them as such, while if you go for the portability-first route, you're still able to use inmutable OSs and not be "walled" by them. And I wasn't talking about just ~/.dotfiles. Some of my custom configs live on /etc/ (e.g. /etc/X11/xorg.conf.d), and yet, they remain portable (same xorg config works on Linux and BSDs)
>>106466942Yeah it'll be a long time until the modular services are fully ready and non-systemd init systems are officially supported. But progress is happening! Unlike other distros, NixOS is not blocking it.The general idea behind modular services is to have native support of having many instances of *any* service, without resorting to docker containers or stuff like that. But they also took the opportunity to make systemd optional, and any modular service is explicitly required to gate any systemd-specific options behind a "options ? systemd" conditional check (checks if "options" object has element "systemd").>while if you go for the portability-first route, you're still able to use inmutable OSs and not be "walled" by themNix just spits out normal config files, nothing stopping you from just copying those over and throwing away the Nix code. There's nothing "special" about it, it's basically just a fancy config generator.>And I wasn't talking about just ~/.dotfiles. Some of my custom configs live on /etc/Then that's what main NixOS and nix-darwin are for. In my Nix config I share a lot of stuff between macOS and Linux with no problem.For example my Firefox settings (through enterprise policy), my installed system packages, my DNS config, OpenSSH + Tor server config, all of those are completely identical and defined in just one place: my Nix config.Then I have a bunch of checks like "if macOS then do this else if Linux then do this else do this" throughout the config for OS-specific stuff. But I'd say 70% of it is OS-agnostic. I can extend it with any other OS very easily (if there is system config support for that OS).Currently the OS that are the best supported for system configuration is NixOS and macOS. There is NixBSD for configuring FreeBSD but it's experimental:>https://github.com/nixos-bsd/nixbsdThere is also system-manager to manage any Linux distro (officially it only supports Ubuntu):>https://github.com/numtide/system-manager
>>106466882>Any specific reason for why did you pick Debian over Mint with Cinnamon for this?I've been using linux for about 15 years now, never tried Mint and doesn't have the appeal for me. It may be pretty good for starters, and cinnamon looks good (better than gnome imo) if you're into DEsMy current pick is debian+cwm (OpenBSDs Calm Window Manager), so I have no biz with any bulky desktop environment (last one was XFCE on fedora). cwm it's a pretty basic and comfy keyboard driven WM (no tilling), and since I mostly use fullscreened terminals and firefox, it's good enough for me.>someone who wants [...] a Linux with a solid base + flatpaks, some containers and nix-shells for a dev environment.For me distrobox cover all my containers/dev/bleeding-edge needs, and debian 13 has the last version of it. I'm on a fresh debian install now, so I haven't ported everything just yet, but on my fedora machine I had three arch based distroboxes for stuff I only find on AUR, but I like them compartmentalized bcz autism and whatnot
>>106465217>Windows>switch to LinuxNobara. Guessing still need gaynes.
>>106465217if you values your time, ubuntu or fedorathe rest is just waste of time/thread
>>106467116Thanks, anon. Your decision in regards of Debian sounds reasonable and pragmatic to me. A decade ago I used to have a Linux desktop for a dev work, but things were a LOT more worse back then (no nix, flatpaks, appimages, containers and cow fss were shit), so once I hit a dependency hell on Fedora and Arch, I nuked Linux from the machine and moved back to Windows. It was mostly good, until Microsoft decided to enshtify the OS. And now, I just can't stand this keep increasing bullshit anymore, I just hit a point where I'd rather give Linux another try, especially with all the new mentioned wistles that came out over the time that improve the workflow, stability and usability. And I'd rather just to stick to a solid base OS, even with a bit behind packages, that like you mentioned before doesn't garden itself or do unorthodox shit (like immutables, nix/guix, gentoo and other friends do it) and use distrobox with a vm for an occasional winshit. And since I don't want to tinker match anymore, I'd rather have a DE at this point. At the end of the day, I live mostly in Emacs for the last decade anyways, despite using Windows.
Nix is kino, Fedora just worksI say Nix, Nix is just fun to use, period
>>106465217>NixOS and Fedora. The question is: which one should I choose, and why?For the beginner, Fedora is the better of the two choices. This is because Fedora is easier to use on a daily basis.NixOS works and many people like it, but it is quite complex. After a year or so of using Fedora, learning Linux basics, you'll be better able to look around at other distros and assess them realistically.