How do you keep track of all apps you install and their configurations?

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!

TheFriendlyArtificer,

github.com/koepnick/dotfiles cloned into ~/.config

I typically start with a restrictive .gitignore and add directories as needed.

A ton of stuff that I always forget like mpv, vifm, and whatnot always slipped through the cracks before. Now I can clone to practically anywhere and have everything just work.

gzrrt,
gzrrt avatar

I keep a .dotfiles folder in my home dir, use syncthing to back up those files on a couple of other computers, and then (on a new install) just make the actual config files symlinks to those files.

AbidanYre,

Ansible, although that may be overkill.

DarkwinDuck,

I personally considered doing this but the time i would have to invest vs the frequency of doing a fresh install just doesn’t warrant it. Too complex.

AbidanYre,

I screw around with self hosting and homelab stuff that it was an interesting thing to learn at a certain point.

I don’t think I noticed which c this was in. For a regular user it’s probably not worth the effort.

DarkwinDuck,

Well i write frequently write playbooks at work. But for my laptop it Still felt not worth it. I have a playbook for my Server stuff though.

Atemu,
@Atemu@lemmy.ml avatar

How do you keep track of what you’ve installed/ your favorite apps?

github.com/Atemu/nixos-config/…/packages.nix

Separately, how can I backup the configurations I’m using right now.

etckeeper.branchable.com

MaxVoltage,
@MaxVoltage@lemmy.world avatar

😂😂😂 😭😭😭😭

SmallAlmond,

Home Manager on a NixOS flake, it’s a rabbit hole but I’ve been loving it since last week!

tom42,
@tom42@lemmy.world avatar

Home manager on NixOS and stored all config files in a Git repo

Bankenstein,

Move all your heavily modified config files into a git repository and host it somewhere. Then symlink all your config files to where they should be with ln -s ~/.config/whatever ~/gitrepo/whatever. That’s how you preserve your important configs.

You can easily get a list of your installed packages (which you can keep in your repository) with apt list --installed > packages.txt. You can then format that list to one you can install from with sed -e “s-/.*$–” <packages.txt (or something, i don’t have apt, can’t test it fully).

In fact, if someone here is more familiar with apt, please find a way to filter out packages that were not explicitly installed and reply to this comment with your solution.

sibloure,

This combined with stow command makes it very simple to “install” your system configuration on a new machine.

djsaskdja,

I make a list of all the ones I like. Then when I feel my system is getting too bloated, I wipe and reinstall while only installing the packages from my list.

It’s very “low tech,” but it’s always worked out well for me.

perishthethought,

Yes, I think this is more like what I’ll do, though I like the idea of a git repo for the configurations. Cheers

gobbling871,

Backup $home and /etc. That should be good enough.

perishthethought,

Yes, my concern with this is that I have Steam installed and its games are many many GBs. If I do a backup I’ll have to exclude that folder. I’ll try this and see how it goes. Thanks!

nekusoul,
@nekusoul@lemmy.nekusoul.de avatar

Apart from those little tools running in the background that get their own little “How to install and configure X” file, I don’t keep a list. I just install things as I need them, copying back config files from a backup. It’s less annoying and time consuming than one might expect and keeps the system slim by not installing what I never use anyway.

zacher_glachl,

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.

mariom,

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

hikarulsi,
@hikarulsi@lemmy.world avatar

Do you have an example of a generalise makefile that does that? Or does it need to be customise per configuration?

mariom,

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 ;)

eshep,

@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. It gets backed up alongside all other /etc/portage/ stuff.

shinnoodles,
@shinnoodles@lemmy.world avatar

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.

odium,

Iirc pacman -Qe does something like this

  • All
  • Subscribed
  • Moderated
  • Favorites
  • linux@lemmy.ml
  • tacticalgear
  • DreamBathrooms
  • cisconetworking
  • khanakhh
  • mdbf
  • magazineikmin
  • modclub
  • InstantRegret
  • rosin
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • ngwrru68w68
  • JUstTest
  • everett
  • tester
  • cubers
  • normalnudes
  • thenastyranch
  • osvaldo12
  • GTA5RPClips
  • ethstaker
  • Leos
  • provamag3
  • anitta
  • megavids
  • lostlight
  • All magazines