如何使用 aptitude 处理“未升级”的软件包?

如何使用 aptitude 处理“未升级”的软件包?

我(仍然)使用 Debian Squeeze。当我尝试升级系统时,我得到以下信息:

[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.

查看日志,我得到了罪魁祸首包的名称的提示:

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.

但是,如果我查看包装,我不会得到更多详细信息:

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

aptitude令我惊讶的是,关于它拒绝升级软件包的信息很少。

我的问题是:在这种情况下,我应该采取哪些步骤来找出此软件包未升级的原因?


更新:这是所需的命令:

$ 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

答案1

您需要知道为什么 aptitude 不想安装该版本的软件包,why-not您可以快速弄清楚:

aptitude why-not libxcb1=1.6-1+squeeze1

但我的猜测是,79 个反向依赖项之一依赖于该软件包的 1.6-1 版本,因为没有任何软件包会与该库发生冲突/冲突。

相关内容