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

Bug#538399: /usr/bin/apt-get: fails to upgrade dependencies



Michal Suchanek <hramrach@centrum.cz> writes:

> 2009/7/25 Goswin von Brederlow <goswin-v-b@web.de>:
>> Michal Suchanek <hramrach@centrum.cz> writes:
>>
>>> Package: apt
>>> Version: 0.7.21
>>> Severity: important
>>> File: /usr/bin/apt-get
>>>
>>>
>>> This is a mojor problem. Unless you always use dist-upgrade (as opposed
>>> to only installing security upgrades) and always use only one repository
>>> you will likely get in this situation.
>>>
>>> You have two packages - typically libA and libA-dev where libA-dev
>>> requires exact version of libA. And you try to install pacakge B that
>>> requires a newer vesion of libA. Apt fails to do that.
>>>
>>> # ia32-apt-get  install xinput/unstable
>>> Reading package lists... Done
>>> Building dependency tree
>>> Reading state information... Done
>>> Selected version 1.4.2-1 (Debian:unstable) for xinput
>>> Some packages could not be installed. This may mean that you have
>>> requested an impossible situation or if you are using the unstable
>>> distribution that some required packages have not yet been created
>>> or been moved out of Incoming.
>>> The following information may help to resolve the situation:
>>>
>>> The following packages have unmet dependencies:
>>>   xinput: Depends: libxi6 (>= 2:1.2.0) but 2:1.1.4-1 is to be installed
>>> E: Broken packages
>>> # ia32-aptitude  install
>>> xinput/unstable
>>> Reading package lists... Done
>>> Building dependency tree
>>> Reading state information... Done
>>> Reading extended state information
>>> Initializing package states... Done
>>> Writing extended state information... Done
>>> The following packages are BROKEN:
>>>   xinput
>>> 0 packages upgraded, 1 newly installed, 0 to remove and 25 not upgraded.
>>> Need to get 16.0kB of archives. After unpacking 77.8kB will be used.
>>> The following packages have unmet dependencies:
>>>   xinput: Depends: libxi6 (>= 2:1.2.0) but 2:1.1.4-1 is installed.
>>> The following actions will resolve these dependencies:
>>>
>>> Upgrade the following packages:
>>> libxi-dev [2:1.1.4-1 (stable, testing, now) -> 2:1.2.1-2 (unstable)]
>>> libxi6 [2:1.1.4-1 (stable, testing, now) -> 2:1.2.1-2 (unstable)]
>>>
>>> Score is -10
>>>
>>> Accept this solution? [Y/n/q/?]
>>
>>
>>> APT::Default-Release "lenny";
>>
>> I believe that behaviour is as expected.
>>
>> ia32-apt-get  install xinput/unstable
>>
>> Means that you override the default release for *only* xinput and all
>> other packages remain with lenny pinned highest. apt-get then refuses
>> to install a package that is not pinned highest (the lenny package in
>> your case).
>
> As I see it pinning is only a hint as to what packages I prefer. For
> one, if I install an unstable package and a newer version is uploaded
> into unstable then that version should be installed, too, regardless
> of pinning other repository higher.

For apt-get it is a strict rule. It never installs a package with a
lower pin then the one installed and then only the one with the
highest pin unless explicitly told otherwise.

>> Now, aptitude on the other hand happily breaks the pining restrictions
>> and installs the unstable version that has a lower pin than the stable
>> version. Something I would even consider a bug.
>
> OK, I would then need a really-install command for apt-get that really
> installs packages.
>
> apt-get is pretty much useless for me otherwise.
>
> Note that aptitude does not just break the pinning, It says that it
> needs to upgrade the packages and offers that as a solution but
> apt-get plain refuses to do anything and does not give very insightful
> messages either.
>
> The reason why a different version of the library is installed (which
> actually means the library is held back) is not shown. It might be
> that something else requires the old version, the new version
> conflicts with something, it breaks apt pinnig, whatever else.

For aptitude pining is indeed just a hint.

>> What you should do is
>>
>> ia32-apt-get -t sid install xinput
>> or
>> ia32-apt-get -t unstable install xinput
>>
>> One of the two works the other doesn't. -t is a bit picky iirc.
>
> I guess it should have been
>  -t sid install
> or
>  install -t sid
>
> and that only one works is yet another bug which is already reported
> (and unfixed) iirc.
>
> This, however, installs all dependencies from sid, not just the ones
> that have to be installed from sid.

True.

> Thanks
>
> Michal

MfG
        Goswin



Reply to: