I’m looking for interesting tools to automate managing packaging and configuring everything automated.

And yeah I know about NixOS but I like to distro hop and experiment so I for now know these:

  • Ansible - automating many machines, using different package names as vars and package managers.
  • Bash - the most native and compatible scripting language that can be.
  • Chezmoi - for dotfiles.

For now that’s it. I’m looking forward for your suggestions!

  • hperrin@lemmy.world
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    7 months ago

    I’ve tried to move as much as I can into Flatpak. That way I can just copy my .var folder, and all my apps are migrated.

    For other things like my configs, I use a git repo.

  • Auster@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    7 months ago

    One thing I like to have with me is the AppImage version of programs when possible, since they usually work out of the box. Also helps ensuring I don’t depend on the availability of whatever package manager the system uses.

    • Psyhackological@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      7 months ago

      Do they also embed the configuration inside of them? But for many dependencies and binaries I don’t think that would be a good case scenario compared to package manager.

      • Auster@lemm.ee
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        7 months ago

        There are cases where AppImages aren’t viable indeed, like with programs that require ring 0 access. But limitations exist for all formats, so perhaps another good alternative is having multiple versions of a given program, like downloading the equivalent deb package through apt while also keeping the appimage version. It would bloat the storage for a potential automated configuration, but it should help with ensuring compatibility.

  • chrash0@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    7 months ago

    i’ve used Chezmoi for years now pretty successfully. works on my Mac and Linux machines. it probably could be made to work on Windows. i am transitioning to NixOS, but i’ll probably keep using it anyway, since i still have Macs for work (and because they’re great laptops don’t @ me). the only real downside is that it only works for the home folder, so i have to manually control stuff for /etc, but i generally prefer user configuration for most tools anyway.

    i had messed around with Ansible for this in the past, but i didn’t really like it for this use case. it’s been a while tho so it’s hard to say why.

    not to pile on, but you might also look at GNU Stow. i decided against it, but it’s there.

    obligatory i s’pose: https://github.com/covercash2/dotfiles

    • data1701d (He/Him)@startrek.website
      link
      fedilink
      English
      arrow-up
      2
      ·
      7 months ago

      I’m not a Mac fan, but I do keep a Hackintosh VM with GPU passthrough to run the occasional XCode and the like or send a text message when I’m too lazy to pull out my iPhone. I will say that MacOS’s standardized interface is rather nice, though.

      • Psyhackological@lemmy.mlOP
        link
        fedilink
        arrow-up
        1
        ·
        7 months ago

        Wow, you went through hell with this Hacintosh. Interesting that you have an iPhone not Android when you use Linux.

        • data1701d (He/Him)@startrek.website
          link
          fedilink
          English
          arrow-up
          2
          ·
          7 months ago

          On one hand, I did go through heck at one point trying to get the config.plist right to no avail. I then found some guy’s preconfigured OpenCore image made specifically for virtual machines (I usually avoid such things, but as a VM is basically a standardized platform, I’ll take it), upon which my life has been very easy ever since. Passthrough was just a matter of copying my Windows passthrough scripts.

          One day, I want to buy a Google Pixel and run LineageOS, but I’m not in the position to do that right now.

            • data1701d (He/Him)@startrek.website
              link
              fedilink
              English
              arrow-up
              1
              ·
              7 months ago

              For the GPU passthrough, I reused what I did for Windows 10. After that, I think you have to add a few QEMU flags in the Virt Manager XML (have to find them), but after that, you just download an OpenCore ISO from https://github.com/thenickdude/KVM-Opencore and it pretty much just works (except for audio, which is something I’m working ob. I got a Pulse server running on MacOS once and forwarded it to my Linux sound server over the virtual network, but I haven’t been able to replicate that.) Every few months, they’ll update it with the latest OpenCore.

    • Psyhackological@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      7 months ago

      Yeah I see everyone saying chezmoi is great.

      Ansible seems fine but also complicate many thing not doing something in bash.

      GNU Stow seems even more complication than Ansible.

      Bash seems the most simplest one.

  • communism@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    7 months ago

    Most of my files are different across machines because of different themes etc. The only dotfiles I have synced across machines are my .zshrc, .gitconfig, .ideavimrc (not my actual vimrc because it has some machine-specific theming), and .p10k.zsh. I have them all in a folder synced with syncthing and then I symlink ~/.zshrc to e.g. ~/dotfiles/.zshrc.

  • Thurstylark@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    ·
    7 months ago

    I use vcsh and myrepos.

    vcsh allows you to run multiple git repos that share ~ as their root, and mr simplifies/automates the management of those multiple repos. You can check out my setup here.

  • data1701d (He/Him)@startrek.website
    link
    fedilink
    English
    arrow-up
    2
    ·
    7 months ago

    I’ll be frank - I never have, though I probably should. For me, if an application’s configuration ever annoys me enough, I just manually copy the config from a machine that I already did the config.

    One day, I may set up a shell script based on Debian’s Debootstrap that feeds it a list of packages (I think you can provide it a text file with a list of packages) to get everything set up, but that day is not today.

  • ipkpjersi@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    7 months ago

    I have a Linux setup script that downloads a bunch of config files and sets them up. I also have backups of my zshrc and other configs, and that helps a ton too. I have a Linux scripts repo on GitHub where I toss all my Linux scripts and that’s quite helpful too.

  • k4j8@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    7 months ago

    I wrote my own program, filetailor. It’s similar to Chezmoi but uses inline comments instead of templates for machine-specific lines. This allows me to make edits directly to my local files and then sync those changes to other machines.

    I also use Ansible.