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

Re: xpdf-utils vs. poppler-utils conflict prevents aptitude safe-upgrade



On Tue, Jun 10, 2008 at 05:35:18PM -0500, Aaron Hall <ahall@vitaphone.net> was heard to say:
> My sid box has cupsys and xpdf-utils installed (among a bunch of other
> things). When I run "aptitude safe-upgrade", aptitude runs through its
> normal prep, followed by many lines of "Resolving dependencies...",
> followed by:
> 
>   The following packages have unmet dependencies:
>     xpdf-utils: Conflicts: poppler-utils but 0.8.2-2 is to be installed.
>     poppler-utils: Conflicts: xpdf-utils but 3.02-1.3 is installed.
> 
> Then it exits. I can tell xpdf-utils and poppler-utils conflict; fine.
> But xpdf-utils is already installed, poppler-utils is not. I thought
> aptitude would normally let the already-installed xpdf-utils fulfill the
> dependency and ignore poppler-utils. But it's not. So I thought that
> something else might be trying to pull poppler-utils in, but:

  I ran into this on my own computer recently.  Unfortunately, it's not
trivial to solve.  The problem came up because of an interaction between
the code to remove unused packages and the code to resolve dependencies:
if a package is installed that requires something being removed because
it's unused, the unused package will be put back on the system.  That's
fine, but the resolver doesn't know that, and so it produces a solution
that breaks dependencies after it's applied.

  Of course, now that I've written that, it occurs to me that I might be
able to get away with just deferring the removal of unused packages
until after all the dependencies are resolved.  That won't solve the
problem in general, but it will probably make things better in this
case.  (I guess the one possible drawback would be something where both
A and B could hold C on the system, upgrading B pulls in C, but B itself
is unused after the upgrade, so C would be installed for no obvious
reason -- but that's probably a better result than breaking)

  I think this can be solved properly, for good, but it'll require
somewhat more thought and work.


  Anyway, for now you can try a full-upgrade when this happens.  Another
option is to temporarily disable the removal of unused packages by
running

    aptitude -o "Aptitude::Delete-Unused=false" safe-upgrade

  and then running "aptitude install", which *should* clear out any
unused packages (if not, they'll be removed next time you do anything).
I've only seen this in the last week or two, and I'm not sure why; as
far as I can tell, there's nothing that would have prevented this from
cropping up any time in the last few years.

  Daniel


Reply to: