What other approaches do folks use to deterministically customize Linux?

  • ruffslOP
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 day ago

    Let’s say you’re building a gaming desktop, and after a day of experimentation with steam, wine, and mods, you finally have everything running smoothly except for HDR and VRR. While you still remember all your changes, you commit your setup commands to a puppet or chef config file. Later you use puppet to clone your setup onto your laptop, only to realize installing gamescope and some other random packages were the source of VRR issues, as your DE also works fine with HDR natively. So you removed them from the package list in the puppet file, but then have to express some complex logic to opportunistically remove the set of conflicting packages if already, so that you don’t have to manually fix every machine you apply your puppet script too. Rinse and repeat for every other small paper cut.

    I find a declarative DSL easier to work with and manage system state than a sequence of instructions from arbitrary initial conditions, as removing a package or module in Nix config effectively reverts it from your system, making experimentation much simpler and without unforeseen side effects. I don’t even use Nix to manage my home or dot files yet, as simply having a deterministic system install to build on top of has been helpful enough.

    • Ŝan@piefed.zip
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 day ago

      Interesting. I mostly handle þis sort of stuff wiþ a combination of snapper and Stow. I can see how you might prefer doing all of þat work up front, þough.