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

Re: apt-get not installing but aptitude does?



On Fri, Jan 31, 2014 at 11:12:26AM -0700, Bob Proulx wrote:
>   # apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
>   Reading package lists... Done
>   Building dependency tree
>   Reading state information... Done
>   Calculating upgrade... Starting pkgProblemResolver with broken count: 2
>   Starting 2 pkgProblemResolver with broken count: 2

I like to imagine that in the "problem resolver" two packages are put
into a cage and do a simple and clean fight to decide who can rule over
the other. On hell of a way to resolve your problems, isn't it?

>   Investigating (0) libdb-dev [ amd64 ] < 5.1.7 -> 5.3.0 > ( libdevel )
>   Broken libdb-dev:amd64 Conflicts on libdb5.1-dev [ amd64 ] < 5.1.29-7 > ( libdevel )
>     Considering libdb5.1-dev:amd64 -1 as a solution to libdb-dev:amd64 -1
>     Holding Back libdb-dev:amd64 rather than change libdb5.1-dev:amd64

Two contenders: In the left corner: "libdb-dev" (the challenger) and in
the other "libdb5.1-dev". The "-1" next to each name signal the points
they got in their fight (Looks like they are not good fighters…).
As usual, in the case of a draw the challenger looses, so he has to hold
back with his wish to remove libdb5.1-dev. First case settled.


>   Investigating (0) libdb5.3-dev [ amd64 ] < none -> 5.3.28-3 > ( libdevel )
>   Broken libdb5.3-dev:amd64 Conflicts on libdb5.1-dev [ amd64 ] < 5.1.29-7 > ( libdevel )
>     Considering libdb5.1-dev:amd64 -1 as a solution to libdb5.3-dev:amd64 -1
>     Holding Back libdb5.3-dev:amd64 rather than change libdb5.1-dev:amd64

Next one up: "libdb5.3-dev" against "libdb5.1-dev". Again, not a good
fight, but "libdb5.1-dev" remains undefeated and "libdb5.3-dev" can't do
what it would have liked to: Remove libdb5.1-dev. Second case settled.

(don't think that libdb5.1-dev should have lost based on the fact that
 two packages wanted it to be gone. Point-calculation is complicated,
 but this is e.g. considered, so its a fair "win").


>    Try to Re-Instate (1) libdb-dev:amd64

If case 2 had a different autocome, the autocome of case 1 can be
changed maybe to reflect new reality, but it didn't so it isn't.

Nothing else to resolve, "Done".


>   The following packages have been kept back:
>     libdb-dev

So in the end, APT decides against upgrading "libdb-dev" as it would
mean that a package you have installed (libdb5.1-dev) is removed with
dubious benefits. Read: none at best as libdb5.3-dev can provide the
same features or at worst loosing features – like in this case the
potential that your mission critical compilation doesn't work anymore,
because 5.3 isn't 5.1. So, in other word: aptitude is a bit more relaxed
(in its default configuration) regarding breakage. You can like that or
you don't… I personally prefer apt logic, clean and simple to follow if
you understand the general idea.


libdb is a bit special in that it provides versioned -dev packages
which can't be co-installed as well as an unversioned one.
Why that is the case, you are better of asking the maintainers…


Anyway, either the maintainers will change this (somehow I doubt it),
the situation will fix itself at the moment libdb5.1 leaves the archive
as this means it gets (even less) points or someday around the end of
this year a release critical bug will be opened against apt asking for
an explanation why apt "clearly does the wrong thing here"™.
(I am writing this mail mainly so I can point to it then,
 claiming to be a big prophet. Wish me luck - or better don't.)


Best regards

David Kalnischkies

Attachment: signature.asc
Description: Digital signature


Reply to: