New Post: App Showcase: Backups

Déjà Dup is a great way to keep your Librem device backed up:
https://puri.sm/posts/backups/

6 Likes

Since this doesn’t back up the installed apps, one could run a list of those every so often, using:

ls /usr/share/applications | awk -F '.desktop' ' { print $1}' -

and export the list from the terminal to a text file for saving and backup.

(Thanks to www for providing the answer. Lol!)

1 Like

I’ve found it easier if you get the list of apps through dpkg. I document it in my pre-deja dup Librem 5 backup and restore post and actually run it in cron so I have an updated list of packages that end up in my home directory:

00 00 * * * dpkg --get-selections | grep -v deinstall | cut -f1 > /home/purism/pkglist

I still use this process for backup and restore when I’ve migrated between different iterations of the phone, and the process works basically the same for a laptop or desktop. I also have a Deja Dup daily task running that backs up my home directory just so I can recover from a mistake:

8 Likes

Sweet. This saved as a Foliate file for me, for some reason (and not in columnar format), but I was able to open it with Text Editor, which displayed it as a single column:

accountsservice
acl
adduser
adwaita-icon-theme
aisleriot
apg
apparmor
appstream
apt
apt-config-icons
apt-utils
aspell
aspell-en
at-spi2-core
base-files
base-passwd
bash
bc
blends-tasks
bluez
bluez-obexd
brasero-common
brscan4:i386
bsdmainutils
bsdutils
bubblewrap
busybox
bzip2
ca-certificates
callaudiod
calls
chatty
cheese-common
cinnamon-desktop-data
cloud-guest-utils
cloud-image-utils
cloud-initramfs-growroot
cloud-utils
colord
colord-data
coreutils
cpio
cpp
cpp-8
cron
cups
cups-browsed
cups-client
cups-common
cups-core-drivers
cups-daemon
cups-filters
cups-filters-core-drivers
cups-ipp-utils
cups-ppdc
cups-server-common
cupswrapperhl5370dw:i386
dash
dbus
dbus-user-session
dbus-x11
dconf-gsettings-backend:arm64
dconf-service
debconf
debconf-i18n
debian-archive-keyring
debianutils
desktop-base
desktop-file-utils
devio
dictionaries-common
diffutils
dirmngr
distro-info-data
dmeventd
dmidecode
dmsetup
dnsmasq-base
dosfstools
dpkg
drawing
e2fslibs:arm64
e2fsprogs
emacsen-common
epiphany-browser
epiphany-browser-data
epiphany-webapps-sm.puri.news
evince
evince-common
evolution-data-server
evolution-data-server-common
f2fs-tools
fdisk
feedbackd
feedbackd-common
file
file-roller
findutils
firefox-esr
firefox-esr-mobile-config
flash-kernel
flatpak
folks-common
fontconfig
fontconfig-config
fonts-cantarell
fonts-dejavu-core
fonts-lato
fonts-noto-cjk
fonts-noto-color-emoji
fonts-quicksand
fuse
gcc-6-base:arm64
gcc-7-base:arm64
gcc-8-base:arm64
gconf-defaults-service
gconf-editor
gconf-service
gconf2
gconf2-common
gcr
gdbm-l10n
gdisk
geary
gedit
gedit-common
genisoimage
geoclue-2-demo
geoclue-2.0
ghostscript
gir1.2-accountsservice-1.0
gir1.2-atk-1.0:arm64
gir1.2-atspi-2.0:arm64
gir1.2-freedesktop:arm64
gir1.2-gck-1:arm64
gir1.2-gcr-3:arm64
gir1.2-gdesktopenums-3.0:arm64
gir1.2-gdkpixbuf-2.0:arm64
gir1.2-gdm-1.0:arm64
gir1.2-geoclue-2.0:arm64
gir1.2-geocodeglib-1.0:arm64
gir1.2-glib-2.0:arm64
gir1.2-gnomebluetooth-1.0:arm64
gir1.2-gnomedesktop-3.0:arm64
gir1.2-gst-plugins-bad-1.0:arm64
gir1.2-gst-plugins-base-1.0:arm64
gir1.2-gstreamer-1.0:arm64
gir1.2-gtk-3.0:arm64
gir1.2-gtksource-4:arm64
gir1.2-gweather-3.0:arm64
gir1.2-handy-0.0:arm64
gir1.2-handy-1:arm64
gir1.2-ibus-1.0:arm64
gir1.2-javascriptcoregtk-4.0:arm64
gir1.2-json-1.0:arm64
gir1.2-mutter-3:arm64
gir1.2-nm-1.0:arm64
gir1.2-nma-1.0:arm64
gir1.2-notify-0.7:arm64
gir1.2-packagekitglib-1.0
gir1.2-pango-1.0:arm64
gir1.2-peas-1.0:arm64
gir1.2-polkit-1.0
gir1.2-rsvg-2.0:arm64
gir1.2-secret-1:arm64
gir1.2-soup-2.4:arm64
gir1.2-totemplparser-1.0:arm64
gir1.2-upowerglib-1.0:arm64
gir1.2-webkit2-4.0:arm64
gjs
glib-networking:arm64
glib-networking-common
glib-networking-services
gnome-backgrounds
gnome-bluetooth
gnome-calculator
gnome-chess
gnome-clocks
gnome-contacts
gnome-control-center
gnome-control-center-data
gnome-desktop3-data
gnome-dictionary
gnome-disk-utility
gnome-getting-started-docs
gnome-icon-theme
gnome-initial-setup
gnome-keyring
gnome-online-accounts
gnome-passwordsafe
gnome-session-bin
gnome-settings-daemon
gnome-settings-daemon-common
gnome-shell
gnome-shell-common
gnome-sound-recorder
gnome-terminal
gnome-terminal-data
gnome-themes-extra-data
gnome-tweaks
gnome-usage
gnome-user-docs
gnome-weather
gnubik
gnupg
gnupg-l10n
gnupg-utils
gpg
gpg-agent
gpg-wks-client
gpg-wks-server
gpgconf
gpgsm
gpgv
gpgv1
grep
grim
groff-base
gsettings-desktop-schemas
gstreamer1.0-clutter-3.0:arm64
gstreamer1.0-libav:arm64
gstreamer1.0-packagekit
gstreamer1.0-plugins-bad:arm64
gstreamer1.0-plugins-base:arm64
gstreamer1.0-plugins-good:arm64
gstreamer1.0-plugins-ugly:arm64
gstreamer1.0-pulseaudio:arm64
gstreamer1.0-x:arm64
gthd
gthumb
gthumb-data
gtk-update-icon-cache
gufw
guile-2.2-libs:arm64
gvfs:arm64
gvfs-backends
gvfs-bin
gvfs-common
gvfs-daemons
gvfs-fuse
gvfs-libs:arm64
gzip
haegtesse
hicolor-icon-theme
hl5370dwlpr:i386
hoichess
hostname
i2c-tools
ieee-data
ifupdown
iio-sensor-proxy
init
init-system-helpers
initramfs-tools
initramfs-tools-core
iproute2
iptables
iputils-ping
isc-dhcp-client
isc-dhcp-common
iso-codes
jackd2
jitterentropy-rngd
kgx
klibc-utils
kmod
liba52-0.7.4:arm64
libaa1:arm64
libaccountsservice0:arm64
libacl1:arm64
libaio1:arm64
libaom0:arm64
libapparmor1:arm64
libappstream-glib8:arm64
libappstream4:arm64
libapt-inst2.0:arm64
libapt-pkg5.0:arm64
libarchive13:arm64
libargon2-1:arm64
libasound2:arm64
libasound2-data
libasound2-plugins:arm64
libaspell15:arm64
libass9:arm64
libassuan0:arm64
libasyncns0:arm64
libatasmart4:arm64
libatk-bridge2.0-0:arm64
libatk1.0-0:arm64
libatk1.0-data
libatomic1:arm64
libatspi2.0-0:arm64
libattr1:arm64
libaudit-common
libaudit1:arm64
libavahi-client3:arm64
libavahi-common-data:arm64
libavahi-common3:arm64
libavahi-glib1:arm64
libavc1394-0:arm64
libavcodec58:arm64
libavfilter7:arm64
libavformat58:arm64
libavresample4:arm64
libavutil56:arm64
libaxc0
libayatana-appindicator3-1
libayatana-ido3-0.4-0:arm64
libayatana-indicator3-7:arm64
libblkid1:arm64
libblockdev-fs2:arm64
libblockdev-loop2:arm64
libblockdev-part-err2:arm64
libblockdev-part2:arm64
libblockdev-swap2:arm64
libblockdev-utils2:arm64
libblockdev2:arm64
libbluetooth3:arm64
libbluray2:arm64
libboost-atomic1.67.0:arm64
libboost-chrono1.67.0:arm64
libboost-date-time1.67.0:arm64
libboost-filesystem1.67.0:arm64
libboost-system1.67.0:arm64
libboost-thread1.67.0:arm64
libbrasero-media3-1:arm64
libbrotli1:arm64
libbs2b0:arm64
libbsd0:arm64
libburn4:arm64
libbz2-1.0:arm64
libc-bin
libc-l10n
libc6:arm64
libcaca0:arm64
libcairo-gobject-perl
libcairo-gobject2:arm64
libcairo-perl
libcairo2:arm64
libcallaudio-0-0:arm64
libcamel-1.2-62:arm64
libcanberra-gtk0:arm64
libcanberra-gtk3-0:arm64
libcanberra-pulse:arm64
libcanberra0:arm64
libcap-ng0:arm64
libcap2:arm64
libcap2-bin
libcdio-cdda2:arm64
libcdio-paranoia2:arm64
libcdio18:arm64
libcdparanoia0:arm64
libcheese-gtk25:arm64
libcheese8:arm64
libchromaprint1:arm64
libcinnamon-desktop4:arm64
libclutter-1.0-0:arm64
libclutter-gst-3.0-0:arm64
libclutter-gtk-1.0-0:arm64
libcodec2-0.8.1:arm64
libcogl-pango20:arm64
libcogl-path20:arm64
libcogl20:arm64
libcolord2:arm64
libcolorhug2:arm64
libcom-err2:arm64
libcomerr2:arm64
libcrack2:arm64
libcroco3:arm64
libcryptsetup12:arm64
libcups2:arm64
libcupsfilters1:arm64
libcupsimage2:arm64
libcurl3-gnutls:arm64
libdatrie1:arm64
libdazzle-1.0-0:arm64
libdb5.3:arm64
libdbus-1-3:arm64
libdbus-glib-1-2:arm64
libdbusmenu-glib4:arm64
libdbusmenu-gtk3-4:arm64
libdc1394-22:arm64
libdca0:arm64
libdconf1:arm64
libde265-0:arm64
libdebconfclient0:arm64
libdevmapper-event1.02.1:arm64
libdevmapper1.02.1:arm64
libdjvulibre-text
libdjvulibre21:arm64
libdns-export1104
libdrm-common
libdrm-nouveau2:arm64
libdrm-radeon1:arm64
libdrm2:arm64
libdv4:arm64
libdvdnav4:arm64
libdvdread4:arm64
libdw1:arm64
libebackend-1.2-10:arm64
libebook-1.2-19:arm64
libebook-contacts-1.2-2:arm64
libecal-1.2-19:arm64
libedata-book-1.2-25:arm64
libedata-cal-1.2-29:arm64
libedataserver-1.2-23:arm64
libedataserverui-1.2-2:arm64
libedit2:arm64
libegl-mesa0:arm64
libegl1:arm64
libelf1:arm64
libenchant1c2a:arm64
libencode-locale-perl
libepoxy0:arm64
libestr0:arm64
libevdev2:arm64
libevdocument3-4:arm64
libevent-2.1-6:arm64
libevview3-3:arm64
libexempi8:arm64
libexif12:arm64
libexiv2-14:arm64
libexpat1:arm64
libext2fs2:arm64
libf2fs-format4:arm64
libf2fs5:arm64
libfaad2:arm64
libfarstream-0.2-5:arm64
libfastjson4:arm64
libfdisk1:arm64
libfeedback-0.0-0
libffi6:arm64
libfftw3-double3:arm64
libfile-listing-perl
libflac8:arm64
libflatpak0:arm64
libflite1:arm64
libfluidsynth1:arm64
libfolks-eds25:arm64
libfolks25:arm64
libfontconfig1:arm64
libfontembed1:arm64
libfontenc1:arm64
libfreetype6:arm64
libfribidi0:arm64
libfuse2:arm64
libgadu3
libgail-3-0:arm64
libgbm1:arm64
libgc1c2:arm64
libgcc1:arm64
libgck-1-0:arm64
libgconf-2-4:arm64
libgcr-base-3-1:arm64
libgcr-ui-3-1:arm64
libgcrypt20:arm64
libgd3:arm64
libgdata-common
libgdata22:arm64
libgdbm-compat4:arm64
libgdbm6:arm64
libgdbussyncevo0
libgdk-pixbuf2.0-0:arm64
libgdk-pixbuf2.0-common
libgdm1
libgee-0.8-2:arm64
libgeoclue-2-0:arm64
libgeocode-glib0:arm64
libgexiv2-2:arm64
libgirepository-1.0-1:arm64
libgjs0g
libgl1:arm64
libgl1-mesa-dri:arm64
libglapi-mesa:arm64
libgles2:arm64
libglib-object-introspection-perl
libglib-perl
libglib2.0-0:arm64
libglib2.0-bin
libglib2.0-data
libglu1-mesa:arm64
libglvnd0:arm64
libglx-mesa0:arm64
libglx0:arm64
libgme0:arm64
libgmime-3.0-0:arm64
libgmp10:arm64
libgnome-autoar-0-0:arm64
libgnome-bluetooth13:arm64
libgnome-desktop-3-17:arm64
libgnomekbd-common
libgnomekbd8:arm64
libgnutls30:arm64
libgoa-1.0-0b:arm64
libgoa-1.0-common
libgoa-backend-1.0-1:arm64
libgom-1.0-0:arm64
libgomp1:arm64
libgpg-error0:arm64
libgpgme11:arm64
libgphoto2-6:arm64
libgphoto2-port12:arm64
libgpm2:arm64
libgraphite2-3:arm64
libgs9:arm64
libgs9-common
libgsm1:arm64
libgsound0:arm64
libgspell-1-1:arm64
libgspell-1-common
libgssapi-krb5-2:arm64
libgssdp-1.0-3:arm64
libgstreamer-gl1.0-0:arm64
libgstreamer-plugins-bad1.0-0:arm64
libgstreamer-plugins-base1.0-0:arm64
libgstreamer1.0-0:arm64
libgtherm-0.0-0
libgtk-3-0:arm64
libgtk-3-common
libgtk2.0-0:arm64
libgtk2.0-common
libgtk3-perl
libgtkglext1:arm64
libgtksourceview-4-0:arm64
libgtksourceview-4-common
libgtop-2.0-11:arm64
libgtop2-common
libgudev-1.0-0:arm64
libgupnp-1.0-4:arm64
libgupnp-igd-1.0-4:arm64
libgusb2:arm64
libgutenprint-common
libgutenprint9
libgweather-3-15:arm64
libgweather-common
libgxps2:arm64
libhandy-0.0-0:arm64
libhandy-1-0:arm64
libharfbuzz-icu0:arm64
libharfbuzz0b:arm64
libhogweed4:arm64
libhtml-parser-perl
libhtml-tagset-perl
libhtml-tree-perl
libhttp-cookies-perl
libhttp-date-perl
libhttp-message-perl
libhttp-negotiate-perl
libhunspell-1.7-0:arm64
libhyphen0:arm64
libi2c0:arm64
libibus-1.0-5:arm64
libical3:arm64
libice6:arm64
libicu63:arm64
libidn11:arm64
libidn2-0:arm64
libiec61883-0:arm64
libieee1284-3:arm64
libijs-0.35:arm64
libilmbase23:arm64
libimagequant0:arm64
libimobiledevice6:arm64
libinput-bin
libinput10:arm64
libio-html-perl
libio-socket-ssl-perl
libip4tc0:arm64
libip6tc0:arm64
libiptc0:arm64
libisc-export1100:arm64
libisl19:arm64
libisofs6:arm64
libjack-jackd2-0:arm64
libjansson4:arm64
libjavascriptcoregtk-4.0-18:arm64
libjbig0:arm64
libjbig2dec0:arm64
libjim0.77:arm64
libjpeg62-turbo:arm64
libjson-c3:arm64
libjson-glib-1.0-0:arm64
libjson-glib-1.0-common
libjte1
libk5crypto3:arm64
libkate1:arm64
libkeyutils1:arm64
libklibc:arm64
libkmod2:arm64
libkpathsea6:arm64
libkrb5-3:arm64
libkrb5support0:arm64
libksba8:arm64
liblcms2-2:arm64
libldap-2.4-2:arm64
libldap-common
libldb1:arm64
liblilv-0-0:arm64
liblmdb0:arm64
liblocale-gettext-perl
liblognorm5:arm64
libltdl7:arm64
liblua5.2-0:arm64
liblvm2cmd2.03:arm64
liblwp-mediatypes-perl
liblwp-protocol-https-perl
liblz4-1:arm64
liblzma5:arm64
liblzo2-2:arm64
libmagic-mgc
libmagic1:arm64
libmariadb3:arm64
libmate-panel-applet-4-1:arm64
libmatedict6
libmbim-glib4:arm64
libmbim-proxy
libmbim-utils
libmeanwhile1:arm64
libmjpegutils-2.1-0
libmm-glib0:arm64
libmms0:arm64
libmnl0:arm64
libmodplug1:arm64
libmount1:arm64
libmozjs-60-0:arm64
libmp3lame0:arm64
libmpc3:arm64
libmpcdec6:arm64
libmpdec2:arm64
libmpeg2-4:arm64
libmpeg2encpp-2.1-0
libmpfr6:arm64
libmpg123-0:arm64
libmplex2-2.1-0
libmtdev1:arm64
libmtp-common
libmtp9:arm64
libmutter-3-0:arm64
libmxml1:arm64
libmysofa0:arm64
libnautilus-extension1a:arm64
libncurses5:arm64
libncurses6:arm64
libncursesw5:arm64
libncursesw6:arm64
libndp0:arm64
libnemo-extension1:arm64
libneon27-gnutls:arm64
libnet-http-perl
libnet-ssleay-perl
libnetfilter-conntrack3:arm64
libnettle6:arm64
libnewt0.52:arm64
libnfnetlink0:arm64
libnfs12:arm64
libnftnl11:arm64
libnghttp2-14:arm64
libnice10:arm64
libnl-3-200:arm64
libnl-genl-3-200:arm64
libnl-route-3-200:arm64
libnm0:arm64
libnma0:arm64
libnorm1:arm64
libnotify-bin
libnotify4:arm64
libnpth0:arm64
libnspr4:arm64
libnss-systemd:arm64
libnss3:arm64
libnuma1:arm64
liboauth0:arm64
libofa0:arm64
libogg0:arm64
libomemo0:arm64
libopenal-data
libopenal1:arm64
libopencore-amrnb0:arm64
libopencore-amrwb0:arm64
libopenexr23:arm64
libopenjp2-7:arm64
libopenmpt0:arm64
libopenobex2
libopus0:arm64
liborc-0.4-0:arm64
libostree-1-1:arm64
libp11-kit0:arm64
libpackagekit-glib2-18:arm64
libpam-modules:arm64
libpam-modules-bin
libpam-runtime
libpam-systemd:arm64
libpam0g:arm64
libpango-1.0-0:arm64
libpangocairo-1.0-0:arm64
libpangoft2-1.0-0:arm64
libpangox-1.0-0:arm64
libpangoxft-1.0-0:arm64
libpaper1:arm64
libparted-fs-resize0:arm64
libparted2:arm64
libpci3:arm64
libpcre2-8-0:arm64
libpcre3:arm64
libpcrecpp0v5:arm64
libpcsclite1:arm64
libpeas-1.0-0:arm64
libpeas-common
libperl5.28:arm64
libpgm-5.2-0:arm64
libphonenumber7:arm64
libpipeline1:arm64
libpipewire-0.2-1:arm64
libpixman-1-0:arm64
libplist3:arm64
libplymouth4:arm64
libpng16-16:arm64
libpolkit-agent-1-0:arm64
libpolkit-backend-1-0:arm64
libpolkit-gobject-1-0:arm64
libpoppler-glib8:arm64
libpoppler82:arm64
libpopt0:arm64
libpostproc55:arm64
libprocps7:arm64
libprotobuf-c1:arm64
libprotobuf17:arm64
libproxy1v5:arm64
libpsl5:arm64
libpulse-mainloop-glib0:arm64
libpulse0:arm64
libpulsedsp:arm64
libpurple0
libpwquality-common
libpwquality1:arm64
libpython-stdlib:arm64
libpython2-stdlib:arm64
libpython2.7:arm64
libpython2.7-minimal:arm64
libpython2.7-stdlib:arm64
libpython3-stdlib:arm64
libpython3.7:arm64
libpython3.7-minimal:arm64
libpython3.7-stdlib:arm64
libqmi-glib5:arm64
libqmi-proxy
libqmi-utils
libqpdf21:arm64
libquvi-0.9-0.9.3:arm64
libquvi-scripts-0.9
libraw1394-11:arm64
libraw19:arm64
libreadline5:arm64
libreadline7:arm64
librem5-base
librem5-base-defaults
librem5-devkit-base
librem5-gnome-base
librem5-gnome-phone
librem5-goodies
librem5-non-gnome
librest-0.7-0:arm64
librsvg2-2:arm64
librsvg2-common:arm64
librtmp1:arm64
librubberband2:arm64
libsamplerate0:arm64
libsane:arm64
libsane-common
libsasl2-2:arm64
libsasl2-modules:arm64
libsasl2-modules-db:arm64
libsbc1:arm64
libseccomp2:arm64
libsecret-1-0:arm64
libsecret-common
libselinux1:arm64
libsemanage-common
libsemanage1:arm64
libsensors-config
libsensors5:arm64
libsepol1:arm64
libserd-0-0:arm64
libshine3:arm64
libshout3:arm64
libsidplay1v5:arm64
libsignal-protocol-c2.3.2:arm64
libslang2:arm64
libsm6:arm64
libsmartcols1:arm64
libsmbclient:arm64
libsmltk0:arm64
libsnappy1v5:arm64
libsndfile1:arm64
libsndio7.0:arm64
libsnmp-base
libsnmp30:arm64
libsodium23:arm64
libsord-0-0:arm64
libsoundtouch1:arm64
libsoup-gnome2.4-1:arm64
libsoup2.4-1:arm64
libsoxr0:arm64
libspandsp2:arm64
libspectre1:arm64
libspeex1:arm64
libspeexdsp1:arm64
libsqlite3-0:arm64
libsratom-0-0:arm64
libsrtp2-1:arm64
libss2:arm64
libssh-gcrypt-4:arm64
libssh2-1:arm64
libssl1.1:arm64
libstartup-notification0:arm64
libstdc++6:arm64
libstemmer0d:arm64
libswresample3:arm64
libswscale5:arm64
libsyncevolution0
libsynctex2:arm64
libsynthesis0v5:arm64
libsystemd0:arm64
libtag1v5:arm64
libtag1v5-vanilla:arm64
libtalloc2:arm64
libtasn1-6:arm64
libtdb1:arm64
libteamdctl0:arm64
libtevent0:arm64
libtext-charwidth-perl
libtext-iconv-perl
libtext-wrapi18n-perl
libthai-data
libthai0:arm64
libtheora0:arm64
libtiff5:arm64
libtimedate-perl
libtinfo5:arm64
libtinfo6:arm64
libtotem-plparser-common
libtotem-plparser18:arm64
libtracker-control-2.0-0:arm64
libtracker-sparql-2.0-0:arm64
libtry-tiny-perl
libtwolame0:arm64
libuchardet0:arm64
libudev1:arm64
libudisks2-0:arm64
libunistring2:arm64
libunwind8:arm64
libupower-glib3:arm64
liburi-perl
libusb-0.1-4:arm64
libusb-1.0-0:arm64
libusbmuxd4:arm64
libuuid1:arm64
libv4l-0:arm64
libv4lconvert0:arm64
libva-drm2:arm64
libva-x11-2:arm64
libva2:arm64
libvdpau1:arm64
libverbiste-0.1-0v5:arm64
libvidstab1.1:arm64
libvisual-0.4-0:arm64
libvo-aacenc0:arm64
libvo-amrwbenc0:arm64
libvorbis0a:arm64
libvorbisenc2:arm64
libvorbisfile3:arm64
libvpx5:arm64
libvte-2.91-0:arm64
libvte-2.91-common
libvulkan1:arm64
libwacom-common
libwacom2:arm64
libwavpack1:arm64
libwayland-client0:arm64
libwayland-cursor0:arm64
libwayland-egl1:arm64
libwayland-server0:arm64
libwbclient0:arm64
libwebkit2gtk-4.0-37:arm64
libwebp6:arm64
libwebpdemux2:arm64
libwebpmux3:arm64
libwebrtc-audio-processing1:arm64
libwildmidi2:arm64
libwlroots5:arm64
libwoff1:arm64
libwpe-1.0-1:arm64
libwpebackend-fdo-1.0-1:arm64
libwrap0:arm64
libwww-perl
libwww-robotrules-perl
libx11-6:arm64
libx11-data
libx11-xcb1:arm64
libx264-155:arm64
libx265-165:arm64
libxapian30:arm64
libxapp1:arm64
libxau6:arm64
libxaw7:arm64
libxcb-composite0:arm64
libxcb-dri2-0:arm64
libxcb-dri3-0:arm64
libxcb-glx0:arm64
libxcb-icccm4:arm64
libxcb-present0:arm64
libxcb-randr0:arm64
libxcb-render0:arm64
libxcb-res0:arm64
libxcb-shape0:arm64
libxcb-shm0:arm64
libxcb-sync1:arm64
libxcb-util0:arm64
libxcb-xfixes0:arm64
libxcb-xkb1:arm64
libxcb1:arm64
libxcomposite1:arm64
libxcursor1:arm64
libxdamage1:arm64
libxdmcp6:arm64
libxext6:arm64
libxfixes3:arm64
libxfont2:arm64
libxft2:arm64
libxi6:arm64
libxinerama1:arm64
libxkbcommon-x11-0:arm64
libxkbcommon0:arm64
libxkbfile1:arm64
libxklavier16:arm64
libxml2:arm64
libxmlb1:arm64
libxmu6:arm64
libxmuu1:arm64
libxpm4:arm64
libxrandr2:arm64
libxrender1:arm64
libxshmfence1:arm64
libxslt1.1:arm64
libxt6:arm64
libxtables12:arm64
libxtst6:arm64
libxv1:arm64
libxvidcore4:arm64
libxxf86dga1:arm64
libxxf86vm1:arm64
libyaml-0-2:arm64
libyelp0:arm64
libytnef0:arm64
libzbar0:arm64
libzephyr4:arm64
libzmq5:arm64
libzstd1:arm64
libzvbi-common
libzvbi0:arm64
linux-base
linux-image-5.9.0-1-librem5
linux-image-librem5
locales
login
logrotate
lollypop
lsb-base
lsb-release
lsof
lua-bitop:arm64
lua-expat:arm64
lua-json
lua-lpeg:arm64
lua-socket:arm64
lvm2
man-db
mariadb-common
mate-desktop-common
mate-utils
mate-utils-common
mawk
mfcj880dwcupswrapper:i386
mfcj880dwlpr:i386
mime-support
mmc-utils
mobile-broadband-provider-info
modemmanager
mount
mtd-utils
multiarch-support
mutter
mutter-common
mysql-common
nano
nautilus
nautilus-data
ncurses-base
ncurses-bin
nemo
nemo-data
net-tools
netbase
network-manager
network-manager-gnome
ntpstat
obfs4proxy
openssh-client
openssh-server
openssh-sftp-server
openssl
p11-kit
p11-kit-modules:arm64
p7zip
p7zip-full
packagekit
parted
passwd
perl
perl-base
perl-modules-5.28
perl-openssl-defaults:arm64
phoc
phosh
pidgin-data
pinentry-curses
pinentry-gnome3
plymouth
plymouth-label
plymouth-theme-librem5
policykit-1
policykit-1-gnome
poppler-data
poppler-utils
prepaid-manager-applet
printer-driver-gutenprint
procps
psmisc
pulseaudio
pulseaudio-module-bluetooth
pulseaudio-utils
pureos-archive-keyring
pureos-minimal
pureos-store
pureos-store-common
pureos-store-plugin-flatpak
purple-carbons
purple-lurch
purple-mm-sms
purple-xmpp-http-upload
python
python-dbus
python-gi
python-minimal
python-pkg-resources
python-setuptools
python-talloc:arm64
python2
python2-minimal
python2.7
python2.7-minimal
python3
python3-argon2
python3-bs4
python3-cairo:arm64
python3-certifi
python3-cffi-backend
python3-chardet
python3-construct
python3-cups
python3-cupshelpers
python3-dateutil
python3-dbus
python3-distro
python3-evdev
python3-future
python3-gi
python3-gi-cairo
python3-gst-1.0
python3-idna
python3-lib2to3
python3-lxml:arm64
python3-minimal
python3-netaddr
python3-pil:arm64
python3-pkg-resources
python3-pwquality
python3-pycryptodome
python3-pykeepass
python3-requests
python3-six
python3-soupsieve
python3-urllib3
python3.7
python3.7-minimal
qemu-utils
readline-common
rfkill
samba-libs:arm64
scdaemon
seahorse
sed
sensible-utils
shared-mime-info
sound-theme-freedesktop
sound-theme-librem5
speedtest-cli
squeekboard
ssl-cert
sudo
sunclock
sunclock-maps
syncevolution
syncevolution-common
syncevolution-libs
syncevolution-libs-gnome
system-config-printer
system-config-printer-common
systemd
systemd-sysv
sysvinit-utils
tar
tasksel
tasksel-data
tor
tracker
tree
ttf-bitstream-vera
tzdata
u-boot-tools
ucf
udev
udisks2
ufw
upower
usb-modeswitch
usb-modeswitch-data
usb.ids
usbutils
usbview
util-linux
verbiste
verbiste-gtk
vim-common
vim-tiny
wget
whatip
whiptail
wlr-randr
wpasupplicant
wys
x11-common
x11-utils
x11-xkb-utils
x11-xserver-utils
xapps-common
xdg-dbus-proxy
xdg-desktop-portal
xdg-desktop-portal-gtk
xdg-user-dirs
xdg-utils
xkb-data
xserver-common
xwayland
xxd
yad
yelp
yelp-xsl
zenity
zenity-common
zlib1g:arm64

