#1057978 Almost removed most of my system

Package:
aptitude
Source:
aptitude
Description:
terminal-based package manager
Submitter:
Dan Jacobson
Date:
2023-12-11 23:39:03 UTC
Severity:
normal
#1057978#5
Date:
2023-12-11 07:22:24 UTC
From:
To:
Today I out of habit hit RET to the following.
It removed much of my system.
https://www.reddit.com/r/Crostini/comments/alytbc/comment/kcv98ks/
Next time I'll be more careful and not trust it.
I didn't realize how long the list was when I hit RET.
Maybe there should be a second question if the removal list is longer than 20 packages.

# aptitude full-upgrade
The following packages will be REMOVED:
  alsa-topology-conf{ap}  alsa-ucm-conf{ap}  apel{ap}  appstream{ap}  at-spi2-core{ap}
  bash-completion{ap}  bzip2{ap}  cpp{ap} (D: cpp-13)  cpp-13{ap}  cros-logging{ap}
  cros-pipe-config{ap} (D: pipewire, D: pipewire-alsa, D: pipewire-pulse, D: wireplumber)
  cros-sommelier-config{ap}  cros-sudo-config{ap}  cros-systemd-overrides{ap}  cros-vmstat-metrics{ap}
  cros-wayland{ap}  docbook-xml{ap} (D: sgml-data)  dosfstools{ap}  eject{ap}  enchant-2{ap}
  exfatprogs{ap}
  exim4-base{ap} (D: exim4-config, D: exim4-config-2, D: libfile-fcntllock-perl, R: bsd-mailx, R: mailx, R: psmisc, S: file)
  exim4-config{ap}  exim4-daemon-light{ap} (D: exim4-base)
  expect{ap} (D: libtcl8.6, D: tcl-expect, D: tcl8.6)  ffmpeg{ap}  file{ap}  flim{ap} (D: apel)
  fonts-droid-fallback{ap} (R: fonts-noto-mono)  fonts-noto-color-emoji{ap}  fonts-noto-mono{ap}
  fonts-vlgothic{ap}  ghostscript{ap} (D: libgs10)  gir1.2-glib-2.0{ap} (D: libgirepository-1.0-1)
  git{ap} (D: git-man, D: liberror-perl, R: patch)  git-man{ap}  gpsbabel-doc{ap}  gsasl-common{ap}
  gsfonts{ap}  gstreamer1.0-gl{pu} (R: libgstreamer-gl1.0-0)  gstreamer1.0-libav{ap}
  gstreamer1.0-plugins-bad{pu}  gstreamer1.0-x{pu}  guile-3.0-libs{ap}
  gvfs{ap} (D: gvfs-common, D: gvfs-daemons, D: gvfs-libs)  gvfs-common{ap} (R: gvfs)
  gvfs-daemons{ap} (D: gvfs-common, D: gvfs-libs, D: libudisks2-0, D: lsof, D: udisks2, R: gvfs)
  gvfs-libs{ap} (D: gvfs-common, D: libgcr-base-3-1)  imagemagick-6-common{ap}
  iptables{ap} (D: libip4tc2, D: libip6tc2, D: libnetfilter-conntrack3, D: libnfnetlink0, D: libnftnl11, R: nftables)
  isc-dhcp-common{ap}  javascript-common{ap}  kitty-doc{ap} (D: libjs-sphinxdoc)
  libaacs0{ap} (R: libbdplus0)  libatasmart4{ap}  libauthen-sasl-perl{ap}
  libavtp0{pu} (D: gstreamer1.0-plugins-bad)  libbdplus0{ap} (R: libaacs0)
  libblockdev-crypto3{ap} (D: libblockdev-utils3, D: libvolume-key1)
  libblockdev-fs3{ap} (D: libblockdev-utils3)  libblockdev-loop3{ap} (D: libblockdev-utils3)
  libblockdev-mdraid3{ap} (D: libblockdev-utils3, D: libbytesize1)
  libblockdev-nvme3{ap} (D: libblockdev-utils3, D: libnvme1)
  libblockdev-part3{ap} (D: libblockdev-utils3)  libblockdev-swap3{ap} (D: libblockdev-utils3)
  libblockdev-utils3{ap}  libblockdev3{ap} (D: libblockdev-utils3)  libbytesize-common{ap}
  libbytesize1{ap} (D: libbytesize-common)  libc-devtools{ap} (R: manpages, R: manpages-dev)
  libcanberra0{ap} (D: libtdb1, D: sound-theme-freedesktop)  libclone-perl{ap}  libconfig++9v5{ap}
  libdata-dump-perl{ap}  libdca0{pu} (D: gstreamer1.0-plugins-bad)  libdecor-0-plugin-1-gtk{ap}
  libdirectfb-1.7-7{pu} (D: gstreamer1.0-plugins-bad)  libdjvulibre-text{ap}
  libdjvulibre21{ap} (D: libdjvulibre-text)
  libdpkg-perl{ap} (R: bzip2, R: libfile-fcntllock-perl, R: liblocale-gettext-perl, R: xz-utils, S: git, S: patch, S: sensible-utils)
  libencode-locale-perl{ap}  liberror-perl{ap}  libfaad2{pu} (D: gstreamer1.0-plugins-bad)
  libffado2{ap} (D: libconfig++9v5, D: libglibmm-2.4-1v5, D: libxml++2.6-2v5)
  libfile-basedir-perl{ap} (D: libipc-system-simple-perl)
  libfile-desktopentry-perl{ap} (D: libfile-basedir-perl, D: liburi-perl)  libfile-fcntllock-perl{ap}
  libfile-listing-perl{ap} (D: libhttp-date-perl)
  libfile-mimeinfo-perl{ap} (D: libencode-locale-perl, D: libfile-basedir-perl, D: libfile-desktopentry-perl, R: libio-stringy-perl)
  libfluidsynth3{pu} (D: gstreamer1.0-plugins-bad)  libfont-afm-perl{ap}
  libfreeaptx0{pu} (D: gstreamer1.0-plugins-bad)  libgail-common{ap} (D: libgail18)  libgail18{ap}
  libgck-1-0{ap}  libgcr-base-3-1{ap} (D: libgck-1-0)  libgdk-pixbuf2.0-bin{ap}  libgirepository-1.0-1{ap}
  libglibmm-2.4-1v5{ap}  libgraphene-1.0-0{pu} (D: gstreamer1.0-gl)  libgs-common{ap}
  libgs10{ap} (D: libgs10-common, D: libijs-0.35, D: libjbig2dec0, D: libpaper1, D: poppler-data)
  libgs10-common{ap} (D: libgs-common, R: fonts-droid-fallback)  libgtk-3-bin{ap}  libgtk2.0-bin{ap}
  libheif-plugin-aomenc{ap}  libheif-plugin-x265{ap}
  libhtml-form-perl{ap} (D: libhtml-parser-perl, D: libhttp-message-perl, D: liburi-perl)
  libhtml-format-perl{ap} (D: libfont-afm-perl, D: libhtml-tree-perl)
  libhtml-parser-perl{ap} (D: libhtml-tagset-perl, D: liburi-perl, R: libhttp-message-perl, S: libdata-dump-perl)
  libhtml-tagset-perl{ap}
  libhtml-tree-perl{ap} (D: libhtml-parser-perl, D: libhtml-tagset-perl, R: libhtml-format-perl, R: libwww-perl)
  libhttp-cookies-perl{ap} (D: libhttp-date-perl, D: libhttp-message-perl)
  libhttp-daemon-perl{ap} (D: libhttp-date-perl, D: libhttp-message-perl, D: liblwp-mediatypes-perl)
  libhttp-date-perl{ap} (D: libtimedate-perl)
  libhttp-message-perl{ap} (D: libclone-perl, D: libencode-locale-perl, D: libhttp-date-perl, D: libio-html-perl, D: liblwp-mediatypes-perl, D: liburi-perl, R: libio-compress-brotli-perl)
  libhttp-negotiate-perl{ap} (D: libhttp-message-perl)  libijs-0.35{ap}
  libimath-3-1-29{pu} (D: gstreamer1.0-plugins-bad, D: libopenexr-3-1-30)  libinstpatch-1.0-2{ap}
  libio-compress-brotli-perl{ap}  libio-html-perl{ap}
  libio-socket-ssl-perl{ap} (D: libnet-ssleay-perl, R: libnet-idn-encode-perl, R: libnet-libidn-perl, R: liburi-perl)
  libio-stringy-perl{ap}  libip4tc2{ap}  libip6tc2{ap}  libipc-system-simple-perl{ap}  libjbig2dec0{ap}
  libjs-jquery{ap} (R: javascript-common)  libjs-sphinxdoc{ap} (D: libjs-jquery, D: libjs-underscore)
  libjs-underscore{ap} (R: javascript-common, R: libjs-jquery)  libjxr-tools{ap} (D: libjxr0)  libjxr0{ap}
  libkate1{pu} (D: gstreamer1.0-plugins-bad)  libldacbt-enc2{pu} (D: gstreamer1.0-plugins-bad)
  libldap-common{ap}  liblocale-gettext-perl{ap}  liblqr-1-0{ap}
  liblrdf0{pu} (D: gstreamer1.0-plugins-bad)  libltc11{pu} (D: gstreamer1.0-plugins-bad)  liblua5.4-0{ap}
  liblwp-mediatypes-perl{ap}
  liblwp-protocol-https-perl{ap} (D: libio-socket-ssl-perl, D: libnet-http-perl, D: libwww-perl)
  libmagickcore-6.q16-6{ap} (D: imagemagick-6-common, D: liblqr-1-0, R: ghostscript, R: gsfonts, S: libmagickcore-6.q16-6-extra)
  libmagickcore-6.q16-6-extra{ap} (D: libdjvulibre21, D: libmagickcore-6.q16-6, D: libmagickwand-6.q16-6, D: libopenexr-3-1-30, D: libwmflite-0.2-7, R: libjxr-tools)
  libmagickwand-6.q16-6{ap} (D: imagemagick-6-common, D: libmagickcore-6.q16-6)
  libmailtools-perl{ap} (D: libnet-smtp-ssl-perl, D: libtimedate-perl)
  libmailutils9{ap} (D: guile-3.0-libs, D: mailutils-common)
  libmjpegutils-2.1-0{pu} (D: gstreamer1.0-plugins-bad, D: libmpeg2encpp-2.1-0, D: libmplex2-2.1-0)
  libmodplug1{pu} (D: gstreamer1.0-plugins-bad)  libmpcdec6{pu} (D: gstreamer1.0-plugins-bad)
  libmpeg2encpp-2.1-0{pu} (D: gstreamer1.0-plugins-bad)  libmplex2-2.1-0{pu} (D: gstreamer1.0-plugins-bad)
  libnautilus-extension4{ap}  libneon27{pu} (D: gstreamer1.0-plugins-bad)
  libnet-dbus-perl{ap} (D: libxml-twig-perl)
  libnet-http-perl{ap} (D: liburi-perl, R: libio-socket-ssl-perl)
  libnet-smtp-ssl-perl{ap} (D: libio-socket-ssl-perl, R: libauthen-sasl-perl)
  libnet-ssleay-perl{ap} (D: perl-openssl-abi-3)  libnetfilter-conntrack3{ap} (D: libnfnetlink0)
  libnfnetlink0{ap}  libnftables1{ap} (D: libnftnl11)  libnftnl11{ap}  libnss-systemd{ap}
  libntfs-3g89{ap}  libnvme1{ap}
  libopenexr-3-1-30{pu} (D: gstreamer1.0-plugins-bad, D: libmagickcore-6.q16-6-extra)
  libopenh264-7{pu} (D: gstreamer1.0-plugins-bad)  libopenni2-0{pu} (D: gstreamer1.0-plugins-bad)
  libpam-cap{ap}  libpaper-utils{ap} (D: libpaper1)  libpaper1{ap} (D: ucf, R: libpaper-utils)
  libparted2{ap} (S: parted)  libpipewire-0.3-common{ap}
  libpipewire-0.3-modules{ap} (D: libffado2, D: libroc0.3)  libqrencode4{pu} (D: gstreamer1.0-plugins-bad)
  libqt5qml5{ap}  libqt5qmlmodels5{ap} (D: libqt5qml5, D: qtdeclarative-abi-5-15-10)
  libqt5quick5{ap} (D: libqt5qml5, D: libqt5qmlmodels5, D: qtdeclarative-abi-5-15-10)  libqt5svg5{ap}
  libqt5waylandclient5{ap}
  libqt5waylandcompositor5{ap} (D: libqt5qml5, D: libqt5quick5, D: libqt5quick5-gles, D: qtdeclarative-abi-5-15-10)
  libraptor2-0{ap} (D: libyajl2)  libroc0.3{ap} (D: libspeexdsp1, D: libuv1)  librsvg2-common{ap}
  libsasl2-modules{ap}  libsbc1{pu} (D: gstreamer1.0-plugins-bad)
  libsoundtouch1{pu} (D: gstreamer1.0-plugins-bad)  libspandsp2{pu} (D: gstreamer1.0-plugins-bad)
  libspeexdsp1{ap}  libsrtp2-1{pu} (D: gstreamer1.0-plugins-bad)  libtcl8.6{ap} (S: tcl8.6)  libtdb1{ap}
  libtie-ixhash-perl{ap}  libtimedate-perl{ap}  libtry-tiny-perl{ap}  libudisks2-0{ap}
  liburi-perl{ap} (S: libwww-perl)  libuv1{ap}  libvdpau-va-gl1{ap}
  libvo-aacenc0{pu} (D: gstreamer1.0-plugins-bad)  libvo-amrwbenc0{pu} (D: gstreamer1.0-plugins-bad)
  libvolume-key1{ap}  libwacom-bin{ap} (D: python3-libevdev, D: python3-pyudev)
  libwildmidi2{pu} (D: gstreamer1.0-plugins-bad)  libwireplumber-0.4-0{ap} (D: liblua5.4-0)
  libwmflite-0.2-7{ap}  libwrap0{ap}
  libwww-perl{ap} (D: libencode-locale-perl, D: libfile-listing-perl, D: libhtml-parser-perl, D: libhtml-tagset-perl, D: libhtml-tree-perl, D: libhttp-cookies-perl, D: libhttp-date-perl, D: libhttp-message-perl, D: libhttp-negotiate-perl, D: liblwp-mediatypes-perl, D: liblwp-protocol-https-perl, D: libnet-http-perl, D: libtry-tiny-perl, D: liburi-perl, D: libwww-robotrules-perl, R: libdata-dump-perl, R: libhtml-form-perl, R: libhtml-format-perl, R: libhttp-daemon-perl, R: libmailtools-perl)
  libwww-robotrules-perl{ap} (D: liburi-perl)  libx11-protocol-perl{ap}
  libxml++2.6-2v5{ap} (D: libglibmm-2.4-1v5)  libxml-parser-perl{ap} (D: liburi-perl, D: libwww-perl)
  libxml-twig-perl{ap} (D: libxml-parser-perl, R: libhtml-parser-perl, R: libtie-ixhash-perl, R: libwww-perl, R: libxml-xpath-perl, R: libxml-xpathengine-perl)
  libxml-xpathengine-perl{ap}  libyajl2{ap}  libzbar0{pu} (D: gstreamer1.0-plugins-bad)
  libzxing2{pu} (D: gstreamer1.0-plugins-bad)  lsof{ap}  luit{ap}
  mailcap{ap} (R: bzip2, R: file, R: xz-utils)
  mailutils{ap} (D: libmailutils9, D: mailutils-common, R: default-mta, R: mail-transport-agent)
  mailutils-common{ap}  manpages{ap}  manpages-dev{ap} (D: manpages)  mesa-va-drivers{ap}
  mesa-vdpau-drivers{ap}  mesa-vulkan-drivers{ap}
  nautilus-extension-gnome-terminal{ap} (D: libnautilus-extension4)  nftables{ap} (D: libnftables1)
  ntfs-3g{ap} (D: libntfs-3g89)  openssh-server{ap} (D: libwrap0, D: runit-helper, D: ucf, R: xauth)
  packagekit-tools{ap}  parted{ap} (D: libparted2)  patch{ap}  perl-openssl-defaults{ap}
  pipewire{ap} (D: libpipewire-0.3-modules, D: pipewire-bin)  pipewire-alsa{ap} (D: pipewire)
  pipewire-bin{ap} (D: libpipewire-0.3-modules, R: rtkit, R: wireplumber)
  pipewire-pulse{ap} (D: pipewire, R: wireplumber)  pkexec{ap}  pocketsphinx-en-us{ap}
  policykit-1{ap} (D: pkexec)
  poppler-data{ap} (S: fonts-ipafont-gothic, S: fonts-japanese-gothic, S: ghostscript)  proj-bin{ap}
  psmisc{ap}  publicsuffix{ap}
  python3-gi{ap} (D: gir1.2-glib-2.0, D: libgirepository-1.0-1, D: libgirepository-1.0-1-with-libffi8)
  python3-libevdev{ap}  python3-pyudev{ap} (R: gir1.2-glib-2.0, R: python3-gi)  qt6-translations-l10n{ap}
  qttranslations5-l10n{ap}
  qtwayland5{ap} (D: libqt5waylandclient5, D: libqt5waylandcompositor5, D: qtwayland-client-abi-5-15-10, D: qtwayland-compositor-abi-5-15-10)
  rtkit{ap}  runit-helper{ap}  sensible-utils{ap}  sgml-data{ap}  sound-theme-freedesktop{ap}
  supercat{ap}  systemd-timesyncd{ap}  tcl-expect{ap} (D: libtcl8.6, S: expect)  tcl8.6{ap} (D: libtcl8.6)
  timgm6mb-soundfont{ap}  ucf{ap} (D: sensible-utils)  udev{ap}
  udisks2{ap} (D: libatasmart4, D: libblockdev-crypto3, D: libblockdev-fs3, D: libblockdev-loop3, D: libblockdev-mdraid3, D: libblockdev-nvme3, D: libblockdev-part3, D: libblockdev-swap3, D: libblockdev-utils3, D: libblockdev3, D: libudisks2-0, D: parted, D: udev, R: dosfstools, R: eject, R: exfatprogs, R: ntfs-3g)
  unzip{ap}  usbutils{ap}  va-driver-all{ap} (D: mesa-va-drivers)
  vdpau-driver-all{ap} (D: libvdpau-va-gl1, D: mesa-vdpau-drivers, S: vdpau-driver)  wamerican{ap}
  wireplumber{ap} (D: libwireplumber-0.4-0, D: pipewire, R: pipewire-pulse)
  x11-xserver-utils{ap} (D: cpp)  xauth{ap}  xdg-desktop-portal{ap}
  xdg-desktop-portal-gtk{ap} (D: xdg-desktop-portal)  xdg-user-dirs{ap}  xfonts-base{ap}  xz-utils{ap}
