On Fri, 2020-01-17 at 11:12:50 +0100, Ansgar wrote:
> Johannes Schauer writes:
> > My advice would also be to switch from debootstrap to mmdebstrap because the
> > latter is able to create a chroot with only Essential:yes packages in it 
> > while
> > debootstrap includes Priority:required packages as well. Alternatively,
> > debootstrap could gain a variant only installing Essential:yes packages and
> > their dependencies (why doesn't it have that already?).
> 
> Debian doesn't support systems that don't have "required" packages
> installed. So buildds should have them installed.

If these statements are based on the policy quote below, then I do
not agree. I don't see why e2fsprogs would need to be installed on
a chroot, as long as there's nothing depending on it, for example.

> Policy states:
> "Removing a required package may cause your system to become totally
> broken and you may not even be able to use dpkg to put things back, so
> only do so if you know what you are doing."

That seems wrong, or inaccurate at best. dpkg should never depend on
anything that is not part of the pseudo-essential set (strictly
speaking only Essential:yes + awk-virtual), or that it depends on
explicitly. So as long as a package has not been forced out, dpkg
must work.

Removing a required package (that is not Essential:yes) might indeed
render your system broken, but what broken means or in what context is
not qualified there. This could apply to systems that get booted for
example, but not to chroots. A package that relies on another package
that is Priority:required and not Essential:yes, and that it does not
depend on, is just broken.

Here's the current list of these packages on my system:

  $ aptitude -F '%p' search '~prequired !~E'
  debconf
  e2fsprogs
  gcc-10-base
  gcc-9-base
  libpam-modules
  libpam-modules-bin
  libpam-runtime
  mawk
  mount
  passwd
  tzdata

And most of these are actually part of the pseudo-essential set
anyway, and cannot be removed w/o force.

That passage in policy might have made sense some time ago, when
Priority:required almost matched the pseudo-essential set, and when we
didn't have a separation of "dpkg-essential" and "boot-essential".

Regards,
Guillem

Reply via email to