Here's the list from the way I suggested, which appears to be limited to the manually installed applications (?):

bluetooth-sendto
com.github.maoschanz.drawing
evolution-calendar
firefox-esr
gconf-editor
gcr-prompter
gcr-viewer
geary-autostart
geoclue-demo-agent
geoclue-where-am-i
gnome-applications-panel
gnome-background-panel
gnome-bluetooth-panel
gnome-color-panel
gnome-control-center
gnome-datetime-panel
gnome-default-apps-panel
gnome-disk-image-mounter
gnome-disk-image-writer
gnome-display-panel
gnome-info-overview-panel
gnome-initial-setup
gnome-keyboard-panel
gnome-mouse-panel
gnome-network-panel
gnome-notifications-panel
gnome-online-accounts-panel
gnome-power-panel
gnome-printers-panel
gnome-privacy-panel
gnome-region-panel
gnome-removable-media-panel
gnome-search-panel
gnome-sharing-panel
gnome-shell-extension-prefs
gnome-sound-panel
gnome-thunderbolt-panel
gnome-universal-access-panel
gnome-user-accounts-panel
gnome-wacom-panel
gnome-wifi-panel
gnome-wwan-panel
gnubik
gufw
l5-contacts-importer
l5-scale-the-screen
l5-screenshot
mate-dictionary
mate-disk-usage-analyzer
mate-screenshot
mate-search-tool
mate-system-log
mimeinfo.cache
mutter
nautilus-autorun-software
nemo-autorun-software
nemo-autostart
nemo
nm-applet
nm-connection-editor
org.gabmus.whatip
org.gnome.Calculator
org.gnome.Chess
org.gnome.clocks
org.gnome.Contacts
org.gnome.Dictionary
org.gnome.DiskUtility
org.gnome.Epiphany
org.gnome.Evince
org.gnome.Evince-previewer
org.gnome.Evolution-alarm-notify
org.gnome.FileRoller
org.gnome.Geary
org.gnome.gedit
org.gnome.gThumb
org.gnome.gThumb.Import
org.gnome.Lollypop
org.gnome.Nautilus
org.gnome.PasswordSafe
org.gnome.PrepaidManager
org.gnome.Shell
org.gnome.Shell.PortalHelper
org.gnome.SoundRecorder
org.gnome.Terminal
org.gnome.tweaks
org.gnome.Usage
org.gnome.Weather
org.gnome.zbrown.KingsCross
pureos-store-local-file
python2.7
python3.7
seahorse
sm.puri.Calls
sm.puri.Chatty
sm.puri.OSK0
sm.puri.Phosh
sm.puri.Store
sm.puri.webapps.sm.puri.news
sol
sunclock
system-config-printer
usbview
verbiste
vim
x-cinnamon-mimeapps.list
xdg
yad-icon-browser
yelp

