Linux為什麼
為什麼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個命令都可以顯示依賴包,
- 為什麼結果不一樣?
- 非網路環境下需要安裝Docker時如何獲取依賴列表?
yum install
選擇所有缺少的依賴項,考慮系統中安裝的包,並處理所有給定包的依賴項,包括傳遞依賴項。yum deplist
列出所有給定包的依賴項,包括那些已經安裝的,並且不包括傳遞依賴項。yumdownloader --resolve --alldeps docker-ce
應該為你下載所有docker-ce
的依賴,包括那些已經安裝的。