The following packages will be upgraded:
  gstreamer1.0-plugins-base  libglib2.0-0  libglib2.0-bin  libglib2.0-data  libgstreamer-gl1.0-0
  libgstreamer-plugins-bad1.0-0  libgstreamer-plugins-base1.0-0  libksba8  libpython3.11
  libpython3.11-minimal  libpython3.11-stdlib  libpython3.12-minimal  libpython3.12-stdlib  python3.11
  python3.11-minimal  python3.12  python3.12-minimal
17 packages upgraded, 0 newly installed, 279 to remove and 0 not upgraded.
Need to get 17.5 MB of archives. After unpacking 556 MB will be freed.
Do you want to continue? [Y/n/?]
Get: 1 http://opensource.nchc.org.tw/debian unstable/main arm64 libpython3.11 arm64 3.11.7-2 [1845 kB]
...

#1057978#10
Date:
2023-12-11 09:40:16 UTC
From:
To:
than 20 packages.

You're using unstable, so you should be more careful with your actions,
especially full-upgrade. If I guessed it right, the reason caused this is
the ongoing transition of python3.12.

Also, this mail list is used for tracking aptitude bugs, not for user
support.

Best regards,
Tianyu Chen

#1057978#15
Date:
2023-12-11 23:25:12 UTC
From:
To:
(Random Debian user who has used unstable/Sid - sharing my 2c)