Yes with my method you get every apt package (including libraries) installed on the system, instead of just packages that happen to have a desktop entry. You can then pipe that output into apt on the command line (as I document in my post) and apt will reinstall all the packages in that list on the system that aren’t installed yet.

4 Likes

Excellent. Very convenient. Now I have to learn it. :wink:

I have started trying to Flatpaks with the --user flag wherever possible and using separate root and home partitions. This way, most of my apps are backed up just by backing up my home partition.

Which is a better choice for Deja Dup: flatpak or amber?

Good thing, but wouldn’t that also include packages which are currently just installed as a dependency? So removing a program I previously installed would no longer auto-remove all of it’s dependencies that apart from that program I would not need?

If you update the list daily (like I do in my cron job) or only create the list in preparation for a restore, it would only list the currently-installed packages. Apt has mechanisms to automatically removed unused libraries that show up when you install then remove something:

sudo apt autoremove

2 Likes

I think the blog post show cases how the back up can work.

I think that the video was very good made. I would recommend that the blog posts mentions that one should think of different use cases on backups. (Not having the blog post handle all these but having the reader know that he will spend some time thinking on what his use cases are)

E.g. saving on the SD card helps against the threat of misconfiguring or deleting something when using the phone, but is for obvious reason not helping when the phone is lost, destroyed or stolen. So saving only on the sd card violates the 3 2 1 rule :wink:

