apt-cache依赖查询无需联网,仅依赖本地缓存:用apt-cache depends查正向依赖(含depends/recommends等),apt-cache rdepends查反向依赖,apt-cache showpkg查完整依赖树与提供者信息,执行前须先sudo apt update确保缓存最新。

查依赖关系不用联网,靠本地 APT 缓存就能快速理清。关键在于用对 apt-cache 的几个核心命令,并理解输出含义。
查一个包装了什么、依赖哪些(正向依赖)
运行 apt-cache depends ,它会列出该包安装时必须满足的依赖(Depends)、建议安装的(Recommends)、可选的(Suggests)等。注意:
- 带
|的行表示“或”关系,比如libssl1.1 | libssl3,说明只要装其中任一即可 - 输出里出现
none,代表当前缓存中没有能提供该依赖的可用包,可能需要更新源或换仓库 - 加
--no-recommends可过滤掉建议项,聚焦刚性依赖
查谁在用这个包(反向依赖)
执行 apt-cache rdepends ,就能看到系统里有哪些已知包依赖它。这对判断能否卸载很关键——比如删 libc6 前,先跑一遍这个命令,基本就知道会连带影响多少核心组件。
- 结果默认包含已安装和未安装但可安装的包,如只想看已安装的,可追加
| grep "^[a-z]" | xargs dpkg -s 2>/dev/null | grep -E "^Status:.*installed" - 配合
grep -v "reverse depends:"能去掉提示头,方便脚本处理
看完整依赖树和提供者信息
apt-cache showpkg 输出更全面:既有正向依赖列表,也有反向依赖列表,还列出该包“Provides”哪些虚拟包(比如 mail-transport-agent),以及哪些包能“Provides”它所依赖的虚拟名。
- “Dependencies” 下是它要什么,“Reverse Depends” 下是谁要它,“Provides” 是它对外声明的能力
- 若某依赖显示为
package-name (>= version),说明版本有下限要求,不是任意版本都行
确保信息准,先更新缓存再查
apt-cache 查的是本地缓存,不是实时远程状态。如果源列表刚改过,或很久没同步,结果可能滞后。务必先执行:
-
sudo apt update—— 刷新所有仓库元数据到/var/lib/apt/lists/ - 再运行依赖相关命令,否则
rdepends可能漏掉新进仓库的包,depends可能显示旧版本约束











