• ComradeKhoumrag@infosec.pub
    link
    fedilink
    arrow-up
    7
    ·
    11 months ago

    Man I still suck at NixOS and it has it’s kinks/learning curve, but if you’re tired of tweaking things constantly the nice thing about NixOS is all your little tweaks get recorded into a single file which builds your base OS into your particular configuration. So after you tweak it and get it right, you’ll never have to tweak it again even if you change computers

    • evranch@lemmy.ca
      link
      fedilink
      arrow-up
      5
      ·
      11 months ago

      That doesn’t sound too different from the regular Unix paradigm where all your config is stored in your home directory. I’ve wiped my root partition many times over the last decade but usually everything in my desktop environment is just the same as it was. Aside from migration of dotfiles into .config which was honestly overdue.

      Unless NixOS is kind of like Ansible and is a build script for the whole system, package management and all? Haven’t tried it myself.

      My concern would be slow buildup of unused packages if that’s the case. It’s nice to wipe out that junk on an upgrade.

      • currycourier@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        11 months ago

        I haven’t used Ansible but it sounds pretty much like that, basically you write out all the packages you want in a config and it builds the system from that. Very nice in terms of stability and maintainability. I’m very much an amateur so I can’t say for sure but I think the unused package issue would still exist on nix.

      • ComradeKhoumrag@infosec.pub
        link
        fedilink
        arrow-up
        2
        ·
        11 months ago

        Exactly, like ansible.

        Unused packages aren’t typically a problem unless you imperatively change your systems state. Otherwise, If you remove it from your configuration.nix, it’s removed when you switch to your next build. Previous builds/generations keep those versions of those packages, which wastes space, but you can specify garbage collection to remove generations older than a month

        My only complaint so far is the best way to properly make a development shell for a python project is either with a still somewhat experimental feature called flakes, or a 3rd party solution poetry2nix. Im probably going to switch to using docker/podman for python projects.

        On the other hand, pip is the worst package manager, so being incentivized away from it is kind of a plus