On Sun, Mar 21, 2010 at 04:36:59AM +0100, Santiago Vila wrote: > Julian Andres Klode escribió: > >forcemerge 177952 574729 > >thanks > > > >On Sat, Mar 20, 2010 at 04:27:14PM +0100, Santiago Vila wrote: > >>Package: apt > >>Version: 0.7.25.3 > >> > >>It seems apt-get installs new essential packages by default. > >> > >>This *is* a bug. Please let me explain why: > >It is not, read Policy section 3.8: > > > > "Essential is defined as the minimal set of functionality that MUST > > be available and usable on the system at all times > > [...] > > Packages may assume that functionality provided by essential > > packages is always available without declaring explicit dependencies" > > > >If apt were not installing them, those packages would not be available > >on the system (1st part) and packages could not assume that they are > >available (2nd part). Thus, not installing all essential packages > >would violate the Policy and may result in a broken system. > > No, you are drawing conclusions that are not in policy. apt-get > would not violate policy, because policy does not say that apt-get > should try to "fix" the system. It only tries it in dist-upgrade or when installing new packages; and not on upgrade. And thus it's not fixing the system; but just ensuring that everything needed is there before doing distribution upgrades or new installations. Otherwise, changing the essential package set would be a much more difficult thing.
> > Usually, essential and required packages are installed because > debootstrap installs them in the very first system install, and also > because it is difficult to remove them. So in practice it is not, > and it has never been necessary for apt-get to install them. > > If the user does "dpkg --force-remove-essential", whatever breakage > that may result is entirely under the responsability of the *user*, > not the responsability of apt. > > Moreover, quoted section 3.8 is just a description of essential, not > a description of how package managers should behave. For a > description of what the package system should do, we might also read > section 5.6.9: > > 5.6.9. `Essential' > ------------------ > > This is a boolean field which may occur only in the control file of a > binary package or in a per-package fields paragraph of a main source > control data file. > > If set to `yes' then the package management system will refuse to > remove the package (upgrading and replacing it is still possible). > > Please note that it says "refuse to remove the package" (which in > practice it translates into making particularly difficult to remove > it), it does *not* say the package management system should > *reinstall* it again at the smallest chance! > > If dpkg allows the user to remove an essential package (using an > extra option), apt should not second-guess the will of the user, at > least not automatically, and definitely not without asking first. > > Keeping the integrity of the system might be a desirable and nice > thing in some cases, but it's not something that should be done > *against* the will of the user! You can prevent the installation of new essential packages by pinning them to -1: Package: test-essential Pin: version 0.0-0 Pin-Priority: -1 Thus I'm also closing bug #177952; because it is possible to "suppress installation of essential packages". Due to Bug #216768 this may not always work in practice; but I have not checked it further. Anyway, this bug is done. -- Julian Andres Klode - Debian Developer, Ubuntu Member See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.
pgp6pVkkvM5tL.pgp
Description: PGP signature