Thanks for the quick response, I think we misunderstood. Maybe because the proposed way is not as I think.

So let’s say I install package A which needs B and C. B and C are also installed when I install A. If I now uninstall A, B and C will be auto-removed as you say.
Let’s say I have A installed and backup with your described method, will B and C be listed in the back up list? (That’s what I understood) If they are and there is the backup case and I install all apps in the list, B and C are installed without dependency. So if I now remove A, B and C will not be auto-removed as they are not installed because of the depenceny.

The version that’s in the PureOS store by default works well enough for me, it’s adaptive, etc.

Apt is aware of the dependencies between packages whether they are installed for the first time when you install another package, or whether you installed them beforehand. When you remove a package, apt will behave the same way regardless, which typically means that it leaves dependencies behind but prompts you to run apt autoremove to clean them up.

1 Like

Let’s do an example.

sudo apt install kodi
-> Installs kodi and additionally kodi-bin kodi-data kodi-repository-kodi kodi-visualization-spectrum kodi-x11 libjs-iscroll python-olefile python-pil python-pycryptodome
Now I assume that the backup will save all installed packages - I by this understand that all additionally packages are also installed so e.g.
sudo apt install kodi-bin
-> sets kodi-bin as manually installed
sudo apt remove kodi
-> removes kodi and all packages but not kodi-bin!

So either your method does not list all installed packages (including dependencies) which would be the good case or all dependencies will in a backup case also be installed without dependencies.

1 Like

My method lists all installed packages, so on a restore you can restore all of the packages you had installed previously. If you want to remove unused dependencies, I’d consider that out of scope of a backup/restore (which is trying to restore the state of a machine to the backed-up state), and is something you’d handle before and/or after the backup/restore with sudo apt autoremove, not something the backup/restore should account for.

2 Likes

They’re both in the store (for me), but I imagine you’re referring to the non-flatpak? I’ll try that one.

Yes I haven’t added any external flatpak repositories to my phone. I try to just test and use what’s in amber PureOS.

2 Likes

deja-dup is just the GUI front-end for the CLI duplicity program right ?

some people say that it’s not recommended to use it for large back-ups … what does ‘large’ mean in this context ?

for me it would be really hard to reach more than 1 TB of AV material since 99% is cruft that will be discarded sooner rather than later :sweat_smile: :upside_down_face:

1 Like