This page to store ideas about the minimal base system for Buster development cycle.

Anything that's Essential: yes or has Priority: required will be installed in a debootstrap --variant=minbase - which is the smallest possible debian system. (A normal debian system does not have --variant=minbase and also includes Priority: important packages by default.)

One reason to make the smallest possible system as small as possible is to for example create containers that doesn't carry alot of unneccesary cruft. For Stretch it was made possible to create a debian installation without an init system for this purpose. For buster we can hopefully shrink it even more.... Here are some ideas and also some notes on why demoting something is not possible/trivial.

Related Proposals/EssentialOnDiet.

Questionable Essential: yes or Priority: required (part of minbase)

Other priority changes for regular installs (important is part of regular default install):

Appendix a - complete list of packages in 'minbase':

adduser
apt
base-files
base-passwd
bash
bsdutils
coreutils
dash
debconf
debian-archive-keyring
debianutils
diffutils
dpkg
e2fslibs:amd64
e2fsprogs
findutils
gcc-5-base:amd64
gcc-6-base:amd64
gpgv
grep
gzip
hostname
init-system-helpers
libacl1:amd64
libapt-pkg5.0:amd64
libattr1:amd64
libaudit-common
libaudit1:amd64
libblkid1:amd64
libbz2-1.0:amd64
libc-bin
libc6:amd64
libcap-ng0:amd64
libcomerr2:amd64
libdb5.3:amd64
libdebconfclient0:amd64
libfdisk1:amd64
libgcc1:amd64
libgcrypt20:amd64
libgpg-error0:amd64
liblz4-1:amd64
liblzma5:amd64
libmount1:amd64
libncurses5:amd64
libncursesw5:amd64
libpam-modules:amd64
libpam-modules-bin
libpam-runtime
libpam0g:amd64
libpcre3:amd64
libselinux1:amd64
libsemanage-common
libsemanage1:amd64
libsepol1:amd64
libsmartcols1:amd64
libss2:amd64
libstdc++6:amd64
libsystemd0:amd64
libtinfo5:amd64
libudev1:amd64
libustr-1.0-1:amd64
libuuid1:amd64
login
lsb-base
mawk
mount
multiarch-support
ncurses-base
ncurses-bin
passwd
perl-base
sed
sensible-utils
sysvinit-utils
tar
tzdata
util-linux
zlib1g:amd64

Appendix b - easily uninstallable from minbase

These packages can be uninstalled and is gone from a minbase if you just dpkg --purge them:

adduser
apt
debian-archive-keyring
gcc-5-base:amd64
gpgv
libapt-pkg5.0:amd64
libncurses5:amd64
libstdc++6:amd64
lsb-base
tzdata

(ie. they are only installed in minbase because of their Priority: required status or debootstrap pulling them in specifically.)

These are the reasons dpkg lists for not being able to purge the remaining ones:

