Reducing the Essential set

The Essential:yes set poses problems in scenarios where size is limited (such as minimal containers or chroots), or when bootstrapping a distribution. It also makes some problems related to dependencies harder as these are implicit and cannot change semantics.

Packages can either be moved out of the pseudo-essential set or they can be marked as Protected:yes (see Teams/Dpkg/Spec/ProtectedField)

Some of the packages involved in the boot sequence could or have been switched from Essential:yes to Protected:yes, which has the same effect for dpkg, apt and frontends.

Executables statically linked against glibc (/sbin/ldconfig in the essential set) can be built against musl or so, for >900KB savings a pop.

Trimming changelogs, stripping extra documentation to separate packages, etc, can also be good.

See also

For a historical tracking of packages that got removed from the pseudo-essential set, see BusterPriorityRequalification.