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!

bmbufalo,
happyhippo,

git repo

A bash script

apt get install <your list here>

Same with flatpak

Keep updated. Done.

argv_minus_one,

I back up the entire system, apps and all. The main reason is so that I can get back up and running quickly, but it also spares me the need to worry about which apps to reinstall.

CalcProgrammer1,
@CalcProgrammer1@lemmy.ml avatar

Install fresh copy of Linux OS on a new device. Install the apps I know I need like browser, code editor, etc.

Use device.

Realize “oh crap I forgot to install X!”

Install X

Repeat until all X have been installed.

perishthethought,

Lol, pretty much what I’ve done in the past. And yep, it works, eventually.

Lemmchen,

Plus backup /home and /etc, maybe /opt as well.

garam,

Use ansible and variable, so it can be replicated to other computer. Simple

<pre style="background-color:#ffffff;">
<span style="color:#323232;">ansible.builtin.apt:
</span><span style="color:#323232;">   name: "{{ item }}"
</span><span style="color:#323232;">   state: latest
</span><span style="color:#323232;">loop:
</span><span style="color:#323232;">   - pkg1
</span><span style="color:#323232;">   - pkg2
</span>
NixDev,

At work we are starting to transition to Ansible from chef and other homegrown solutions. So to learn Ansible I added awx to my home lab and now have playbooks for almost all of my devices. Going to format a Pi again soon and see if everything works as intended

amadeus,

I keep a changelog for all my computers and note installations, uninstallations and config changes.

gms77,
gms77 avatar

I use a notepad and write down the apps I mostly use so when I do a reinstall I just reference that.

inspxtr,

If you use other package managers like flatpak, nix-env (for non-NixOS), npm (for global stuff), … you can just create a bash script to list all installed packages for each manager, and save to a file(s). I put them in a git repo to version control these lists, which are updated every now and then when I update stuff.

davad,

A dot files repo for some basic config and an Ansible repo to stand everything up. This applies to both my Linux and MacOS machines.

All the people taking about their NixOS setups had me thinking of giving that a try, though.

xoggy,
@xoggy@programming.dev avatar

NixOS stores a snapshot of your OS and all the app configs in an OS config folder for you. Helpful for instant system recovery or deploying the setup to new hardware.

nbailey,
@nbailey@lemmy.ca avatar

Write install and maintenance guides, save them somewhere public. Automation is good, but documentation and practicing technical writing is better.

cleric_splash,
<pre style="background-color:#ffffff;">
<span style="color:#323232;">function pkglist -d "Gets list of installed packages"
</span><span style="color:#323232;">  # Prevent descriptions in other languages
</span><span style="color:#323232;">  set -l LANG C
</span><span style="color:#323232;">  # Define pkglists location
</span><span style="color:#323232;">  set -l dot $HOME/.config/dotfiles
</span><span style="color:#323232;">
</span><span style="color:#323232;">  echo "(1/5) RPM-OSTREE status"
</span><span style="color:#323232;">  rpm-ostree status > $dot/pkglist.rpm-ostree --booted
</span><span style="color:#323232;">
</span><span style="color:#323232;">  echo "(2/5) Identify flatpaks"
</span><span style="color:#323232;">  flatpak list --app --columns=application > $dot/pkglist.flatpak
</span><span style="color:#323232;">
</span><span style="color:#323232;">  echo "(3/5) Identify pinned flatpak runtimes"
</span><span style="color:#323232;">  flatpak pin > $dot/pkglist.flatpak.pinned
</span><span style="color:#323232;">
</span><span style="color:#323232;">  echo "(4/5) Identify flatpak overrides"
</span><span style="color:#323232;">  for i in (cat $dot/pkglist.flatpak)
</span><span style="color:#323232;">      if test -s (flatpak override --show --user $i|psub)
</span><span style="color:#323232;">	  echo $i
</span><span style="color:#323232;">	  flatpak override --show --user $i
</span><span style="color:#323232;">	  echo
</span><span style="color:#323232;">      end
</span><span style="color:#323232;">  end > $dot/pkglist.flatpak.overrides
</span><span style="color:#323232;">
</span><span style="color:#323232;">  echo "(5/5) Save KDE configuration"
</span><span style="color:#323232;">  fedora konsave -s kde_configuration --force
</span><span style="color:#323232;">
</span><span style="color:#323232;">  # to apply configuration
</span><span style="color:#323232;">  # fedora konsave -a kde_configuration
</span><span style="color:#323232;">
</span><span style="color:#323232;">  git -C $dot st
</span><span style="color:#323232;">end
</span>
ebits21,
@ebits21@lemmy.ca avatar

Lately using Silverblue. Everything is a flatpak or is layered. Both are easy to list.

Maybe a handful of things in distrobox I need to keep track of.

pezhore,
@pezhore@lemmy.ml avatar

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.

demesisx,
@demesisx@infosec.pub avatar
BitSound,

Seconding this. Store your configuration.nix in git and just copy it back over if you ever need to wipe and reinstall.

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