TL;DR: Two of the most nicest, most technically proficient people you know just got burnt out from contributing to their operating system and this is just another example of NixOS being poorly maintained.

A year since I divested from NixOS and nothing really has changed. The “flakes” design is still a garbage abstraction invented by a neo-nazi to sell to Peter Thiel and Co. The Nix language has not evolved in any meaningful way (nixpkgs is still the load bearing peg).

Nixpkgs has reached over 1 million commits and is pushing what Git can scale to and is now entirely dependent on a Microsoft GitHub enterprise subscription and a Amazon AWS S3 credits for petabytes of CI/CD.

The community still contains active MIC fascists in leadership roles alongside :votevote Europeans. empoc perspectives are treated as community fracturing.

The nix derivations abstractions has not truly caught on (due to it not even being better than containers resource wise) and flakes only makes this worse with unversioned commit hashes serving as “determinism” and “reproducibility” which have become buzzwords at this point.

I only expect this to get worse and worse as Determinate Systems (MIC ghoul company) takes over and nixpkgs collapses as an independent entity.

BTW they haven’t decided on a AI/LLM policy because the steering committee and the nixpkgs core team can’t agree or communicate on anything, which basically means NixOS is going to be a AI hype train project if you enjoy that.

  • ThatVeganYouHate [he/him]@hexbear.net
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    1
    ·
    2 months ago

    I never really understood what NixOS was trying to solve. I already version control /opt/ with all my container definitions and config and can install debian anywhere, clone my repo, restore the stateful database backups and bring up a clone of my server anywhere in minutes.

    • ZWQbpkzl [none/use name]@hexbear.net
      link
      fedilink
      English
      arrow-up
      9
      arrow-down
      1
      ·
      2 months ago

      The only thing that ever impressed me with NixOS was its atomic/immutable rollback feature. Being able to restore to previous “builds” of your OS is something I’ve always wanted in Arch but the closest I’ve seen is darch which boots your OS from a container image. But that project is extremely dead despite its readme saying its finished. Documentation was on godarch.com which is down.

      Otherwise everything that NixOS does is done better by containerization or Ansible. But my fundemantal problem with Nix is the language itself. I’m strongly against “configuration” languages making any sort of abstractions.

      • the_weez@midwest.social
        link
        fedilink
        English
        arrow-up
        8
        ·
        2 months ago

        Wouldn’t something like btrfs and snapper get you what you want in the end? I’ve always felt like fs level snapshots and rollbacks where just as powerful and possibly more resilient.

        • ZWQbpkzl [none/use name]@hexbear.net
          link
          fedilink
          English
          arrow-up
          9
          ·
          2 months ago

          Maybe. I haven’t fully looked into btrfs snapshots because I’m not ready to move off my complicated LUKS on LVM setup. I also don’t think you can simply select a previous version from boot menu like with NixOS or rpm-ostree. I’d frankly be happy with SteamOS’s A/B partition scheme. I haven’t seen a guide on how that’s implemented though.

          • Inui [comrade/them]@hexbear.net
            link
            fedilink
            English
            arrow-up
            8
            ·
            2 months ago

            CachyOS, which is based on Arch, offers Limine as a default bootloader. You can boot snapshots directly from that. I came from using Bazzite for the last 2 years and that fills one of the major advantage gap my atomic setup had over my current one.

            • ZWQbpkzl [none/use name]@hexbear.net
              link
              fedilink
              English
              arrow-up
              3
              ·
              2 months ago

              Btrfs will work on top of a luks or lvm device but it seems silly to use it with lvm since it replicates many of lvm’s features. Normally you would do lvm on luks and replace lvm with btrfs. But since I’m doing luks on lvm I can’t replace lvm with btrfs. btrfs on luks on lvm is possible but it really eliminates most of btrfs features.

              What is opensuse using to generate those grub entries? Does that come with snapper or is it something else?

              • swelter_spark@reddthat.com
                link
                fedilink
                English
                arrow-up
                2
                ·
                1 month ago

                I had to search around a bit to find out. The grub2 snapper plugin in the Tumbleweed repo includes a script in grub.d that adds btrfs snapshots to the boot menu.

    • hello_hello [hy/hym]@hexbear.netOPM
      link
      fedilink
      English
      arrow-up
      7
      ·
      2 months ago

      They mess up even basic things like source packages as most nix users download their sources from the cache service or have to rely on the upstream URL embedded within the build script.

    • gayspacemarxist [they/them, she/her]@hexbear.net
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 month ago

      With nix, I can install the full clone in one shot.

      I think the benefits of Nix appear when you have enough machines where ansible would make sense. You can run migrations on activation, basically manage the entire machine lifecycle using a single config interface that statically manages all the subsystems.

      Maybe its a matter of taste, but I’m personally able to safely manage a lot more complexity using nix than I ever could using containers et al. I find the iteration process is a lot faster because I can write in a bunch of assertions about the schema that is projected down into the real configs. I can run these test scenarios over and over on my local machine so when I finally push it generally works on the first try.