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!

  • chameleon@fedia.io
    link
    fedilink
    arrow-up
    3
    ·
    3 months ago

    My dotfiles aren’t distro-specific because they’re symlinks into a git repo (or tarball) + a homegrown shell script to make them, and that’s about the end of it.

    My NixOS configuration is split between must-have CLI tools/nice-to-have CLI tools/hardware-related CLI tools/GUI tools and functions as a suitable reference for non-Nix distros, even having a few comments on what the package names are elsewhere, but installation is ultimately still manual.

  • KindaABigDyl@programming.dev
    link
    fedilink
    arrow-up
    17
    ·
    3 months ago

    And yeah I know about NixOS but I like to distro hop and experiment

    If you know about NixOS, then you probably know this, but Nix, the package manager/the language behind NixOS, is cross-platform.

    I daily drive NixOS, but I also use Nix (and home-manager) on my Fedora music laptop, my Ubuntu home file-server, and my work Windows machine (WSL) to install and configure neovim automatically instead of copying a config, installing all the packages, and running check health over and over again until everything is set up.

    I just copy my neovim.nix file over (also other things like zsh.nix) and run home-manager switch

    You don’t have to use NixOS to take advantage of its benefits.

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

      It always seemed to me like Nix package manager is not “native” enough or there are some downsides compared to dnf or apt. If that’s not the case I think I’ve got my answer.

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

        From an outsider perspective (I haven’t used Nix at all), the downsides I see are that it’s extra software on top of the defaults for any given distro, it’s not optimized for the distro (meaning it might pull in dependencies that already exist or not use distro specific APIs/libs), and it doesn’t adhere to the motivations of the distro (e.g. not adhering to the DFSGs for Debian).

        And of course, most of the packages are community maintained and there’s the immutability, which might be a hinderance to some use cases, but not for me.

        All in all, not really the worst if you’re not worried about space or getting the absolute most in performance and not an ideologue, but it’s enough to make me stick with APT. I chose Debian because of its commitment to FOSS, not the stability nor performance.

  • communism@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    3 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.

  • ipkpjersi@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    3 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.

      • ipkpjersi@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        3 months ago

        Nope. I’m more of a dev than a sysadmin these days, pretty much always have been, so I never bothered learning something like Ansible or Puppet or Chef etc. A couple Bash scripts can get me nearly entirely set up so it’s all I ever really needed.

  • k4j8@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    3 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.

  • Thurstylark@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 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.

    • demesisx@infosec.pub
      link
      fedilink
      English
      arrow-up
      14
      ·
      3 months ago

      I do this in combination with Nix-Darwin for one of my machines. I also have some Kubernetes clusters and RISC-V machines running bare metal executables using NixOS-Anywhere and some other stuff.

  • Auster@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    3 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
      ·
      3 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
        3 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.