1. 41

and discourse announcement: https://discourse.nixos.org/t/nixos-19-09-release/4306

apologies for the tags, I couldn’t find “nix” or “nixos”

  1.  

  2. 4

    After this release was announced, @cmb spent the day putting together a netboot installer for it, such that a 19.09 install image is now available as a menu option from the prgmr.com management console. I hope that’s a useful way for some of you to try this release out.

    Interestingly enough, while preparing this installer, we had to work around a bug that we’ve also seen a variant of in Debian where the nixos user is logged in to multiple consoles (ttyS0, hvc0, tty1) leading to potential race conditions as commands are run on all of them. We’ll file a ticket upstream shortly.

    1. 2

      only tangentially related, but does anyone have a good guide on shipping a nix expression with a project to allow people to set up a dev environment for a project without going through docker/VM? It seems really good tool for that but most guides I find seem to be more for whole system management than “just install some stuff on some machine”

      1. 13

        The keyword you’re interested in is nix-shell.

        Good luck! :)

        1. 1

          Sounds like guix environment. Are they the same?

          1. 2

            Yep, modulo flags and defaults, although nix-shell only drops you in a shell (guix environment can also create a container).

            1. 1

              I don’t know guix at all, and only somewhat know nix. Maybe somebody more knowledgeable can chime in? But via naming, I’d guess probably yes…

        2. 2

          NixOS is a Linux distro, so I suggest ‘linux’ tag.

          1. 1

            Probably a dumb question, but can the user level unionfs mounts be used in a similar way to what Nix does with symbolic links? For example, say:

            pkg1.sha1 depends on lib1.v1.sha2 and lib2.v1.sha3, and pkg2.sha2 on lib1.v2.sha4

            When building pkg1.sha1, union mount pkg1.sha1, lib1.v1.sha2 and lib2.v2.sha3 to a directory dir.sha7, chroot to dir.sha7 so that the libraries are in the correct place, and invoke build commands. Similarly, when using commands pkg1.sha1, use the same procedure.

            Similarly for pkg2.sha2, union mount pkg2.sha2, and lib1.v2.sha4.

            1. 3
              1. 1

                Thanks for the link. I will check that out.

              2. 2

                Hah I’m building a package builder for a Linux distro experiment and plan to do exactly this.

                1. 1

                  Any chance for a link? I am extremely interested :).

                  1. 2

                    There’s nothing public yet. It’s a spare time project that’s has been bumped temporarily for another side project. I jot down thoughts at https://uld.wezm.net/ from time to time.

                    1. 1

                      Thanks, much appreciated.

                2. 1

                  It’s not a dumb question at all.

                  One of the downside is that creating new user namespaces, and then mounting all the dependencies is relatively expensive compared to resolving symlinks. It also restricts the usage of the package manager to Linux since other kernels don’t tend to have that feature available (except Plan9).

                  The Nix approach is a bit simpler to implement, and also is more composable because it works with both programs and configuration files.