I just switched one of my systems over to NixOS from Arch and so far it seems interesting. One question I had is regarding the nix-shell. So I get the basic concept of it and that it allows creating a shell that has packages installed with that shell making ideal for dev environments. I’ve even seen talks where the suggest nix-shells over docker/podman, my question is how is persistent data (like databases) handled?

  • @palebluethought
    link
    English
    19 months ago

    Well, part of the point of NixOS is to eliminate that whole issue of forgotten tinkering – the whole system is defined right there in a few modules, or even one file, and there’s no way for un-tracked tinkering to exist outside those files.

    But can I ask how you use your computer? What goes into these months of prep? I really can’t imagine it.

    • @[email protected]
      link
      fedilink
      English
      1
      edit-2
      9 months ago

      My old OS is kind of a blackbox, in the that I played with countless tools, and I’m not really sure what I will want to reference later. For instance

      • Configure different wine tweaks for games
      • Playing with Monero and crypto wallets/miners
      • Different VMs for tinkering with OSs
      • Self-hosted software in docker containers, plus volumes
      • All the software tools I used for projects
      • Video game modding: some in linux, some in the “windows filesystem” created by steam with proton
      • Software installed from programming package managers: pip, cargo, npm

      …and on. I played with a lot of things without regard for longevity or preservation. I didn’t even takes notes on what I did most of the time. So I got very worried about just switching OSs without a plan in place. Ultimately, I ended up doing the following to transition.

      1. Started adding flakes to all my development projects. This would let me get my environment well defined before messing with my installations.
      2. Installed nix and home-manager, and started slowly uninstalling packages from cargo/pip/apt/npm/flatpak/appimage/snap and add them to my nix config.
      3. Bought a second ssd so I could preserve the current OS as is (this was much easier than shrinking partitions and install nixos alongside it, but it could have been done)
      4. Finally made the jump, using the NixOS configuration on my laptop as a jumping off point. And I still reference my old OS as is, booting into once in a while to remember where things were. I don’t know if I’ll ever actually wipe the drive. I’m just not sure.

      But of course…I’m on NixOS now! So much of these configurations and lists of software packages, will be documented forever.