在centos上需要离线安装一些软件时,习惯用yumdownloader先在可以连接互联网的电脑上把需要的安装包下载好,再复制到内网机器上安装.
使用yumdownloader时总是会下载多种服务器架构的,比如:
yumdownloader --resolve --downloadonly --archlist=x86_64 dkms gcc-c++ gcc-gfortran glibc-headers glibc-devel libquadmath-devel libtool systemtap systemtap-devel
Loaded plugins: fastestmirror
Repository copr:copr.fedorainfracloud.org:jdoss:wireguard is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* elrepo: mirrors.neusoft.edu.cn
--> Running transaction check
---> Package dkms.noarch 0:2.8.4-1.el7 will be reinstalled
---> Package gcc-c++.x86_64 0:4.8.5-44.el7 will be reinstalled
---> Package gcc-gfortran.x86_64 0:4.8.5-44.el7 will be reinstalled
---> Package glibc-devel.i686 0:2.17-323.el7_9 will be installed
--> Processing Dependency: libutil.so.1 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libthread_db.so.1 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: librt.so.1 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libresolv.so.2 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libnss_nisplus.so.2 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libnss_nis.so.2 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libnss_hesiod.so.2 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libnss_files.so.2 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libnss_dns.so.2 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libnss_db.so.2 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libnss_compat.so.2 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libnsl.so.1 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libm.so.6 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libdl.so.2 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libcrypt.so.1 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libcidn.so.1 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libanl.so.1 for package: glibc-devel-2.17-323.el7_9.i686
--> Processing Dependency: libBrokenLocale.so.1 for package: glibc-devel-2.17-323.el7_9.i686
---> Package glibc-devel.x86_64 0:2.17-323.el7_9 will be reinstalled
---> Package glibc-headers.x86_64 0:2.17-323.el7_9 will be reinstalled
---> Package libquadmath-devel.i686 0:4.8.5-44.el7 will be installed
--> Processing Dependency: libquadmath.so.0 for package: libquadmath-devel-4.8.5-44.el7.i686
---> Package libquadmath-devel.x86_64 0:4.8.5-44.el7 will be reinstalled
---> Package libtool.x86_64 0:2.4.2-22.el7_3 will be reinstalled
---> Package systemtap.x86_64 0:4.0-13.el7 will be reinstalled
---> Package systemtap-devel.x86_64 0:4.0-13.el7 will be reinstalled
--> Running transaction check
---> Package glibc.i686 0:2.17-323.el7_9 will be installed
--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.17-323.el7_9.i686
--> Processing Dependency: libfreebl3.so for package: glibc-2.17-323.el7_9.i686
---> Package libquadmath.i686 0:4.8.5-44.el7 will be installed
--> Running transaction check
---> Package nss-softokn-freebl.i686 0:3.53.1-6.el7_9 will be installed
--> Finished Dependency Resolution
(1/12): dkms-2.8.4-1.el7.noarch.rpm | 78 kB 00:00:00
(2/12): glibc-2.17-323.el7_9.i686.rpm | 4.3 MB 00:00:00
(3/12): gcc-c++-4.8.5-44.el7.x86_64.rpm | 7.2 MB 00:00:00
(4/12): gcc-gfortran-4.8.5-44.el7.x86_64.rpm | 6.7 MB 00:00:00
(5/12): libquadmath-devel-4.8.5-44.el7.i686.rpm | 54 kB 00:00:00
(6/12): glibc-devel-2.17-323.el7_9.i686.rpm | 1.1 MB 00:00:00
(7/12): libquadmath-4.8.5-44.el7.i686.rpm | 222 kB 00:00:00
(8/12): libtool-2.4.2-22.el7_3.x86_64.rpm | 588 kB 00:00:00
(9/12): systemtap-4.0-13.el7.x86_64.rpm | 15 kB 00:00:00
(10/12): systemtap-devel-4.0-13.el7.x86_64.rpm | 2.2 MB 00:00:00
(11/12): libquadmath-devel-4.8.5-44.el7.x86_64.rpm | 54 kB 00:00:00
(12/12): nss-softokn-freebl-3.53.1-6.el7_9.i686.rpm
可以看到虽然使用了--archlist=x86_64,还是下载了i686的软件包,例如:libquadmath-4.8.5-44.el7.i686.rpm.
yumdownloader options:
--destdir=DESTDIR destination directory (defaults to current directory)
--urls just list the urls it would download instead of
downloading
--resolve resolve dependencies and download required packages
--source operate on source packages
--archlist=ARCHLIST
only download packages of certain architecture(s)
从yumdownloader的帮助信息看--archlist也的确是下载特定服务器架构的。
后来找到了这个:
Hello Florian, the documentation is actually inaccurate here, --archlist limits architectures to the given and all compatible with the given. I have fixed the documentation upstream. For your use case please use the following command: yumdownloader -x \*i686 --archlist=x86_64 qt5-qttools
大致意思是说--archlist是下载兼容特定服务器架构软件包的.因为i686的包也能安装在x86_64的服务器上,所以就一起下载了.
里面给出的解决方法是使用-x选项忽略特定架构的包.就像这样:
yumdownloader --resolve --downloadonly -x \*686 --archlist=x86_64 iptables-services
忽略所有结尾是686架构的包.