温馨提示×

Debian如何提取依赖

小樊
45
2026-07-23 15:24:39
栏目: 智能运维

在 Debian 系统中,“提取依赖”通常指查看、下载或获取某个软件包的依赖关系。下面按常见需求分类说明,并给出对应命令。


一、查看软件包的依赖关系(不下载)

1. 查看运行时依赖

apt-cache depends 包名

示例:

apt-cache depends nginx

输出包括:

  • Depends: 必须依赖
  • Recommends: 推荐依赖
  • Suggests: 建议依赖

2. 查看构建依赖(源码包)

apt-cache showsrc 包名

apt-get build-dep 包名 --dry-run

3. 查看某个已安装包的依赖

dpkg -s 包名

二、递归查看所有依赖(含子依赖)

1. 使用 apt-rdepends(需安装)

sudo apt install apt-rdepends
apt-rdepends 包名

只显示直接依赖:

apt-rdepends -d 包名

2. 使用 apt-cache 递归(不推荐手撸)

可配合脚本解析 apt-cache depends 输出。


三、下载依赖(不安装)

1. 下载指定包及其依赖

apt-get install --download-only 包名

下载目录:

/var/cache/apt/archives/

2. 仅下载依赖(不安装主包)

apt-get install --download-only --reinstall 包名

或手动解析依赖后下载:

apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances 包名 | grep "^\w" | sort -u)

四、提取(解包)已下载的 .deb 依赖

1. 解包单个 .deb

dpkg -x 包名.deb 目录

示例:

dpkg -x libssl3.deb ./libssl

2. 解包所有依赖

mkdir debs
cd debs
apt-get download 包名
for deb in *.deb; do dpkg -x "$deb" ../extracted; done

五、查看某个文件属于哪个依赖包

dpkg -S /usr/lib/x86_64-linux-gnu/libxxx.so

六、常见场景速查表

需求 命令
查看依赖 apt-cache depends 包名
递归依赖 apt-rdepends 包名
下载依赖 apt-get install --download-only 包名
解包依赖 dpkg -x xxx.deb 目录
构建依赖 apt-get build-dep 包名

如果你能说明具体目的(例如:离线安装、制作最小系统、交叉编译、Docker 镜像瘦身),我可以给你更精确的方案。

0