• rozodru@piefed.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 day ago

    yeah basically it locks it to your current build/system.

    So for example I use it for my overall system config. I have a flake, a configuration.nix, and a home.nix all of which are tied to my git repo. I make a change to the system be it installing a package or modifying something or other I can then push that to my git repo. Say I want to take my system as is and put it on another pc/laptop I can then go on the new machine, clone my nix repo, and build it now that new machine is exactly the same setup as my main machine. Like a few weeks ago I put Arch on my main machine for a couple weeks and then went back to nix. It took less than 10minutes to install NixOS and get my machine back to where it was exactly prior to putting Arch on it.

    For Dev work flakes allows you to bypass the whole “well it works on my machine” since you develop in flakes you can take that development environment anywhere and it’ll always work regardless of what machine you put it on.

    Think of it sort of like a Docker container.

    • Clay_pidgin@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      15 hours ago

      Does having a flake lock the versions of everything, or just the packages mentioned in the flake? (I assume the latter)

      I had a flake for a minute but since I had no idea what I was doing, I was more comfortable moving that stuff into my config.nix.