Linux

為什麼yum deplistyum install --downloadonly的結果不同?

  • September 22, 2022

當我執行這個:

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. yum install選擇所有缺少的依賴項,考慮系統中安裝的包,並處理所有給定包的依賴項,包括傳遞依賴項。yum deplist列出所有給定包的依賴項,包括那些已經安裝的,並且不包括傳遞依賴項。
  2. yumdownloader --resolve --alldeps docker-ce應該為你下載所有docker-ce的依賴,包括那些已經安裝的。

引用自:https://unix.stackexchange.com/questions/718204