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

Re: Buster and apt wanting to remove tons of packages...



On 2018-07-10 at 06:55, sgarrulo wrote:

> Hello everyone!
> I had an installation of debian stable (stretch) which was fully 
> upgraded something like a couple of months ago. Then I passed it to
> testing (buster).
> 
> Now I'm facing this situation:
> * 5031 installed packages
> * 1292 upgradable packages
> 
> If I do a normal upgrade, 676 packages are to be upgraded, but only
> the gtk/qt unrelated ones (for example, apache2-doc but none of the
> apache2 *real* packages, or vim-addon-manager and vim-doc but none of
> the vim *real* packages, and so on)
> 
> And if I try to upgrade, let's say, vim-* packages, it wants to
> remove a ton of seemingly unrelated packages, like calibre,
> evolution, gir1.2-*, gstreamer things, kid3, libqt5-*, pidgin, vlc-*,
> etc etc...
> 
> This happens when I try to upgrade or install apparently *anything*
> related to GUI programs (GTK/Qt related).
> 
> I am worried to make an upgrade like that.
> 
> What can I do to debug this situation and try to understand which
> package(s) is/are breaking everything?

If I were experiencing a similar situation, what I'd do is try to
simultaneously install both one of the packages that triggers the
cascade and one or more of the packages which the cascade wants to
remove, and keep adding packages to the install command until I get a
dependency-resolution failure.

E.g., assuming that trying to upgrade 'vim' triggers the cascade and the
cascade wants to remove calibre, evolution, and pidgin:

$ apt-get install vim calibre evolution pidgin

(In case it wasn't obvious: an 'install' operation on an
already-installed package which has a newer available version triggers
an install of that newer version, i.e., an upgrade.)

If you get a successful upgrade attempt which doesn't trigger the
cascade, you can let it proceed, then try the mass upgrade again. If the
mass upgrade still produces the cascade, you can repeat the
some-small-subset-of-packages manual install process.

If on the other hand the manual install command *does* trigger the
cascade, you should cancel it and add more package names to the install
command.

Keep repeating those two until either the cascade disappears from the
mass-upgrade attempt, or you get a "request cannot be fulfilled"
dependency-resolution failure.

If the cascade disappears along the way, you're in good shape; just
complete the mass upgrade. (Unfortunately, this doesn't really help
figure out what caused the bug in the first place.)

If you get a dependency-resolution failure, the packages involved should
give you a hint about which packages have dependency relationships which
are leading to the cascade.

The next step involves looking at those packages and their dependency
relationships, and I can't describe the process very well without a
real-world example to hand.

Once you've identified the dependency relationship which resulted in the
cascade, it's probably fairly straightforward to determine what bug
report to file and what package to file it against.

-- 
   The Wanderer

The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore all
progress depends on the unreasonable man.         -- George Bernard Shaw

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: