On Tue, 29 Apr 2003, Miquel van Smoorenburg wrote:
> > There are a lot of wonky things that can happen during most of the essential
> > package remove scenarios that can completely screw your system so it doesn't
> > boot or can't run programs, install scripts or something er other.
> >
> > Your case may or may not have these properties, it's impossible to tell.
> Well yes, it probably is. Sysv-rc and file-rc *are not* essential.
> Sysvinit is, and it depends on sysv-rc | file-rc, and that's why
> apt 'upgrades' the status of those packages to Essential. Even if
> I put Essential: no in the control file, apt still ignores that.
Well, for the purposes of this check they are essential. It is
specifically designed to prevent against
> I'd say in this case apt is going slightly overboard. It's against
> current policy, and dpkg itself does get it right.
It isn't against policy.
> Unix is all about having enough rope to hang yourself and being
> able to shoot yourself in the foot etc, right, so why is apt
> preventing me from doing something that actually makes a lot
> of sense.
Yeah, well, a few years ago people were busilly shooting themselves in the
foot and rendering their systems completely inoperable by removing
these 'virtually eseential' packages. They complained loudly that it
should not be the way it was and I agreed. So this check is here to
stay.
You have to find another way to do what you want that isn't so risky.
> When replacing a (virtually) essential package, apt should simply
> not remove the old package first and install the replacing
> package after that. It should let dpkg take care of that. Apt
> is able to order things the right way, so it should be able to
> configure the replacing package as soon as it is unpacked.
This isn't relevent. Dpkg does the same operations internally, it just
does them a little faster. You still get the same potential bad effects.
> Now I have to find a sane way to describe that, and file a
> bug report against apt, I guess. Apt being written in C++ I'm
> not going to try to fix it myself.
It's not a bug, so please don't file more pointless bugs against it.
I seriously recommend against using virtual packages, or |'s with packages
that are marked essential. There is alot of very poor behavior you will
run into.
Jason