Debian – How to deal with a package “not upgraded” using aptitude

aptaptitudedebian

I'm (still) on Debian Squeeze. When I try to upgrade the system, here's what I get:

[09:20]/root# aptitude upgrade
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

Looking at the log, I get a hint at the name of the culprit package:

Aptitude 0.6.3: log report
Sat, Jun 22 2013 09:20:13 +0200

IMPORTANT: this log only lists intended actions; actions which fail due to
dpkg problems may not be completed.

Will install 0 packages, and remove 0 packages.
===============================================================================
[HOLD] libxcb1
===============================================================================

Log complete.

However, if I look at the package, I don't get any more details:

[09:21]/root# aptitude show libxcb1
Package: libxcb1
State: installed
Automatically installed: no
Version: 1.6-1
Priority: optional
Section: libs
Maintainer: XCB Developers <xcb@lists.freedesktop.org>
Uncompressed Size: 188 k
Depends: libc6 (>= 2.3.2), libxau6, libxdmcp6
Breaks: libxcb-xlib0
...

I'm surprised by how little info aptitude is giving me about its refusal to upgrade the package.

My question is: What are the steps I should follow in this situation to find out why this package is not upgraded?


Update: Here's the desired command:

$ apt-cache policy libxcb1
libxcb1:
  Installed: 1.6-1
  Candidate: 1.6-1+squeeze1
  Version table:
     1.6-1+squeeze1 0
        500 http://security.debian.org/ squeeze/updates/main amd64 Packages
 *** 1.6-1 0
        500 http://debian.mirrors.ovh.net/debian/ squeeze/main amd64 Packages
        100 /var/lib/dpkg/status

Best Answer

You need to know why aptitude doesn't want to install that version of the package, with a quick why-not you can figure this out:

aptitude why-not libxcb1=1.6-1+squeeze1

But my guess is that one of the 79 reverse dependencies depended of the 1.6-1 version of the package, since there isn't any packages that breaks/conflicts with this library.

Related Question