Skip Navigation

How have you automated configuring your machines in terms of packages and dotfiles so it works cross-distro?

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!

49 comments
  • 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.

  • 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.

  • After some manual reinstalls and much repetition, I've been using a custom script for the past year or so, which I'm slowly open sourcing through a rewrite.

  • I use SaltStack to automate my servers. Just feels better than Ansible to me.
    For my PC and laptop I don't do anything, I haven't hopped distribution since I started using Tumbleweed a few years 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.

    • Perhaps you’re tired of hearing it but this is very close to exactly how NixOS works with home manager.

      • Quite honestly, I almost chose NixOS over Debian a few years for that reason, but I prefer the community support of Debian. Of course, that could change, but right now, I’m not in a big distro-hopping mood nor am I sufficiently unhappy with Debian. On a side note, it kind of bothered me that you couldn’t use Nix to configure e.g the layout of your XFCE desktop. If I ever transition, maybe I’ll put in some time one summer to make that all work.

49 comments