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
    link
    English
    381 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
      link
      English
      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.

      • @hikarulsi
        link
        English
        11 year ago

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

        • mariom
          link
          English
          31 year ago

          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
      link
      fedilink
      1
      edit-2
      1 year ago

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

    • @BitSound
      link
      English
      71 year ago

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

  • @[email protected]
    link
    fedilink
    English
    181 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
    link
    English
    151 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.

  • @[email protected]
    link
    fedilink
    English
    141 year ago

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

  • @[email protected]
    link
    fedilink
    English
    131 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.

    • @[email protected]
      link
      fedilink
      English
      21 year ago

      Also works as a way to remove programs you are not really using anymore but had installed before. And although more annoying but I guess resetting configuration files to default settings every now and then is not too bad either.

  • NekuSoul
    link
    fedilink
    English
    101 year ago

    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.

  • Bankenstein
    link
    fedilink
    English
    101 year ago

    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.

    • @[email protected]
      link
      fedilink
      English
      21 year ago

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

  • Tom
    link
    English
    91 year ago

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

  • @gobbling871
    link
    English
    81 year ago

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

    • @[email protected]OP
      link
      fedilink
      English
      21 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!

  • SALT
    link
    fedilink
    English
    61 year ago

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

    ansible.builtin.apt:
       name: "{{ item }}"
       state: latest
    loop:
       - pkg1
       - pkg2
    
    • @[email protected]
      link
      fedilink
      English
      31 year ago

      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

  • @[email protected]
    link
    fedilink
    English
    51 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.

  • @[email protected]
    link
    fedilink
    English
    51 year ago

    git repo

    A bash script

    apt get install <your list here>

    Same with flatpak

    Keep updated. Done.

  • @[email protected]
    link
    fedilink
    English
    4
    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.

    • @[email protected]OP
      link
      fedilink
      English
      11 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