# for a in $(dpkg -l | tail -n +6 | awk '{print $2}') ; do echo ====== $a ; dpkg --purge $a ; done 
====== base-files
dpkg: error processing package base-files (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 base-files
====== base-passwd
dpkg: error processing package base-passwd (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 base-passwd
====== bash
dpkg: error processing package bash (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 bash
====== bsdutils
dpkg: error processing package bsdutils (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 bsdutils
====== coreutils
dpkg: error processing package coreutils (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 coreutils
====== dash
dpkg: error processing package dash (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 dash
====== debconf
dpkg: dependency problems prevent removal of debconf:
 libpam0g:amd64 depends on debconf (>= 0.5) | debconf-2.0; however:
  Package debconf is to be removed.
  Package debconf-2.0 is not installed.
  Package debconf which provides debconf-2.0 is to be removed.
 libpam-modules:amd64 depends on debconf (>= 0.5) | debconf-2.0; however:
  Package debconf is to be removed.
  Package debconf-2.0 is not installed.
  Package debconf which provides debconf-2.0 is to be removed.
 libpam-runtime depends on debconf (>= 0.5) | debconf-2.0; however:
  Package debconf is to be removed.
  Package debconf-2.0 is not installed.
  Package debconf which provides debconf-2.0 is to be removed.
 libpam-runtime depends on debconf (>= 1.5.19) | cdebconf; however:
  Package debconf is to be removed.
  Package cdebconf is not installed.
 libpam-runtime depends on debconf (>= 0.5) | debconf-2.0; however:
  Package debconf is to be removed.
  Package debconf-2.0 is not installed.
  Package debconf which provides debconf-2.0 is to be removed.
 libpam-runtime depends on debconf (>= 1.5.19) | cdebconf; however:
  Package debconf is to be removed.
  Package cdebconf is not installed.
 libpam0g:amd64 depends on debconf (>= 0.5) | debconf-2.0; however:
  Package debconf is to be removed.
  Package debconf-2.0 is not installed.
  Package debconf which provides debconf-2.0 is to be removed.
 libpam-modules:amd64 depends on debconf (>= 0.5) | debconf-2.0; however:
  Package debconf is to be removed.
  Package debconf-2.0 is not installed.
  Package debconf which provides debconf-2.0 is to be removed.
 libpam-runtime depends on debconf (>= 0.5) | debconf-2.0; however:
  Package debconf is to be removed.
  Package debconf-2.0 is not installed.
  Package debconf which provides debconf-2.0 is to be removed.
 libpam-runtime depends on debconf (>= 1.5.19) | cdebconf; however:
  Package debconf is to be removed.
  Package cdebconf is not installed.

dpkg: error processing package debconf (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 debconf
====== debianutils
dpkg: error processing package debianutils (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 debianutils
====== diffutils
dpkg: error processing package diffutils (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 diffutils
====== dpkg
dpkg: error processing package dpkg (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 dpkg
====== e2fslibs:amd64
dpkg: dependency problems prevent removal of e2fslibs:amd64:
 e2fsprogs depends on e2fslibs (= 1.43.3-1).

dpkg: error processing package e2fslibs:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 e2fslibs:amd64
====== e2fsprogs
dpkg: error processing package e2fsprogs (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 e2fsprogs
====== findutils
dpkg: error processing package findutils (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 findutils
====== gcc-6-base:amd64
dpkg: dependency problems prevent removal of gcc-6-base:amd64:
 libgcc1:amd64 depends on gcc-6-base (= 6.3.0-2).

dpkg: error processing package gcc-6-base:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 gcc-6-base:amd64
====== grep
dpkg: error processing package grep (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 grep
====== gzip
dpkg: error processing package gzip (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 gzip
====== hostname
dpkg: error processing package hostname (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 hostname
====== init-system-helpers
dpkg: error processing package init-system-helpers (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 init-system-helpers
====== libacl1:amd64
dpkg: dependency problems prevent removal of libacl1:amd64:
 tar depends on libacl1 (>= 2.2.51-8).
 coreutils depends on libacl1 (>= 2.2.51-8).

dpkg: error processing package libacl1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libacl1:amd64
====== libattr1:amd64
dpkg: dependency problems prevent removal of libattr1:amd64:
 libacl1:amd64 depends on libattr1 (>= 1:2.4.46-8).
 coreutils depends on libattr1 (>= 1:2.4.46-8).

dpkg: error processing package libattr1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libattr1:amd64
====== libaudit-common
dpkg: dependency problems prevent removal of libaudit-common:
 libaudit1:amd64 depends on libaudit-common (>= 1:2.6.7-1).

dpkg: error processing package libaudit-common (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libaudit-common
====== libaudit1:amd64
dpkg: dependency problems prevent removal of libaudit1:amd64:
 login depends on libaudit1 (>= 1:2.2.1).
 libpam0g:amd64 depends on libaudit1 (>= 1:2.2.1).
 libpam-modules:amd64 depends on libaudit1 (>= 1:2.2.1).
 libsemanage1:amd64 depends on libaudit1 (>= 1:2.2.1).
 passwd depends on libaudit1 (>= 1:2.2.1).
 libpam-modules-bin depends on libaudit1 (>= 1:2.2.1).

dpkg: error processing package libaudit1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libaudit1:amd64
====== libblkid1:amd64
dpkg: dependency problems prevent removal of libblkid1:amd64:
 util-linux depends on libblkid1 (>= 2.25).
 libmount1:amd64 depends on libblkid1 (>= 2.17.2).
 e2fsprogs depends on libblkid1 (>= 2.17.2).
 libfdisk1:amd64 depends on libblkid1 (>= 2.24.2).
 mount depends on libblkid1 (>= 2.17.2).

dpkg: error processing package libblkid1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libblkid1:amd64
====== libbz2-1.0:amd64
dpkg: dependency problems prevent removal of libbz2-1.0:amd64:
 dpkg depends on libbz2-1.0.
 libsemanage1:amd64 depends on libbz2-1.0.

dpkg: error processing package libbz2-1.0:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libbz2-1.0:amd64
====== libc-bin
dpkg: error processing package libc-bin (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 libc-bin
====== libc6:amd64
dpkg: dependency problems prevent removal of libc6:amd64:
 libsmartcols1:amd64 depends on libc6 (>= 2.17).
 sed depends on libc6 (>= 2.14).
 libustr-1.0-1:amd64 depends on libc6 (>= 2.14).
 util-linux depends on libc6 (>= 2.15).
 libgcc1:amd64 depends on libc6 (>= 2.14).
 libsepol1:amd64 depends on libc6 (>= 2.14).
 ncurses-bin depends on libc6 (>= 2.14).
 libacl1:amd64 depends on libc6 (>= 2.14).
 login depends on libc6 (>= 2.14).
 libmount1:amd64 depends on libc6 (>= 2.17).
 libcap-ng0:amd64 depends on libc6 (>= 2.8).
 libpam0g:amd64 depends on libc6 (>= 2.14).
 findutils depends on libc6 (>= 2.17).
 libcomerr2:amd64 depends on libc6 (>= 2.17).
 libpam-modules:amd64 depends on libc6 (>= 2.15).
 diffutils depends on libc6 (>= 2.17).
 dpkg depends on libc6 (>= 2.14).
 libselinux1:amd64 depends on libc6 (>= 2.14).
 libdebconfclient0:amd64 depends on libc6 (>= 2.4).
 sysvinit-utils depends on libc6 (>= 2.14).
 libsemanage1:amd64 depends on libc6 (>= 2.14).
 libc-bin depends on libc6 (>> 2.24).
 libc-bin depends on libc6 (<< 2.25).
 libc-bin depends on libc6 (>> 2.24).
 libc-bin depends on libc6 (<< 2.25).
 passwd depends on libc6 (>= 2.14).
 libgpg-error0:amd64 depends on libc6 (>= 2.15).
 libblkid1:amd64 depends on libc6 (>= 2.17).
 libbz2-1.0:amd64 depends on libc6 (>= 2.4).
 tar depends on libc6 (>= 2.17).
 e2fsprogs depends on libc6 (>= 2.14).
 coreutils depends on libc6 (>= 2.17).
 libpcre3:amd64 depends on libc6 (>= 2.14).
 libfdisk1:amd64 depends on libc6 (>= 2.17).
 libsystemd0:amd64 depends on libc6 (>= 2.17).
 mount depends on libc6 (>= 2.17).
 dash depends on libc6 (>= 2.14).
 bsdutils depends on libc6 (>= 2.16).
 gzip depends on libc6 (>= 2.17).
 mawk depends on libc6 (>= 2.11).
 multiarch-support depends on libc6 (>= 2.3.6-2).
 hostname depends on libc6 (>= 2.4).
 zlib1g:amd64 depends on libc6 (>= 2.14).
 libdb5.3:amd64 depends on libc6 (>= 2.17).
 libuuid1:amd64 depends on libc6 (>= 2.4).
 bash depends on libc6 (>= 2.15).
 libncursesw5:amd64 depends on libc6 (>= 2.14).
 libgcrypt20:amd64 depends on libc6 (>= 2.15).
 debianutils depends on libc6 (>= 2.15).
 liblz4-1:amd64 depends on libc6 (>= 2.14).
 e2fslibs:amd64 depends on libc6 (>= 2.17).
 base-passwd depends on libc6 (>= 2.8).
 grep depends on libc6 (>= 2.14).
 libpam-modules-bin depends on libc6 (>= 2.14).
 liblzma5:amd64 depends on libc6 (>= 2.17).
 libss2:amd64 depends on libc6 (>= 2.17).
 libattr1:amd64 depends on libc6 (>= 2.4).
 libudev1:amd64 depends on libc6 (>= 2.16).
 perl-base depends on libc6 (>= 2.23).
 libtinfo5:amd64 depends on libc6 (>= 2.16).
 libaudit1:amd64 depends on libc6 (>= 2.14).

dpkg: error processing package libc6:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libc6:amd64
====== libcap-ng0:amd64
dpkg: dependency problems prevent removal of libcap-ng0:amd64:
 libaudit1:amd64 depends on libcap-ng0.

dpkg: error processing package libcap-ng0:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libcap-ng0:amd64
====== libcomerr2:amd64
dpkg: dependency problems prevent removal of libcomerr2:amd64:
 e2fsprogs depends on libcomerr2 (>= 1.42~WIP-2011-10-05-1).
 libss2:amd64 depends on libcomerr2.

dpkg: error processing package libcomerr2:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libcomerr2:amd64
====== libdb5.3:amd64
dpkg: dependency problems prevent removal of libdb5.3:amd64:
 libpam-modules:amd64 depends on libdb5.3.

dpkg: error processing package libdb5.3:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libdb5.3:amd64
====== libdebconfclient0:amd64
dpkg: dependency problems prevent removal of libdebconfclient0:amd64:
 base-passwd depends on libdebconfclient0 (>= 0.145).

dpkg: error processing package libdebconfclient0:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libdebconfclient0:amd64
====== libfdisk1:amd64
dpkg: dependency problems prevent removal of libfdisk1:amd64:
 util-linux depends on libfdisk1 (>= 2.29~rc2).

dpkg: error processing package libfdisk1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libfdisk1:amd64
====== libgcc1:amd64
dpkg: dependency problems prevent removal of libgcc1:amd64:
 libc6:amd64 depends on libgcc1.

dpkg: error processing package libgcc1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libgcc1:amd64
====== libgcrypt20:amd64
dpkg: dependency problems prevent removal of libgcrypt20:amd64:
 libsystemd0:amd64 depends on libgcrypt20 (>= 1.7.0).

dpkg: error processing package libgcrypt20:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libgcrypt20:amd64
====== libgpg-error0:amd64
dpkg: dependency problems prevent removal of libgpg-error0:amd64:
 libgcrypt20:amd64 depends on libgpg-error0 (>= 1.14).

dpkg: error processing package libgpg-error0:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libgpg-error0:amd64
====== liblz4-1:amd64
dpkg: dependency problems prevent removal of liblz4-1:amd64:
 libsystemd0:amd64 depends on liblz4-1 (>= 0.0~r113).

dpkg: error processing package liblz4-1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 liblz4-1:amd64
====== liblzma5:amd64
dpkg: dependency problems prevent removal of liblzma5:amd64:
 dpkg depends on liblzma5 (>= 5.2.2).
 libsystemd0:amd64 depends on liblzma5 (>= 5.1.1alpha+20120614).

dpkg: error processing package liblzma5:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 liblzma5:amd64
====== libmount1:amd64
dpkg: dependency problems prevent removal of libmount1:amd64:
 util-linux depends on libmount1 (>= 2.25).
 mount depends on libmount1 (>= 2.25).

dpkg: error processing package libmount1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libmount1:amd64
====== libncursesw5:amd64
dpkg: dependency problems prevent removal of libncursesw5:amd64:
 util-linux depends on libncursesw5 (>= 6).

dpkg: error processing package libncursesw5:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libncursesw5:amd64
====== libpam-modules:amd64
dpkg: dependency problems prevent removal of libpam-modules:amd64:
 login depends on libpam-modules (>= 1.1.8-1).
 passwd depends on libpam-modules.
 libpam-runtime depends on libpam-modules (>= 1.0.1-6).

dpkg: error processing package libpam-modules:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libpam-modules:amd64
====== libpam-modules-bin
dpkg: dependency problems prevent removal of libpam-modules-bin:
 libpam-modules:amd64 depends on libpam-modules-bin (= 1.1.8-3.5).

dpkg: error processing package libpam-modules-bin (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libpam-modules-bin
====== libpam-runtime
dpkg: dependency problems prevent removal of libpam-runtime:
 login depends on libpam-runtime.

dpkg: error processing package libpam-runtime (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libpam-runtime
====== libpam0g:amd64
dpkg: dependency problems prevent removal of libpam0g:amd64:
 util-linux depends on libpam0g (>= 0.99.7.1).
 login depends on libpam0g (>= 0.99.7.1).
 libpam-modules:amd64 depends on libpam0g (>= 1.1.3-2).
 passwd depends on libpam0g (>= 0.99.7.1).
 libpam-modules-bin depends on libpam0g (>= 0.99.7.1).

dpkg: error processing package libpam0g:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libpam0g:amd64
====== libpcre3:amd64
dpkg: dependency problems prevent removal of libpcre3:amd64:
 libselinux1:amd64 depends on libpcre3.
 grep depends on libpcre3.

dpkg: error processing package libpcre3:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libpcre3:amd64
====== libselinux1:amd64
dpkg: dependency problems prevent removal of libselinux1:amd64:
 sed depends on libselinux1 (>= 1.32).
 util-linux depends on libselinux1 (>= 2.6-3~).
 libmount1:amd64 depends on libselinux1 (>= 2.6-3~).
 findutils depends on libselinux1 (>= 1.32).
 libpam-modules:amd64 depends on libselinux1 (>= 2.1.9).
 dpkg depends on libselinux1 (>= 2.3).
 libsemanage1:amd64 depends on libselinux1 (>= 2.6).
 passwd depends on libselinux1 (>= 1.32).
 tar depends on libselinux1 (>= 1.32).
 coreutils depends on libselinux1 (>= 2.1.13).
 libsystemd0:amd64 depends on libselinux1 (>= 2.1.9).
 mount depends on libselinux1 (>= 2.6-3~).
 libpam-modules-bin depends on libselinux1 (>= 1.32).

dpkg: error processing package libselinux1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libselinux1:amd64
====== libsemanage-common
dpkg: dependency problems prevent removal of libsemanage-common:
 libsemanage1:amd64 depends on libsemanage-common (= 2.6-2).

dpkg: error processing package libsemanage-common (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libsemanage-common
====== libsemanage1:amd64
dpkg: dependency problems prevent removal of libsemanage1:amd64:
 passwd depends on libsemanage1 (>= 2.0.3).

dpkg: error processing package libsemanage1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libsemanage1:amd64
====== libsepol1:amd64
dpkg: dependency problems prevent removal of libsepol1:amd64:
 libsemanage1:amd64 depends on libsepol1 (>= 2.6).

dpkg: error processing package libsepol1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libsepol1:amd64
====== libsmartcols1:amd64
dpkg: dependency problems prevent removal of libsmartcols1:amd64:
 util-linux depends on libsmartcols1 (>= 2.28~rc1).
 mount depends on libsmartcols1 (>= 2.28~rc1).

dpkg: error processing package libsmartcols1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libsmartcols1:amd64
====== libss2:amd64
dpkg: dependency problems prevent removal of libss2:amd64:
 e2fsprogs depends on libss2 (>= 1.34-1).

dpkg: error processing package libss2:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libss2:amd64
====== libsystemd0:amd64
dpkg: dependency problems prevent removal of libsystemd0:amd64:
 util-linux depends on libsystemd0.
 bsdutils depends on libsystemd0.

dpkg: error processing package libsystemd0:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libsystemd0:amd64
====== libtinfo5:amd64
dpkg: dependency problems prevent removal of libtinfo5:amd64:
 util-linux depends on libtinfo5 (>= 6).
 ncurses-bin depends on libtinfo5 (>= 6.0+20151017).
 ncurses-bin depends on libtinfo5 (<< 6.1~).
 ncurses-bin depends on libtinfo5 (>= 6.0+20151017).
 ncurses-bin depends on libtinfo5 (<< 6.1~).
 bash depends on libtinfo5 (>= 6).
 libncursesw5:amd64 depends on libtinfo5 (= 6.0+20161126-1).

dpkg: error processing package libtinfo5:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libtinfo5:amd64
====== libudev1:amd64
dpkg: dependency problems prevent removal of libudev1:amd64:
 util-linux depends on libudev1 (>= 183).
 mount depends on libudev1 (>= 183).

dpkg: error processing package libudev1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libudev1:amd64
====== libustr-1.0-1:amd64
dpkg: dependency problems prevent removal of libustr-1.0-1:amd64:
 libsemanage1:amd64 depends on libustr-1.0-1 (>= 1.0.4).

dpkg: error processing package libustr-1.0-1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libustr-1.0-1:amd64
====== libuuid1:amd64
dpkg: dependency problems prevent removal of libuuid1:amd64:
 util-linux depends on libuuid1 (>= 2.16).
 libblkid1:amd64 depends on libuuid1 (>= 2.16).
 e2fsprogs depends on libuuid1 (>= 2.16).
 libfdisk1:amd64 depends on libuuid1 (>= 2.16).

dpkg: error processing package libuuid1:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 libuuid1:amd64
====== login
dpkg: error processing package login (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 login
====== mawk
dpkg: dependency problems prevent removal of mawk:
 base-files depends on awk; however:
  Package awk is not installed.
  Package mawk which provides awk is to be removed.

dpkg: error processing package mawk (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 mawk
====== mount
dpkg: error processing package mount (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 mount
====== multiarch-support
dpkg: dependency problems prevent removal of multiarch-support:
 libpcre3:amd64 depends on multiarch-support.
 libattr1:amd64 depends on multiarch-support.

dpkg: error processing package multiarch-support (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 multiarch-support
====== ncurses-base
dpkg: error processing package ncurses-base (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 ncurses-base
====== ncurses-bin
dpkg: error processing package ncurses-bin (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 ncurses-bin
====== passwd
dpkg: dependency problems prevent removal of passwd:
 libuuid1:amd64 depends on passwd.

dpkg: error processing package passwd (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 passwd
====== perl-base
dpkg: error processing package perl-base (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 perl-base
====== sed
dpkg: error processing package sed (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 sed
====== sensible-utils
dpkg: dependency problems prevent removal of sensible-utils:
 debianutils depends on sensible-utils.

dpkg: error processing package sensible-utils (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 sensible-utils
====== sysvinit-utils
dpkg: error processing package sysvinit-utils (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 sysvinit-utils
====== tar
dpkg: error processing package tar (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 tar
====== util-linux
dpkg: error processing package util-linux (--purge):
 this is an essential package; it should not be removed
Errors were encountered while processing:
 util-linux
====== zlib1g:amd64
dpkg: dependency problems prevent removal of zlib1g:amd64:
 util-linux depends on zlib1g (>= 1:1.1.4).
 dpkg depends on zlib1g (>= 1:1.1.4).

dpkg: error processing package zlib1g:amd64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 zlib1g:amd64

Appendix c - remaining non-uninstallable packages

Here's a list of the installed packages sorted by size in a --variant=minbase chroot after trying to uninstall as much as possible (ie. appendix b):

# dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr  
15042   coreutils
10670   libc6
7538    perl-base
6664    dpkg
5798    bash
3851    e2fsprogs
3552    util-linux
3362    libc-bin
2770    tar
2396    login
2345    passwd
1849    findutils
1814    libdb5.3
1319    diffutils
1238    libgcrypt20
1131    grep
1016    libpam-runtime
870     libpam-modules
785     sed
668     libpcre3
653     libsepol1
647     libsystemd0
572     libgpg-error0
558     debconf
532     ncurses-bin
478     libtinfo5
469     libfdisk1
445     e2fslibs
444     mount
403     libmount1
367     libblkid1
347     libncursesw5
340     ncurses-base
338     liblzma5
291     libsemanage1
287     base-files
258     libustr-1.0-1
257     libsmartcols1
238     bsdutils
229     libpam0g
229     base-passwd
225     gzip
220     libpam-modules-bin
218     multiarch-support
217     libudev1
213     debianutils
208     libselinux1
206     gcc-6-base
200     dash
198     mawk
156     zlib1g
149     libaudit1
130     init-system-helpers
110     sensible-utils
108     libgcc1
107     libuuid1
106     sysvinit-utils
95      libss2
92      liblz4-1
83      libcomerr2
83      libbz2-1.0
67      libdebconfclient0
61      libacl1
42      libcap-ng0
42      hostname
39      libsemanage-common
30      libattr1
29      libaudit-common