1. 3

    Any NixOS user can tell me if the only way to have the latest version of everything is to use the unstable channel? Basically I want Arch but with an easy undo button so I don’t look like a fool at work when upgrades go bad.

    1. 8

      I’m an Arch -> NixOS convert and run unstable, it’s basically what you’re looking for.

      1. 2

        Thanks you very much.

      2. 3

        Even better, you can run stable, but then manually pull unstable packages out and install them. I ran 17.09 but pulled in the unstable LLVM 6.0 for example. The same would work for firefox/chrome or other packages.

        for example:

        let
        unstablePkgs = import ((import <nixpkgs> { }).fetchFromGitHub {
          owner = "NixOS";
          repo = "nixpkgs";
          rev = "Some future unstable nixos version with a version of firefox you want";
          sha256 = "XXX";
        }) { config = { }; }
        in
          unstablePkgs.firefox
        

        If you paste that into a file default.nix and run “nix-build” (or now in this release “nix build”) it will give you exactly the right firefox like magic you can also install it into your user profile with nix-env -i.

        edit: Or what you could do, is run unstable, but pull in old packages from the past if you don’t want the new one.

        1. 2

          like magic

          that is also my experience in using nix.

          1. 1

            That’s a super easy way to do it. If you wanna add unstable and have a tool track the commits, you can use nix-channel, add it then install it via nix-env and a prefix.

            1. 1

              Any NixOS user can tell me if the only way to have the latest version of everything is to use the unstable channel? Basically I want Arch but with an easy undo button so I don’t look like a fool at work when upgrades go bad.

              True, I have never tried having multiple channels, but it works too.