查阅rpm的依赖关系

查阅rpm的依赖关系

1 使用RPM命令可以列出目标包所依赖的所有包,如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[root@sam Packages]# rpm -qR vim-enhanced
/bin/sh
config(vim-enhanced) = 2:8.0.1763-15.el8
libacl.so.1()(64bit)
libacl.so.1(ACL_1.0)(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.28)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libgpm.so.2()(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libselinux.so.1()(64bit)
libtinfo.so.6()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
rtld(GNU_HASH)
vim-common = 2:8.0.1763-15.el8
which

2 查还没有安装的

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@sam Packages]# rpm -qpR /tmp/iso2/Packages/vim-common-7.4.160-5.el7.x86_64.rpm
/bin/sh
config(vim-common) = 2:7.4.160-5.el7
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
vim-filesystem
rpmlib(PayloadIsXz) <= 5.2-1

3 要下载一个 RPM 包而不安装,可以使用叫做’yumdownloader’的工具,下面我们先安装yumdownloader:

现在我们来检查一个未安装的RPM包的依赖关系(本例使用 tcpdump)。首先,我们使用yumdownloader把tcpdump的RPM包下载下来

1
[root@sam Packages]# yumdownloader --destdir=. tcpdump

4 显示目标包所依赖的包:(为让repoquery正常的工作,需要保持网络的畅通,应为repoquery需要在Yum库中查找信息)

1
[root@sam Packages]# repoquery --requires --resolve <package-name>