1. 50
  1.  

  2. 4

    I need to do this. I’ve set up a few NixOS systems and I get a little further each time but as soon as I need to get work done, I hop back over to my existing Ubuntu box.

    It’s just too much overhead to have look up how to configure everything. I need to get over the hump because once I get the system going, it won’t need to change much.

    The linked cheat sheet is nice for the day-to-day maintenance commands.

    1. 2

      This, very much. I come back to Arch Linux every time (before it was Linux Mint) because the wiki is excellent. I’d like to try Gentoo, FreeBSD, and NixOS, but for those OSes it feels like much more of a struggle to set up a usable system.

      I feel like NixOS’ most important contribution is the idea of reproducible builds. I’ve heard that the package manager can also be used on other operating system, but I’m not sure how different the experience would from using NixOS (I don’t know about package managers in general, but I’d like to learn more).

      1. 9

        I feel like NixOS’ most important contribution is the idea of reproducible builds. I’ve heard that the package manager can also be used on other operating system, but I’m not sure how different the experience would from using NixOS (I don’t know about package managers in general, but I’d like to learn more).

        Nix offers so much more than reproducible builds. E.g.:

        • Transactional upgrades with rollback.
        • Environments (with a set of dependencies) that are only live in a particular shell or directory (with direenv).
        • Management of your package set jointly with your system or home directory configuration. See NixOS, nix-darwin, and home-manager
        • Nix allows users to use their own sets of packages, without global visibility.
        • You can have different versions of different libraries at the same time.
        • Since Nix is a functional language, it is easy to override existing derivations (change some attributes) for your own custom Boost, OpenCV, or whatever. All non-conflicting with other versions of the same programs/libraries.

        John Wiegley has a very nice introduction to Nix. It is a bit much to take all in without any experience, but it gives a good impression of what is possible:

        https://www.youtube.com/watch?v=G9yiJ7d5LeI Just to give an example of the power of Nix. It supports ZFS installs, but is not supported by the default ISO configuration. You add support for ZFS to the installation editing the system configuration of the live system booted from DVD/USB, then doing a nixos-rebuild switch in-place. Afterwards your live system

        1. 1

          Cool! I mostly meant ‘I think this would be the most convenient feature for me, if I would use NixOS’. But these are very nice as well. I ought to give it a try :)

        2. 5

          I feel like NixOS’ most important contribution is the idea of reproducible builds.

          I would attribute that to Debian. They started the activity in 2013 and did most of the work to fix the builds on Linux. While NixOS is surprisingly old (2003) it became popular around 2015. The actual impulse seems have come from the Tor project.

        3. 1

          Responding to myself, I didn’t notice it mentioned in the article but to find the configuration options for things, you can look them up at https://nixos.org/nixos/options.html

          1. 2

            You might be aware of this already, but in case you’re not: there’s also the configuration.nix(5) manpage which contains every nixos configuration option.

            1. 2

              There’s also the nixos-option command line tool.