rpm依赖

查询目的已安装的包(rpm)未安装 / 仓库中的包(repoquery)说明
查看包提供的能力 rpm -q --provides <包名> repoquery --provides <包名> 查看该包提供的库、文件、虚拟能力(Provides)
查看包需要的依赖 rpm -q --requires <包名> repoquery --requires <包名> 查看运行/安装该包所需的依赖(Requires)
反向查询:谁依赖我 rpm -q --whatrequires <包名> repoquery --whatrequires <包名> 查找依赖该包的其它包
反向查询:谁提供某功能 rpm -qf <文件路径>rpm -q --whatprovides "能力名" repoquery --whatprovides "能力名" 查找提供某文件 / 能力的包
查看包文件列表 rpm -ql <包名> repoquery -l <包名> 列出包中包含的所有文件
查看包详细信息 rpm -qi <包名> repoquery -i <包名> 显示包的元数据(版本、描述、维护者等)

 

# 查看依赖
dnf repoquery --requires httpd-tools
# 创建下载目录
mkdir -p /tmp/rpm-downloads

# 查找每个库文件对应的包
dnf provides "*/ld-linux-aarch64.so.1"
dnf provides "*/libapr-1.so.0"
dnf provides "*/libaprutil-1.so.0"
dnf provides "*/libcrypt.so.1"
dnf provides "*/libcrypto.so.1.1"
dnf provides "*/libexpat.so.1"
dnf provides "*/libssl.so.1.1"

# 下载包及其依赖
dnf download $(dnf repoquery --requires --resolve httpd-tools) --destdir=/tmp/httpd-tools-rpms
dnf download --resolve --alldeps --destdir=/tmp/rpm-downloads httpd-tools glibc apr apr-util libxcrypt openssl-libs expat

 

dnf download $(dnf repoquery --requires --resolve httpd-tools haproxy libatomic fio compat-openssl10) --destdir=./

curl -o /etc/yum.repos.d/epel-OpenEuler.repo https://down.whsir.com/downloads/epel-OpenEuler.repo


# 查看依赖
yum install yum-utils

# 查看依赖
yum deplist httpd-tools
# 或
repoquery --requires httpd-tools


# 下载依赖
# 创建下载目录
mkdir -p /tmp/httpd-tools-rpms

# 使用 yumdownloader(yum-utils 的一部分)
yumdownloader --destdir=/tmp/httpd-tools-rpms --resolve httpd-tools

# 或者使用 repoquery 配合 yumdownloader
repoquery --requires --resolve httpd-tools | xargs yumdownloader --resolve --destdir=/tmp/httpd-tools-rpms


yumdownloader --resolve httpd-tools httpd-tools haproxy libatomic compat-openssl11

# 3. 查看包的依赖关系
rpm -qp --requires httpd-tools-*.rpm
rpm -qp --requires haproxy-*.rpm
rpm -qp --requires libatomic-*.rpm
rpm -qp --requires compat-openssl11-*.rpm

 


在 RPM 包管理系统中,您可以使用 rpm 命令来查看安装包的依赖关系。以下是一些常用的命令:
查看包的依赖关系:
rpm -qR <package_name>
例如:
rpm -qR httpd
这会显示 httpd 包的依赖关系列表。

查看已安装包的依赖关系:
rpm -qR --installed <package_name>

例如:
rpm -qR --installed httpd
这会显示已安装 httpd 包的依赖关系列表。

查看包提供的功能依赖关系:
rpm -q --provides <package_name>
例如:
rpm -q --provides httpd
这会显示 httpd 包提供的功能列表。

查看包所需的功能依赖关系:

rpm -q --requires <package_name>
例如:


rpm -q --requires httpd
这会显示 httpd 包所需的功能列表。

请注意,<package_name> 是您要查询的包的名称,您需要将其替换为实际的包名称。此外,您可能需要以 root 用户或使用 sudo 运行这些命令以获取完整的结果。

希望这些命令能够帮助您查看 RPM 包的依赖关系。


centos9配置yum
https://www.cnblogs.com/thesungod/p/17884156.html

欧拉默认有配置


指定平台
dnf repoquery --requires --resolve httpd-tools libatomic fio haproxy
dnf download --resolve compat-openssl10 --arch=x86_64,noarch

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Kylin-Server
dnf download --resolve httpd-tools libatomic fio haproxy iproute bridge-utils bind-utils perf sysstat tcpdump traceroute vim sqlite chrony tar unzip rsync nmap telnet lsof iotop nmon compat-openssl10 --arch=aarch64,noarch

curl -o /etc/yum.repos.d/epel-OpenEuler.repo https://down.whsir.com/downloads/epel-OpenEuler.repo
dnf download --resolve iftop nload


https://document.kylinos.cn/document/documentDetaile?id=228&type=1&selectId=2112

注意:compat-openssl10在sp3


openEuler
curl -o /etc/yum.repos.d/epel-OpenEuler.repo https://down.whsir.com/downloads/epel-OpenEuler.repo
yumdownloader --resolve httpd-tools libatomic fio haproxy iproute bridge-utils bind-utils perf sysstat tcpdump traceroute vim sqlite chrony tar unzip rsync nmap telnet lsof iotop iftop nload nmon --arch=x86_64,noarch


Redhat9
https://www.cnblogs.com/thesungod/p/17884156.html

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/$basearch/os/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/centos-stream/RPM-GPG-KEY-CentOS-Official

[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/centosplus/$basearch/os/
gpgcheck=0
enabled=0
gpgkey=https://mirrors.aliyun.com/centos-stream/RPM-GPG-KEY-CentOS-Official

[PowerTools]
name=CentOS-$releasever - PowerTools - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/PowerTools/$basearch/os/
gpgcheck=0
enabled=0
gpgkey=https://mirrors.aliyun.com/centos-stream/RPM-GPG-KEY-CentOS-Official


[AppStream]
name=CentOS-$releasever - AppStream - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/$basearch/os/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/centos-stream/RPM-GPG-KEY-CentOS-Official

rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-9.noarch.rpm

Redhat
yumdownloader --resolve httpd-tools libatomic fio haproxy iproute bridge-utils bind-utils perf sysstat tcpdump traceroute vim sqlite chrony tar unzip rsync nmap telnet lsof iotop iftop nload nmon compat-openssl11 --arch=x86_64,noarch


nmap nload ndctl librbd1 daxctl bind libpmem glibc glibc iftop libquadmath httpd libgomp bridge glibc glibc fio tar traceroute rdma boost librados2 libquadmath gcc nmon readline nss perf telnet sqlite libgcc haproxy libatomic rsync iotop tcpdump libpmemblk boost unzip libibverbs libgcc sysstat readline libgfortran cpp sqlite librdmacm libatomic glibc vim gcc libstdc++ libstdc++ ncurses chrony iproute libstdc++ lsof gcc


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ldd /qaxdata/s/services/mongo/27017/bin/mongo | \
awk '{ if($2 ~ /^\(/) print $1; else if($2 == "=>") print $3 }' | \
xargs -I {} dnf provides {} 2>/dev/null | \
grep -B1 "Provides:" | \
grep "^[a-zA-Z]" | \
awk '{print $1}' | \
sort -u

ldd /qaxdata/s/services/mongo/27017/bin/mongo | \
awk '{ if($2 ~ /^\(/) print $1; else if($2 == "=>") print $3 }' | \
xargs -I {} dnf provides {} 2>/dev/null | \
awk '/^[a-zA-Z].*[0-9]/ {print $1}' | \
sort -u

ldd /qaxdata/s/services/mongo/27017/bin/mongo | \
awk '{ if($2 ~ /^\(/) print $1; else if($2 == "=>") print $3 }' | \
xargs -I {} dnf provides {} 2>/dev/null | \
awk '/^[a-zA-Z].*[0-9]/ {print}' | \
sort -u


ldd /qaxdata/s/services/mongo/27017/bin/mongo | \
awk '{ if($2 ~ /^\(/) print $1; else if($2 == "=>") print $3 }' | \
xargs -I {} dnf provides {} 2>/dev/null | \
awk '/^[a-zA-Z].*[0-9]/ {split($1, a, "-[0-9]"); print a[1]}' | \
grep -v "^Filename$\|^Last$\|^Matched$\|^Repo$" | \
sort -u

ldd /qaxdata/s/services/mongo/27017/bin/mongo | \
awk '{ if($2 ~ /^\(/) print $1; else if($2 == "=>") print $3 }' | \
xargs -I {} dnf provides {} 2>/dev/null | \
awk '/^[a-zA-Z].*[0-9]/ {split($1, a, "-[0-9]"); print a[1]}' | \
grep -v '^[A-Z]' | \
sort -u

ldd /usr/bin/htpasswd | \
awk '{ if($2 ~ /^\(/) print $1; else if($2 == "=>") print $3 }' | \
xargs -I {} dnf provides {} 2>/dev/null | \
awk '/^[a-zA-Z].*[0-9]/ {split($1, a, "-[0-9]"); print a[1]}' | \
grep -v '^[A-Z]' | \
sort -u

 

https://developer.aliyun.com/mirror/

 

 

repoquery --archlist=x86_64 --requires --resolve kubelet kubeadm kubectl --disableexcludes=kubernetes
  • --requires → 显示依赖(可能是符号,比如 libpthread.so.0

  • --resolve → 再解析依赖对应的 实际提供包(例如 glibc

 

 

 

 

/bin/sh
conntrack-tools
cri-tools >= 1.30.0
ethtool
iproute
iptables >= 1.4.21
kubernetes-cni >= 1.2.0
libc.so.6(GLIBC_2.2.5)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libresolv.so.2()(64bit)
libresolv.so.2(GLIBC_2.2.5)(64bit)
util-linux

关键点:

  1. 系统库(libc.so.6、libpthread.so.0、libresolv.so.2)

    • 这些属于基础 GLIBC 和系统工具,无法通过 yumdownloader 下载。

    • 如果你的系统 GLIBC 版本低于 Kubernetes 依赖的版本(比如 GLIBC_2.17),你必须升级系统或使用二进制包。

  2. 工具类依赖(conntrack-tools, cri-tools, iproute, iptables, kubernetes-cni 等)

    • 可以用 yumdownloader --resolve 下载对应 RPM 包:

yumdownloader --resolve --archlist=x86_64 conntrack-tools cri-tools ethtool iproute iptables kubernetes-cni kubelet kubeadm kubectl --disableexcludes=kubernetes --destdir=./ 

  • yumdownloader --resolve 不会下载系统已有但仓库不存在的包

  • 缺失的 libnetfilter_* 需要你:

    1. 放入本地 repo 并更新元数据,或者

    2. 手动下载这些 RPM 再放到目标目录。

# 显示指定 RPM 包的所有依赖(完整包名,不缩写)
rpm --query --package --requires kubelet-1.26.3-150500.1.1.x86_64.rpm

解释:

    • --query / -q :查询 RPM 包信息

    • --package / -p :指定查询的是 RPM 文件,而不是已安装的包

    • --requires / -R :列出该包的依赖关系

posted on 2026-01-13 15:20  吃草的青蛙  阅读(3)  评论(0)    收藏  举报

导航