Hi Dan,

Further to Tianyu's note re running unstable, I highly recommend NEVER
blindly doing a 'full-upgrade' when running Sid!

This[1] seems like a pretty solid workflow giving you the least chance
of issues.

[1] https://forums.debian.net/viewtopic.php?p=633248#p633248

I ran Sid for a few years myself and there were a number of times that I
had to pin specific packages to stop breakages (while upgrading as much
as I could). Removal of important packages/tools/dependencies that would
lead to a broken state weren't uncommon in my experience.

Whilst I suspect that you could create an apt hook to do what you want
(i.e. fail/warn if more than x packages are being removed), that still
won't avoid potential issues. It's not uncommon for packages and their
dependencies to uploaded at different times - which will cause issues,
e.g.[2].

[2] https://forums.debian.net/viewtopic.php?t=153857

If you want to be able to run updates blindly without worrying about
breakages, just use stable. Issues are still possible, just much less
likely; and when they do occur, almost always less severe (tend to be
annoying bugs, rather than show stoppers).

I moved back to stable during Bookworm because the cost/benefit of
running Sid just didn't add up for me (I didn't really need all the
newer packages, just a few - that I now update via other methods).

If you want to have bleeding edge packages, use Sid - but very
carefully! If you're not attached to Debian, then a "proper" rolling
release - that is rolling by design (e.g. Arch) might be a better option
for you?

Apologies on the noise...

Cheers,
Jeremy