Earlier this year, I built a new PC and it’s running Ubuntu. I’ve been installing various apps and configuring them since then. Now, I realize I don’t have any way of knowing what I would want to reinstall, if I (for instance) lost this drive somehow.
How do you keep track of what you’ve installed/ your favorite apps?
Separately, how can I backup the configurations I’m using right now.
Thanks!
Git.
Keep all the config files of your tools in subdirectories of a git versioned directory and symlink them into their target location (e.g. with GNU stow). If installation of a tool is involved and you expect to have to revisit it, put the steps into an installation bash script and version it as well.
+1, essential ones I keep in GitHub repository (like zsh, tmux, xdefaults configs with no personal data). With makefile that makes symlinks. This is the easiest way to sync zsh config between my personal and work machines.
Rest is just in a backup.
Do you have an example of a generalise makefile that does that? Or does it need to be customise per configuration?
On my GitHub repo. Needs to be customized, but you should get the idea.
Maybe there is a way to write it better, I’m no makefile expert ;)
@zacher_glachl @perishthethought I take a similar approach starting with a bare work-tree at $HOME/.cfg
and add config files I’ve changed. Then throw my --git-dir
and --work-tree
switches in an alias for git.
As for installed programs, a simple backup of my portage world file takes car of that.
Oh! I can participate!
Everything I have/configure is 100% in Ansible. I learned the hard way that rebuilding a workstation from scratch sucks if I only depend on my brain to remember things.
It takes some effort to keep it updated - if I’m trying out a new app, I have to remember to add it to my config.
The other thing that I’ve started doing is using Restic for file level backups. That’s relatively easy to set up, it supports a multitude of backend storage, and works well with a cron job for braindead backups.
I just check my Nix.config, but most distros don’t have that privilege.
Idk how it works for most other distros, but I know on Arch you can check all packages manually installed by pacman and your AUR helper.
Home Manager on a NixOS flake, it’s a rabbit hole but I’ve been loving it since last week!