当我运行这个时:
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个命令都可以显示依赖包,
- 为什么结果不一样?
- 需要在无网络环境下安装Docker时,如何获取依赖列表?
答案1
yum install
选择所有丢失的依赖关系,考虑系统中安装的包,并处理所有给定包的依赖关系,包括传递依赖关系。yum deplist
列出所有给定包的依赖项,包括已安装的依赖项,并且不包括传递依赖项。yumdownloader --resolve --alldeps docker-ce
应该为您下载所有docker-ce
依赖项,包括那些已经安装的依赖项。