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!

  • zacher_glachl@lemmy.world
    link
    fedilink
    English
    arrow-up
    30
    ·
    1 year ago

    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@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      1 year ago

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

    • BitSound@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      1 year ago

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

  • pezhore@lemmy.ml
    link
    fedilink
    English
    arrow-up
    14
    arrow-down
    1
    ·
    1 year ago

    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.

  • Shin@lemmy.world
    link
    fedilink
    English
    arrow-up
    12
    ·
    1 year ago

    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.

  • CalcProgrammer1@lemmy.ml
    link
    fedilink
    English
    arrow-up
    8
    ·
    1 year ago

    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@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      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!

  • djsaskdja@reddthat.com
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    1 year ago

    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@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      1
      ·
      1 year ago

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

  • xoggy@programming.dev
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    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.

  • ebits21@lemmy.ca
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    1
    ·
    1 year ago

    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.

  • TheFriendlyArtificer@beehaw.org
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    1
    ·
    1 year ago

    https://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.

  • inspxtr@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    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.