I'm hoping it'll get easier to back up and upgrade OS installs with the advances in containerized runtimes like flatpak and podman/distrobox, and immutable distros like Silverblue.

For example, I can back up application installs from:

/var/lib/flatpak

Optionally I can store just the list of names and re-install them later:

$ flatpak list --system --app --columns=application --ostree-verbose > apps.txt
$ cat apps.txt
com.bitwig.BitwigStudio
com.discordapp.Discord
com.github.k4zmu2a.spacecadetpinball
com.github.tchx84.Flatseal
com.github.wwmm.easyeffects
com.mojang.Minecraft
com.obsproject.Studio
com.spotify.Client
io.mgba.mGBA
md.obsidian.Obsidian
org.chromium.Chromium
org.gimp.GIMP
..
..
org.kde.krita
org.keepassxc.KeePassXC
org.libreoffice.LibreOffice
org.mozilla.firefox
org.signal.Signal
org.videolan.VLC
org.x.Warpinator
us.zoom.Zoom

And -- more importantly -- user data can be backed up from:

~/.var/app

Silverblue also seems to handle updates/upgrades very well as none of the updates apply to the running
system. It also makes a clear distinction between OS and application by relying on flatpaks and toolbox
as the primary means of application management. This is definitely a significant change from the familiar
package model, but it's one that I think has merit.

I'm excited to see these technologies mature and become more integral to modern Linux distros!


- Josh


On Fri, Jan 14, 2022 at 9:08 AM Chuck Anderson via WLUG <wlug@lists.wlug.org> wrote:
I'm more familiar with Fedora where I do something like this.  It
should be possible to do the same in Ubuntu with the appropriate
apt-get commands.

1. List all packages with their names only (no versions) on both the
   old system and newly installed system, assuming the new system is
   booted and the old system is mounted at /mnt/oldroot.
   Alternatively, do the first command (without the --root parameter)
   when booted to the old version and save the file somewhere:

   rpm -qa --qf='%{name}\n' --root=/mnt/oldroot | sort -u > old-pkglist.txt
   rpm -qa --qf='%{name}\n' | sort -u > new-pkglist.txt


2. Compare the files and save that output:

   diff -b -U0 {old,new}-pkglist.txt > old-new-diff.txt
   grep ^- old-new-diff.txt | cut -c2- > missing-from-new.txt
   grep ^+ old-new-diff.txt | cut -c2- > only-in-new.txt

3. Now go through the list and install what you want.  I usually do
   this step manually rather than using some automated script, since
   there are many changes I don't necessarily want, such as shared
   libraries.  All I really care about is applications/commands/utilities.
   I go through the lists, reading the diff in one window and installing
   stuff I want in another:

   dnf install a b c d ...

   and/or this which installs a package and all of its subpackages
   except development and debug subpackages.  This is great when a
   package has a bunch of plugins I want:

   dnf --exclude='*devel*' --exclude='*debug*' install foo-\* ...

   Or you could curate the list, e.g. edit missing-from-new.txt
   keeping only the lines you care about, then automatically install
   everything that is in the curated list:

   cat missing-from-new-curated.txt | xargs dnf -y install

> >> On Thu, Jan 13, 2022 at 3:47 PM gmcaplan--- via WLUG
> >> <wlug@lists.wlug.org> wrote:
> >>
> >>     I was hoping to attend, but it looks like I will not be able to.
> >>     I hope it will be recorded because I, too, would like to learn about
> >>     emacs.
> >>     Also, I have two questions:
> >>     1. I am running Ubuntu 18.04 LTS. When I update to ver. 20 or 22, I
> >>     would prefer to do a "clean" re-install, but I have a question. Does
> >>     that mean I must get a list of all my installed software and
> >>     re-install
> >>     them one at a time after I upgrade the OS? If so, is there an
> >>     easy way
> >>     for me to get the list?
_______________________________________________
WLUG mailing list -- wlug@lists.wlug.org
To unsubscribe send an email to wlug-leave@lists.wlug.org
Create Account: https://wlug.mailman3.com/accounts/signup/
Change Settings: https://wlug.mailman3.com/postorius/lists/wlug.lists.wlug.org/
Web Forum/Archive: https://wlug.mailman3.com/hyperkitty/list/wlug@lists.wlug.org/message/Z5ONMQCTLA4COASP5YHNYBVL4BWBI6K5/