I’ve genuinely never seen a single person recommend NixOS to a new user, unless they already had advanced technical knowledge
Are you new around here?
You could just look at my profile to see that I’m not. I’m also not new to Linux communities in general. Doesn’t change that I’ve never seen someone recommend NixOS to a complete beginner. I have (rarely) seen Arch recommended, but those recommendations will generally be downvoted and have many replies disagreeing. Linux Mint is by far the distro I see most often recommended, followed by Fedora.
What I see recommended nowadays is indeed mint, various Ubuntu variations, arch (always, although a lot of the time in jest), Nix fairly regularly, and as for the classics: SuSE and Fedora, they’re rarely mentioned.
As an experienced Fedora User, I recommend mint to newbies. Fedora having to add RPMFusion and figure out how to properly install the correct Nvidia driver can be daunting for a new user who is used to downloading exes. I love fedora though, and if it were not for that one thing I would be recommending it.
As an former Fedora and Mint user, now NixOS user, I reccomend Fedora to newbies. rpmfusion ain’t that hard since you only copy and paste commands and I’ve never had any problems with drivers. It maybe daunting but after installing the drivers, you don’t have to do anything else after. Fedora also opens up other possibilities to the Linux rabbit hole like ricing and its semi-rolling release.
I generally want to avoid telling people to copy and paste commands they dont understand, especially things like one line installs. I understand what you mean, and while you and I know there is no risk to using RPMFusion, a windows user should never be underestimated in their ability to screw Something up. (See: Linus Sebastian installing Pop!_OS) and most new users do not want to interact with the terminal at all. I feel like if we want people to start using Linux as a daily driver, the option to never use the terminal should be available to them.
Fair enough, although it was Pop!_OS fault due to a bug in Linus’ installation. It’s been fixed now.
“Arch” they just need to read the newsletter before updating.
“Gentoo” because fuck you personally.
https://en.wikipedia.org/wiki/Linux_From_Scratch
Linux From Scratch (LFS) is a type of a Linux installation and the name of a book written by Gerard Beekmans, and as of May 2021, mainly maintained by Bruce Dubbs. The book gives readers instructions on how to build a Linux system from source. The book is available freely from the Linux From Scratch site.
LWN.net reviewed LFS in 2004:[19]
Linux From Scratch is a wonderful project. It should become a compulsory reading material for all Linux training courses, and something that every Linux enthusiast should complete at least once. This would also create another interesting side effect: people who tend to be quick in expressing dissatisfaction on the distributions’ mailing lists and forums would probably show a lot more respect for the developers. Installing a ready-made distribution is a trivial task. Building up a set of 4 CDs containing a stable, secure and reliable operating system, plus thousands of applications, is most definitely not.
Which distro should I pick?
@[email protected]: NoThis just reminds me of my first experience with Linux in the late 90’s. Yes they had installers that got the base system working, but then you had to compile so much.
I did this once. I got to a command line installation and I think I either borked installing a usable desktop environment, or I was just sick of it all and decided I wouln’t be getting working hibernation or Wi-Fi this way anyway and the slightly lower resources used wasn’t worth it.
I think I had tried Gentoo before that and must have decided I didn’t like myself for some reason.
“Some DIY is fun, some is stuff we do by mistake because ‘well how hard can it be anyway?’ and it teaches us a lot for the next project. The rest we do purely to spite ourselves, because we should be able to do it, damnit!”
-thing I said to a friend who asked why I was putting so much effort on myself when I could just buy a flat-pack for the same cost and 99% less effort.
alias yay=“yay -Pw; yay”
Today I learned, thanks.
Before upgrading, users are expected to visit the Arch Linux home page to check the latest news, or alternatively subscribe to the RSS feed or the arch-announce mailing list. When updates require out-of-the-ordinary user intervention (more than what can be handled simply by following the instructions given by pacman), an appropriate news post will be made.
I swear, I’ve only recommended it to one newbie, and they were an engineer! I had a reason!
Hilarious that this is the new norm, though. NixOS is so not typical at all. Arch is more normal at this point.
@Natanox Seems like NixOS replaced Arch as both a local extremist cult and the most effective newbie repellent.
What’s funny to me here is that, as a long time Arch user, I have been considering switching to NixOS. One of the most terrifying thoughts to me is that after using the same Arch install for 2 years I will spend ages trying to recreate it if I ever have to. Oh, that and Nix letting you test packages seems like a cool feature.
I am about to switch away from arch that I installed 5 years ago. It’s a daunting thought isn’t it?
I’ve been on arch around a year now and also considered the jump to NixOS. I was actually dual booting it with arch for awhile and I found pretty quickly that the shit documentation was a huge turn off for me. I ended up nuking the nix partition and reclaiming it for arch.
That and the need to learn a bespoke, weird programming language that will only ever be useful for this one thing have really turned me off of that distro.
Definitely. Why not use something off the shelf! That by itself would make it much more approachable
This is my biggest issue. I am utterly spoiled to the exquisiteness that is Arch’s Wiki…
I mean the Arch wiki mostly works on NixOS too. The problem with NixOS documentation is that there aren’t many examples for the Nix language itself.
I’ve found that the Arch wiki works for most distros if you know how to translate it. There have been multiple times I’ve searched how to do something or how to fix something in Linux and the only useful result is an arch forum or wiki. All I had to do is translate the steps for debian/ubuntu/opensuse/fedora/rpiOS, etc.
The process was usually “search this error” > “this part” isn’t working, search “this part error” > arch forum showing steps to fix. Search “where the fuck is this file in <distro>”. Get “it’s usually here, here, or over here”, then do arch steps.
Then there’s opensuse, and there’s fucking camelcase capitals in their packages (NetworkManager? Seriously?) so I have to Google “opensuse <command/application> package” like a fucking rube.
Yeah one nice thing about nixos is that their package search website is really good. You can also search for config options with examples.
What is the Nix language like?
Terrible. Unless you like Haskell, DSLs, and the like.
If Haskell and json had a baby
Hmm, that sounds more like dhall
Arch wiki is the documentation gold standard
I was in the same boat two years ago.
What I did is that I’ve setup a VM with NixOS in it to play with, learn the language and tweak the configuration file.
The great thing about NixOS is that once I was feeling confident enough to switch I installed NixOS on bare metal, loaded the configuration file I prepared in the VM and I instantly had everything installed and running. (Except for the NVidia drivers, fuck nvidia)
Since then I’ve stayed in nixos and I’m not looking back.
This would likely be the plan. This is solid advice really for anyone swapping distros really.
The nice thing is that NixOS will keep your setup and all your tweaks if you ever need to reinstall. It’s designed to solve that exact problem.
One way of switching over would be to carry over your homedir and just starting with migrating packages and config as a first step.
Big nix fan here, I love being able to define my system from a couple configuration files and not scrounging around the file system for the right dot file
And also it let’s you do crazy things that would be impossible in other imperative distros tho.
I am thinking about root-on-tmpfs, conditional configuration and doing all sorts of crazy things with packages while remaining manageable.
It is simply another whole tier.
Definitely solves more problems than it creates! /s
At least they aren’t trying to get Steam to work on Kali.
That’s surprisingly easy.
I have an old MacBook for 2012, can barely open terminal, installed Pop!_OS, and I love it!
Am I a terrible person?
Pop!_OS has been my go to for years now. Always been so reliable and easy to use. This was the distro which kept me from going back to Windows
same here. always had issues getting nvidia drivers working on other distros, but pop os got me going out of the box.
Nah, you’re killing it.
Not at all. Pop OS was my Windows to Linux distro of choice, of which I stayed on for almost 3 years. It’s a great way to get familiar with Linux.
I only got out because I wanted to be closer to the edge, not because it was bad.
Yes, you are a terrible person. /s
I have MacBook pro from 2011 and it runs Plasma fine. It has 16GB of memory, though.
I’ve got an old Dell XPS system from 2010 with a Core i7 970 in it that runs Mint perfectly well.
sips coffee from Alpine land
I really love this image for this, that expression combo is perfection.
definetly! do you know what anime that is?
Chatlotte (2015)
I use arch btw
I use Alpine, tbh I dont see why I should learn an entire programming language just for a distro
Why do you use Alpine?
Very old computer
Alpine actually isn’t more lightweight than something like Debian. You can use whatever you want of course.
I think Alpine is best used in a container.
Alpine just feels like everything on my system is there for a reason (and somehow makes arch feel “bloated”) so I 100% understand wanting a full config file for everything on your system. But DAMN THE DOCS SUCK. Also NixOS locks you into systemd…
I keep seeing this sentiment, what’s wrong with systemd?
nothing.
It’s an ideological thing that says systemd bad because its not Unix enough usually.
Lmao gotcha. I won’t worry about it then. Currently distro shopping. 🙂
I have an old Laptop with a second gen i3 and 4gb of ram. Alpine runs very smoothly with Sway.
NixOS locks you into systemd…
Okay! Nix is out until it fixes that. What a fucking mess systemd is.
Because whenever I use apt or a similar standard package manager there is always some issue. For example, I start up an Ubuntu VPS and try to run nginx just to find out that Ubuntu 24 only has 1.24
And to get a newer version you need to do a bunch of steps:
How are these sources.list incantations any different from editing a configuration.nix file?
Ubuntu was so good. Too bad my brother simply shut off my VM when I was using it
I’ve had some people here tell me about POP_OS as it’s the most friendly to NVIDIA hardware and also is configured for gaming.
What are your thoughts?
It being good for Nvidia hardware isn’t wrong, but it being the best or especially good for gaming isn’t exactly true. It mostly boils down to the proprietary Nvidia driver being preinstalled and a lot of media attention why Pop!_OS became so popular for gaming.
Other distros that are just as good or better for gaming with Nvidia are, for example:
- Bazzite (Immutable)
- Nobara
- TuxedoOS
The first two are really going the extra mile for patches and gaming support. Bazzite can be a little bit frustrating though given it requires some additional knowledge to work with immutable file systems if you ever need to edit system files. Otherwise you should have a solid experience on any of them.
See I actually have a dual boot with Nobara right now and it is not playing nice with my RTX 3070
Documentation? For Nix? Yeah right.
Did you know that the suffix for nix documentation files is, coincidentally, .nix?
The code of the packages is the documentation. So the newcomers better start learning Nix language and reading the paper about how Nix works under the hood before they get started! /s
But seriously, I used NixOs for about 2 years almost 10 years ago and while it was/is fascinating when you have everything setup, getting there and maintaining everything across so many packages that each have their own way of configuring them took hundreds of hours. I’m back on Arch using a custom tool I wrote to fully manage my configs, packages, dotfiles etc.
The way I remember it is that there is no consistency across Nix packages and it all feels like a giant puzzle for people who enjoy spending time configuring more than actually using the computer. And I say that as someone who actually enjoyed getting into that when I had unlimited time.
Okay, but when I figure it out on my desktop I just copy paste the exact snippet to my laptop and it just works.
Do you think I can remember the steps I took to fix my issue with Ubuntu? I don’t remember what file I modified and where I put some config file.
But to be fair, Nix is not the only answer to that. There are lots of tools for just dotfiles but you can also build something using e.g. ansible to manage everything.
All my computers have their config in a git repo. That includes users, packages, services, dotfiles, /etc configs and so on. I used ansible before writing my own tool. I can install Arch from scratch and only need to partition, run one script and then apply my config on first boot using my tool to have my system restored. I know it’s not as declarative and absolute/reproducible as Nix, but it works and it’s way less painful than my last attempt at giving NixOS a go.
Either my Ansible knowledge is too limited which is entirely possible, or you can’t do stuff there that’s possible with Nix. Let’s stay go with my example that you have something that requires changes in PAM. So you write an Ansible file installing the package (which is distribution-specific, so you’re losing one advantage you had over NixOS), enable the service and add your entries to the respective PAM file (e.g. login because you want to enable user authentication against kanidm on your machine). The ordering in these files matter. Sure you have
insertbefore
andinsertafter
forlineinfile
andblockinfile
, but this basically requires you to know the rest of the file in advance… not a problem if your system is always the same, but you don’t have the flexibility and composability that Nix offers.I’d say, from my experience with Ansible, that it can absolutely do all of that. Might be able to use a single task for the package install, if the distro supports the generic
package
module. There’s also a pamd module that would likely cover your needs there. If not, it would still be possible with a custom module or some Xinfile fuckery (if it can be fine programmatically, it can be done in Ansible, more niche things may require writing code, however).It would not be as terse though. Really wish there was a good middle ground.
It can do that, but it gets more complicated because you are doing this is in an imperative way. For example, in Nix it’s trivial to change the config and remove something.
In ansible there’s no guarantee installing a package and removing it won’t have side effects. You could install a DE and decide to switch back, but it already changed some files on your system
This is true. It can be done but would require functionality not included in stock Ansible.
I’m about neck deep in ancible/salt/chef over the years at work.
They are great tools for simple configurations where multiple people are needed in the kitchen, but they require meticulous curation.
But I buy a new laptop, I slap in my USB vanilla Nix ISO, drop two config files in /etc/nixos call rebuild and I’m done.
Updating my packages to latest is a single command. Adding a package is a single line. And the most powerful thing, nix-shell -p whatever install whatever for that session. I don’t even bother putting most stuff into my declaritive configs, nix-shell -p ffmpeg, when I exit it’s no longer available.
And if I do something awful to my config and brick it, it’s just one grub menu to go back to the previous version.
I dunno man. I spent way less time configuring my machines on NixOS because it just works. But in fairness, that is after I have spent a lot of time learning it (compared to classic systems that is, not a lot compared to NixOS maintainers who write way better module than I do). Now that there is a foundation, I just run the updates. It’s almost scarily stable. And the ability to group related settings together is such a bliss because you no longer wonder about “what did I do to enable X”, just open the file, it’s all in one place. Stuff that could be three completely different things (e.g. a service specific config file, a PAM entry and the service activation itself in effectively 5 lines. Want to do something for multiple services? Just map over their list. Etc
I happily used Arch for 15 years and after trying NixOS on a decommissioned machine for one day I switched over everything as fast as possible. And I did try out Ansible on Arch, so it’s not like I didn’t try management via a tool. But using a system like NixOS just solves sooo many potential issues.
It obviously comes with downsides, for example there is no quick configuration change. Changing something small requires another evaluation. Still worth it
Kinda new to Linux, is that the documentation icon ?
That’s Ubuntu, Mint and NixOS.
Thanks, I had recognized the first two but had no notion of the third