[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#574729: apt: essential is not a priority. apt-get should not install essential packages by default



On Sun, 21 Mar 2010, Julian Andres Klode wrote:

> > 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.

Ok, that's a lot better than doing it unconditionally, but still not
enough as it's second-guessing the user wishes.

> And thus it's not fixing the system; but just ensuring
> that everything needed is there before doing distribution upgrades or
> new installations.

I would not mind if apt-get did that after a simple Yes/No question,
even if the default is Yes, for example:

The following essential and required packages will be installed:
  foo
Do you want to continue [Y/n]?


But apt-get does nothing of the sort, so, yes, it's "fixing" the system,
and it's overriding the user decision to remove an essential package
with dpkg --force-remove-essential.

I agree that "fixing" the system may sometimes be a good thing, my
point is that it should not be forced and it should not necessarily be
the default behaviour.

> Otherwise, changing the essential package set would
> be a much more difficult thing.

No, that's not true, and I wrote specifically about this case in the
initial message for this bug report.

The truth is that it has never been a difficult thing:

Whenever new essential packages have been added to the system, a
dependency on an already essential and required package has been
always added. Normally, the package which has a closer functionality
to that of the new essential and required package is chosen to carry
the dependency. If no package is particularly suitable for this,
base-files could be used as a last resort.

Conversely, when we want to drop (not add) an essential package, we
make it a dummy package first, for one release, like "mktemp" in squeeze.

Ironically, what apt-get does in practice regarding the essential
package set is to make it really tricky to change it, i.e. the
opposite of what you said. See Bug #544481 for example, where the user
wants to get rid of diff, no longer essential in squeeze. He can't
because apt-get insist on considering diff as an essential package.

So, I see cases where this apt-get behaviour is harmful, and I have
yet to see a case where this apt-get behaviour has been actually
required to change the essential package set ("required" in the sense
that we can't deal with the change using new dependencies or dummy
packages).

> > 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

That is better than nothing, but does not solve the problem. The user
who has already used dpkg --force-remove-essential should not have to
do that.



Reply to: