Kevin Marques ★

Nix OS: First Impressions

· Kevin Marques

About a month ago, I bought a 3.5" Western Digital 2 TB HDD that I’ll just use as a backup storage for now – but, in the future, I plan to build my own desktop computer, so it’ll surely be useful both now and then. But the real reason that I bought this HDD just to back up all my Arch Linux data and start testing Nix OS for the first time; I was so excited about it that I copied my important files to it the moment that I opened the delivery box from Mercado Libre.

But I came back to Arch again. I was having some problems that I didn’t know how to fix in Nix OS, so I installed Arch once more, but in a smarter way to dual boot other distros more easily, and to figure out what was causing the problem. And this time I actually documented the whole process as I installed Arch Linux! So, expect for new articles in the future about that.

Once I “finished” (I’m still configuring everything to be the way I want), I thought that it might be a good article to share here about some of my experiments and ideas might help someone else – and they will serve as an archive of this whole drama, in future Arch/Nix OS installations it’ll be helpful.

Nix OS May Be The Perfect Linux Distribution

Nix OS is just what I expected, it’s quite perfect for all my needs, mainly because of the reproducibillity and the version management of some programs – by itself it can replace asdf, my dotfiles and even BTRFS for taking system snapshots.

I really don’t want to dig too deeply into how Nix OS is great for developers or for game servers, but I need to mention the feature that helped the most when I was trying it out. Once, a friend of mine was explaining how a project that we were working on works, he mentioned that I needed to learn a little bit about Mongo DB, then I used Nix to create an isolated environment with the mongocli package installed. Seriously, that was so smooth; I just wanted to test some application a little bit, and I get it up and running temporailly with one single command.

But, yeah… Of course, it went wrong when I installed it for the first time. For some reason, the internet connection was unbearably slow, and it should not be Nix OS fault. Right? No, it wasn’t; of course, it was a skill issue of mine. I tried to configure the NetworkManager and the WPA Supplicant packages, but none of those fixed my problem. Then I just lost my patience and just burned yet another Arch Linux ISO to my Ventoy USB Drive.

Besides that silly problem, there is some stuff that’s worth commenting about Nix OS.

The Pros And Cons Of Nix OS

Nix OS is weird – someone had to say it. It doesn’t follow the pattern that other distributions follow, so any configuration that you normally do in a Linux Mint, Gentoo, or something else, you’re forced to do in the /etc/nixos/configuration.nix or /etc/nixos/hardware.nix. Like, you don’t edit the fstab file, nor the Systemd ones, everything should be declared into those two files.

I know that’s the beauty of Nix OS, and, as far as I know, Nix OS supports a bunch of different system configurations that’s out there. But… I don’t know, the documentation is pretty bad to me, and I just managed to use the system with the help of some friends on Discord or in random blog posts. I don’t mean that the documentation is bad written, it’s just bad organized and doesn’t cover some tweaks that may be necessary for some use cases.

And I heard from some game developers that Nix OS is annoying because some softwares that they use for doing gaming development stuff is not available for that platform. I’m not a game dev; in my case, I found it very annoying that I wasn’t able to run, nor install, AppImages like I’d do normally in Linux Mint, or Manjaro, you’ve got my point.

Why I’m Back To Arch Linux

Because I was annoyed, and I wanted to have a system that just works… Well, never though that I would say those words when speaking about Arch Linux.

But also, because I did a poor backup of my stuff before installing Nix OS (I want to be better this time) and I just wanted to see what was the problem with the network – I tested that in Linux Mint, it worked just fine, and in Manjaro, which didn’t worked for some reason.

Once I installed my beloved Arch Linux, I was having the same problem. As it turned out, it was a NetworkManager version issue; or WPA Supplicant, they both come together in the same package now. To fix that, I just started using Systemd Networkd to replace NetworkManager and IWD to replace WPA Supplicant. But that’s a story for another post, this one is becoming too big.

Conclusion

And, that’s it. Nix OS is a darn good distribution, and it’s a good new philosophy to try out. All my commentaries was just picky things to justify why I moved back to Arch. But, ya’ know, it wasn’t worthless.

I liked how the Nix OS installer has an option to encrypt my system with LUKS. And I love that the default bootloader was Systemd Boot – I didn’t even know that it existed! Now, in my Arch setup, I choose to use Systemd Boot too, because it renders the bootloader in firmware, which means that I don’t need to decrypt my SSD to load GRUB and then chose which system I want to boot; this really annoyed me in my previous Arch setup.

Still about Systemd Boot, I liked how dead simple it is to configure. Maybe in the future, I’ll create a script that adds entries to boot into snapshots taken by Snapper and write about that here. Who knows, right?

It was a great journey, and I’ll give more details about my freshly installed Arch Linux and how it’s less difficult for me to dual boot without creating or formatting the partitions on my SSD. At the very least, I gained experience with this mess. Thanks for reading!

#Programming   #Exploring   #Linux   #Arch   #Btrfs   #Network   #Wifi  

comments powered by Disqus