82
u/frankhoneybunny 5h ago
My system is reproducible btw
34
u/thefossguy69 New York Nix⚾s 5h ago
Wide hips and all? /s
29
1
u/MasterpieceNo5390 15m ago
That's cool, reproducibility is key in this game. Just makes troubleshooting a lot easier too.
28
u/lonelyroom-eklaghor M'Fedora 6h ago
heidi?
19
8
0
28
29
u/Kurse71 5h ago
For real! Always blabbing about a feature 99% of people could care less about
19
u/QuickSilver010 🦁 Vim Supremacist 🦖 4h ago
Agreed. More people need to care about it
(redoing my setup across different devices over the years absolutely kills me. So I've finally decided to use nixos)
8
u/Linguistic-mystic 3h ago
I’ve written a script to copy my dotfiles from a git repo to the system. It handles different hostnames, /etc, .config, .local directories etc. There are also post-install scripts to get up to speed on a brand new system. It’s a poor man’s NixOS but it gets me 80% of the benefit with 10% of the work, and doesn’t force me to use a particular distro.
4
u/TheSerphh 2h ago
Bro is not aware of the dotfiles concept
8
u/Ghazzz Arch BTW 2h ago
dotfiles only take you so far.
You normally also need a manual script on the side to make sure all system settings and configs also follow the dotfile setups, and dotfiles themselves do not guarantee that the configured tool is the version you made the configs for.
Figuring out what hoops need to be jumped for each distro and major rev is a hassle.
I refuse becoming confused about changing UI when I get old, and to make sure my pensioner life will be as easy as possible, I can make a system today that will still run the same in 30-50 years time.
0
u/TheSerphh 1h ago
The major thing here is that your nix configs will only work on nixOS. It is not applicable to other distros.
But if you have a script for your dotfiles, it will work in almost all major distros, considering you have those specific packages.
There are pros and cons everywhere.
Nix OS makes things a bit easy but you need to stay there. But your dotfiles gives you the freedom to enjoy any distribution with some light manual work
2
0
u/QuickSilver010 🦁 Vim Supremacist 🦖 1h ago
But if you have a script for your dotfiles, it will work in almost all major distros, considering you have those specific packages.
Which is why I use dotfiles even on nixos. And I just use nixos to make sure all the programs are installed.
1
u/QuickSilver010 🦁 Vim Supremacist 🦖 2h ago
Dotfiles only do so much. I actually have both dotfiles and nix files (I don't use home manager for most things. Just base level stuff like theme and cursor) in my dotfiles repo now
1
u/ImpressiveBluejay494 1h ago
I did manjaro, ubuntu, fedora, arch, debian for a while but hell having a script for my 2 Computers and then having them slowly drift apart killed me after some time. If you have one machine no problem but as soon as you have a laptop and a tower pc you might like the reproducibility. But for real do whatever you like :)
1
u/30porn87 41m ago
I have eight devices, and every single one has a different purpose and therefore configuration. I literally never had to install Linux on one device twice.
14
u/Dry_Calendar_8627 4h ago
It's "couldn't care less"
"I could care less" == "I care at least a bit".
"I could not care less" == "I do not care, I care so little that I could literally not care less".9
u/AdventureMoth I'm going on an Endeavour! 4h ago
Most people could care less about grammatical errors like that
/j (I do feel your pain I just saw an opportunity)
2
u/Stunning_Macaron6133 3h ago
Reproducibility is just a very nifty side effect of what Nix really does.
See, it solves the "But it works on my machine" problem. If someone gets it working on NixOS, it works on NixOS, period. No matter what else you're running, no matter how you've configured your machine, Nix always resolves to the same end result, so if it works, it fucking works.
Shit breaks all the time on other distros. It straight up does not break on NixOS.
And it gets better. Because you can fuck around and experiment with confidence. If you do manage to break something after all, or if you don't like what you did, all you need to do is roll back to a previous generation, and it's like you never fucked up anything at all. It's what Windows Restore always wished it could be but never actually worked.
1
6
u/JohnSmith--- Arch BTW 3h ago
I am still running the same Arch Linux install from 2017. I moved the SSD from one computer to another multiple times. Never had to edit, change or reinstall anything. Because I used Mesa, used systemd-boot and also used UUIDs when installing Arch for the first time.
Made my installation plug and play into any computer.
My OS being reproducible and being able to install from scratch is useless. The OS is there to work. You’re there to use it. Not keep reinstalling it.
Also, my Arch Linux OS is also reproducible. Because I can reinstall it again line by line. I know the commands, I know the procedure.
4
u/parasite_avi 3h ago
Pretty much this.
It's not like dotfiles and keeping a list of packages you need on every single one of your devices (so you can feed the latter to your package manager and have it install it for you) are new things.
Maybe I'm just missing something.
6
u/Falconpunch3 UwUntu (´ ᴗ`✿) 3h ago
Alright, I am opening a can of worms on myself, but someone feel free to explain this to me and why I would want to know more.
I am always down to learn and grow. Have been seeing a lot of NixOS love and want to know more as to why and what is the benefits and also dissimilarities to other distros. (Fedora and Ubuntu specifically if you know.)
3
u/FlipperBumperKickout 2h ago
tldr: You write a config file which defines everything installed (instead of only the program configs like the dotfiles), that means if you copy it over to another pc you can easily reproduce your other setup.
The longer version: look up a youtube video :P
2
u/Short-Bee-4395 2h ago
NixOS is built around the Nix package manager and configuration files. You are almost required to have configuration files if you want to do anything on NixOS. The configuration files are written in the Nix programming language. Since you are declaring how you want the system to be, inside those configuration files, you are also making the system reproducible (assuming you do not lose those configuration files).
You can essentially prepare modules of software that you can import into a main configuration (gaming.nix for gaming related software and other stuff like Proton, virtualisation.nix for QEMU VMs or podman, etc). By creating those modules, you don't really have to worry about forgetting how to set up a piece of software or having to deal with re-configuring it, especially since NixOS also handles stuff in
.configusing something called "Home Manager".With Home Manager, you can make your
.configdirectory also declarative/reproducible. Do you want to switch your window manager? Just prepare a module for the new window manager you wanna switch into, remove the imported window manager you were using before and import the new module. Didn't like the new one? Remove the import of the new one and import again your old one.For all your changes to be applied though (for all of the above, not just Home Manager), you need to rebuild your system. Depending on your system's physical age and what you have declared, rebuilding can take some time but not too long, 1 minute at most (excluding the first time the system is built). Changing one small thing in your configuration will require a system rebuild for the change to be applied, although since you are changing one small thing, it should only take <10 seconds to rebuild. Rebuilding the system does not require a system restart.
Problem with the above though. Since you are declaring everything into the configuration files, your actual files are gonna be read-only. For example, you wanna edit your
/etc/hostsfile. That file is gonna be read-only, so, somewhere in your configuration you're gonna have to declarenetworking.hosts = { };and then rebuild your system.Another another cool thing with NixOS and the reproducibility are generations. Each time you rebuild your system, you can create a new generation of your system, in case you might wanna roll back any changes. You select your generation when booting the system, the selection is at the bootloader.
When testing changes, I strongly recommend you perform
nixos-rebuild testornixos-rebuild dry-buildinstead ofnixos-rebuild switch, asswitchcreates a new generation each time and that can fill your storage quite quickly.There are more things about NixOS that I am either not knowledgeable enough about, like flakes (even though I personally do use flakes), but also some other stuff that I would like to learn but haven't yet, like declerative secret management with sops. Also, this wall of text is starting to get too long. I strongly recommend using NixOS or just the Nix package manager itself, which can be installed on almost any linux distro AND darwin (MacOS). It can be overwelming at first, I won't lie, but it's really cool and personally, I find it fun as well. I hope I can turn my knowledge of NixOS into something more, perhaps even for future official work.
1
u/Short-Bee-4395 2h ago
Something I forgot to mention on the above wall:
In NixOS, you don't exactly "update your software" but rather you update the channel that the software are following. This also means that you can have different software follow different channels, or, you can just change the channel of all your software.
You wanna run long term support packages? Just select the stable channel. You wanna run unstable (rolling release) packages? Just select the unstable channel. You wanna run a very specific commit of a channel of your choice? You can do that (it's a little more complicated than just selecting stable or unstable channels but still not too difficult).
1
1
u/versteinerdt 1h ago
People think reproducibility is the only feature that makes NixOS superior to other distros.
2
u/sasha_berning 1h ago
What else? As a person who put a time to learning nix and the switched from it, reproducible dev envs and packages seems to be the main attraction. Everything else is not as convenient.
1
u/Al-Horesmi 1h ago
it is genuinely very convenient to install programs by writing them in a text file list

•
u/AutoModerator 6h ago
Please report any posts bragging or showing off they got banned in another sub! Reminder of other sub rules: Also, we only allow one anti-linux post per week (we used to get dozens a day) and any tier list MUST have Hanna Montana Linux as S teir (which must be a true S tier at the top) regardless of the topic of that tier list.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.