13 votes

Any NixOS users?

Has anyone here used NixOS for any significant amount of time as their daily driver? I've been considering using it since I learned about it, I really like the idea of how it manages packages, but I'm a bit hesitant, particularly about the availability of packages, and how the whole folder structure changes from the usual Linux. I'm also worried since I haven't seen any guide about how to use python other than the usual advice to get a virtualenv for everything.

I consider myself a fairly advanced Linux user, I have used Arch as my daily driver for 4 years, and Linux for like 10 years, as a side note, so I'm not really that afraid of troubleshooting.

9 comments

  1. [3]
    moredhel
    Link
    Been using it as my daily driver for almost a year now, have contributed packages and written projects in a few different languages. As a desktop system I absolutely love it, I couldn’t ask for...

    Been using it as my daily driver for almost a year now, have contributed packages and written projects in a few different languages. As a desktop system I absolutely love it, I couldn’t ask for anything easier to use. I used arch for a couple of years previously but I found it too much of a hassle, updating config files, rolling back broken packages. Nixon’s makes this not even a concern. I must have broken my system at least 15 times, and can just reboot with the last known good configuration and carry on. (Note, I was messing about with mounting hard drives and trying to get ZFS to work).

    When it comes to development the community is still split. Some people want to declare all of their dependencies via the package manager, others want to use the language-specific dependency manager. Personallly I would still recommend using a virtual env for development then a tool like pypi2nix to build a nix package (if you are wanting to deploy it on nix).

    The last slight issue is editor configuration, and this is highly dependent on what environment you use, so I won’t go into it for the moment.

    Tldr; Nixos is great, develop like you normally would, hit me up if you want tips on how to configure your editor with NixOs.

    3 votes
    1. [2]
      Edes
      Link Parent
      What do you mean by editor configuration, do I not just throw in my .vimrc?

      What do you mean by editor configuration, do I not just throw in my .vimrc?

      1. moredhel
        Link Parent
        I was thinking more along the lines of when you are wanting to use build-tools, or linting tools with your editor, they need to be available in the $PATH in a reliable way. One can install them...

        I was thinking more along the lines of when you are wanting to use build-tools, or linting tools with your editor, they need to be available in the $PATH in a reliable way. One can install them globally, which I really really don't like doing. The other option is to install them locally and augment your PATH to point to the new, temporary, location. Keep things clean.

  2. hook
    Link
    I run it as the only OS on my private laptop. I knew about NixOS for several years, but just over half a year ago started using it as a daily driver. I'm not a power user by far, but happy to...

    I run it as the only OS on my private laptop. I knew about NixOS for several years, but just over half a year ago started using it as a daily driver.

    I'm not a power user by far, but happy to answer your questions.

    The folder structure works, unless a binary assumes a full LSB or a specific distro's layout. Even then there are some tools to trick it (e.g. steam-run).

    I haven't had any issues yet with Python, although I haven't actively looked for trouble either so far.

    2 votes
  3. [2]
    dodger
    Link
    This is interesting. Almost seems like terraform on an os level (very crude comparison). But with docker being so accessible and stable and prevalent, what are the use cases where nixos prevails...

    This is interesting. Almost seems like terraform on an os level (very crude comparison). But with docker being so accessible and stable and prevalent, what are the use cases where nixos prevails over docker?

    1. hook
      (edited )
      Link Parent
      They solve two different things. In fact there are many who use Nix(OS) to create Docker images. From the practical everyday PoV, one of the major differences is that Docker images can contain...

      They solve two different things. In fact there are many who use Nix(OS) to create Docker images.

      From the practical everyday PoV, one of the major differences is that Docker images can contain other Docker images and it can quickly become very messy indeed. It’s similar, but perhaps slightly less messy with other container images such as Snaps, Flatpacks, etc.

      On the other hand Nix (the package manager) and therefore NixOS (the distro) store every package in a separate directory and then link from it. Every package is built in a clean environment, so it can work independently and links to its dependencies, which are built the same way. That also means that you can have several versions of the same package installed and either call them explicitly or simply switch between them on the fly.

      Then there’s also the ability to roll back (and forward) to a different state of the OS.

  4. elf
    Link
    NixOS fascinates me, but I haven't installed it anywhere. Maybe when I buy a new laptop...

    NixOS fascinates me, but I haven't installed it anywhere. Maybe when I buy a new laptop...

  5. [2]
    kgz
    Link
    I use it on my home machine, and have done for a few years. My configuration.nix lives here: https://github.com/kragniz/configuration.nix/

    I use it on my home machine, and have done for a few years.

    My configuration.nix lives here: https://github.com/kragniz/configuration.nix/

    1. hook
      Link Parent
      To explain this further, the /etc/nixos/configuration.nix (file or folder) is pretty much the only thing you need to build a NixOS system – you put all the packages and settings, including disk...

      To explain this further, the /etc/nixos/configuration.nix (file or folder) is pretty much the only thing you need to build a NixOS system – you put all the packages and settings, including disk partitioning, users, services, etc. into it.