I have been using Gentoo exclusively for about two years and really enjoyed it. The customization and package manager is just top-notch. I have been curious about NixOS for some time, just randomly seeing it pop in some discussion, but never really looked into it. One day YouTube recommends this video about flakes for development instead of using Dockerfiles.

It intrigued me because I am not really fan of Dockerfiles. In my experience, it is too easy for something to break and pretty hard to maintain them properly. Plus, it is really annoying to use them for development.

So I started looking into Nix and then NixOS and created a new partition and installed it and so far it is a pretty interesting experience. The system is pretty customizable, and it is nice having the entire system described in configuration files. I could see myself using the same config for my laptop and desktop and just sync them. It is really nice and easy to have your entire system configuration in git repo, much easier than what I used with things like etckeeper.

So far there are only few issues I encountered. Not every package is implemented properly, so some configuration is the same old story of using files in /etc or maybe just specifying a configuration file in your config. I’ve also read about some issues with Nix not using FHS (Filesystem Hierarchy Standard) for example Steam had some issues but so far I didn’t encounter them. Also, the documentation is not what I am used to coming from Gentoo, but it is still usable.

The last issue I have is not really an issue. It is pretty time-consuming to make your entire configuration, especially if you want to use flakes. I’ve been slowly adding more and more but so far only into default configuration.nix and would love to rewrite it completely into flakes, but it takes time.

So far I didn’t decide that I would be not going back to Gentoo, but it is fascinating experience. I am especially curious how will this impact my development workflow because it should be much easier to control dependencies per project. Especially with something like Python (always really hated using venvs).

Anyone else trying NixOS or using it already?

  • @PorkrollPosadist
    link
    English
    3
    edit-2
    11 months ago

    I’ve used Gentoo for the past five years or so, and off and on for another decade and a half prior. I tried out NixOS for a couple of months and thought it was pretty cool, but in practice maintaining it was not very fun. A lot of things can be set up with one-liners in your Nix file, but other simple things, like making the login prompt show up on the correct display (i.e. my monitor, not the TV) are murder. Setting up complex systems like NextCloud along with Apache and PostgreSQL requires cross-referencing the upstream manuals with the Nix manuals, diving into the actual Nix packages, and you run into a lot of edge-case bugs with little documentation. Also, NixOps is an absolute shit show (to be fair, this is 3rd party, not NixOS’s fault).

    If you can get past the absolutely useless error messages and set up a working configuration, it is very cool. Getting to that point can take several days though. Doing updates without waiting for compilation is very convenient.

    • @Prologue7642OP
      link
      English
      211 months ago

      That is something that I am encountering too. If there is support for what you want to do, it is really easy to do. But if you want something unorthodox, it is often quite complicated. Hopefully that is partially due to my inexperience. I remember when I first installed Gentoo, I also had no idea what I was doing.

      Thankfully I don’t really need to worry about setting up databases and other services, I have another server at home that is running everything I need, so I just need to focus on my configuration.

      The update experience is really strange for me. I almost became addicted to doing updates every day, and now they just happen, and I don’t even get to see that something is installing.

      I am really curious if I will be able to get my config to the point where I can just use one config for both my desktop and laptop. It would be really nice as I usually don’t use my laptop for work stuff but on rare occasions that I do, I always find I am missing something.