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

Re: How do I trace aptitude dependencies?

On Mon, Apr 28, 2008 at 01:17:24AM -0400, Bryan Donlan <bdonlan@gmail.com> was heard to say:
> Currently I have a situation where attempting to upgrade imagemagick
> from version 7: to version 7:
> pulls in over 200mb of dependencies, including mozilla-browser,
> iceape-browser, and half of gnome. Using aptitude's 'i' command to
> attempt to get information on why some of these are being installed
> results in things like:
> i   pbuilder       Recommends devscripts
> i A devscripts     Recommends www-browser
> piA iceape-browser Provides   www-browser
> piA iceape-browser Recommends iceape-gnome-support

  This is *a* reason to install iceape-gnome-support, but perhaps not
the reason it's getting pulled in in your case.

> This makes no sense, as I already have links installed for
> www-browser. Even stranger are things like:
> i   pbuilder   Recommends devscripts
> i A devscripts Recommends www-browser
> p   konqueror  Provides   www-browser
> p   konqueror  Depends    libqt3-mt (>= 3:3.3.8b)
> p   libqt3-mt  Depends    libaudio2

  It's saying that one reason you might want to install libaudio2 is if
you installed konqueror to fulfill the devscripts dependency.

  The general problem of "why is this package being installed?" is
NP-hard where it isn't unsolvable (the latter being because the
information aptitude would need isn't present in the package database,
but rather in the user's head or in the guts of some apt algorithm).
aptitude doesn't attempt to answer this question.  Instead, aptitude
tells you "what installed or to-be-installed package (if any) depends
on this package?" [0] This is useful for finding out why auto-removal
is behaving in a particular way, but as you discovered, it doesn't
answer all possible questions one might have.

  One option you have is to run "aptitude why -v imagemagick iceape-browser",
which will show you all the possible dependency chains between those

  I'm happy to improve the algorithm if anyone has useful suggestions.


  [0] with the caveat that it tries to check dependencies that aren't
      virtual or ORed first, and looks for strong dependencies before
      weak ones.

Reply to: