为什么`yum deplist`和`yum install --downloadonly`的结果不同?

为什么`yum deplist`和`yum install --downloadonly`的结果不同?

当我运行这个时:

yum install -y --downloadonly --downloaddir=xxx docker-ce,

然后我得到了这些 rpm 文件:

container-selinux-2.188.0-1.module+an8.6.0+10825+318933f1.noarch.rpm
docker-ce-20.10.18-3.el8.x86_64.rpm
docker-ce-cli-20.10.18-3.el8.x86_64.rpm
docker-ce-rootless-extras-20.10.18-3.el8.x86_64.rpm
docker-compose-plugin-2.10.2-3.el8.x86_64.rpm
docker-scan-plugin-0.17.0-3.el8.x86_64.rpm
fuse3-3.3.0-15.an8.x86_64.rpm
fuse3-libs-3.3.0-15.an8.x86_64.rpm
fuse-overlayfs-1.9-1.module+an8.6.0+10825+318933f1.x86_64.rpm
libcgroup-0.41-19.el8.x86_64.rpm
libslirp-4.4.0-1.module+an8.5.0+10624+8ab00a81.x86_64.rpm
slirp4netns-1.2.0-2.module+an8.6.0+10825+318933f1.x86_64.rpm

但是当我跑步时: yum deplist docker-ce | grep provider | uniq

我懂了:

   provider: bash-4.4.20-4.an8_6.x86_64
   provider: shadow-utils-2:4.6-16.an8.x86_64
   provider: container-selinux-2:2.188.0-1.module+an8.6.0+10825+318933f1.noarch
   provider: containerd.io-1.6.8-3.1.el8.x86_64
   provider: docker-ce-cli-1:20.10.18-3.el8.x86_64
   provider: docker-ce-rootless-extras-20.10.18-3.el8.x86_64
   provider: iptables-1.8.4-22.0.2.an8.1.x86_64
   provider: glibc-2.28-189.5.0.1.an8_6.x86_64
   provider: libcgroup-0.41-19.el8.x86_64
   provider: device-mapper-libs-8:1.02.181-3.0.1.an8_6.2.x86_64
   provider: glibc-2.28-189.5.0.1.an8_6.x86_64
   provider: libseccomp-2.5.2-1.0.1.an8.x86_64
   provider: systemd-libs-239-58.0.3.an8_6.7.x86_64
   provider: glibc-2.28-189.5.0.1.an8_6.x86_64
   provider: systemd-239-58.0.3.an8_6.7.x86_64
   provider: tar-2:1.30-5.0.2.an8.x86_64
   provider: xz-5.2.4-4.an8_6.x86_64

据我所知,上面2个命令都可以显示依赖包,

  1. 为什么结果不一样?
  2. 需要在无网络环境下安装Docker时,如何获取依赖列表?

答案1

  1. yum install选择所有丢失的依赖关系,考虑系统中安装的包,并处理所有给定包的依赖关系,包括传递依赖关系。yum deplist列出所有给定包的依赖项,包括已安装的依赖项,并且不包括传递依赖项。

  2. yumdownloader --resolve --alldeps docker-ce应该为您下载所有docker-ce依赖项,包括那些已经安装的依赖项。

相关内容