centos – yumdownloader仅下载i686已解决的rpms

前端之家收集整理的这篇文章主要介绍了centos – yumdownloader仅下载i686已解决的rpms前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在x86_64上安装了CentOS 6.3.

下面我将使用parted包演示我的问题.

运行:

  1. yumdownloader --destdir=001 --assumeyes --resolve parted

结果下载了以下rpms:

  1. ls -1 001/
  2. device-mapper-libs-1.02.74-10.el6_3.3.i686.rpm
  3. libblkid-2.17.2-12.7.el6_3.i686.rpm
  4. libselinux-2.0.94-5.3.el6.i686.rpm
  5. libsepol-2.0.41-4.el6.i686.rpm
  6. libudev-147-2.42.el6.i686.rpm
  7. libuuid-2.17.2-12.7.el6_3.i686.rpm
  8. ncurses-libs-5.7-3.20090208.el6.i686.rpm
  9. parted-2.1-18.el6.i686.rpm
  10. parted-2.1-18.el6.x86_64.rpm
  11. readline-6.0-4.el6.i686.rpm

如果我检查x86_64版本的parted的依赖性,我看到:

  1. rpm -qp --requires 001/parted-2.1-18.el6.x86_64.rpm
  2.  
  3. /bin/sh
  4. ...
  5. libblkid.so.1()(64bit)
  6. libblkid.so.1(BLKID_2.15)(64bit)
  7. libblkid.so.1(BLKID_2.17)(64bit)
  8. ...

因此,我希望也可以下载x86_64版本的libblkid.

那么,如何将i686和x86_64版本的parted下载,但解决了rpms只有i686?

yumdownloader –resolve命令并不总是下载所需包的第一层,更不用说递归依赖. repoquery命令可以更好地确定所需的包,即使它也有递归限制.

解决yumdownloader仅下载i686已解决的rpms的问题,请使用repoquery –requires –recursive命令获取所需包和管道列表,以列出yumdownloader命令以下载软件包.例如,要下载parted包及其第一层依赖项:

  1. /usr/bin/repoquery --requires --recursive --resolve --pkgnarrow=all --qf "%{name}" parted | sort | uniq | xargs -r yumdownloader

在我的RHEL 6.4系统上,上面的命令下载了i686(如果适用)和所需软件包的x86_64版本:

  1. # ls -1
  2. bash-4.1.2-14.el6.x86_64.rpm
  3. device-mapper-libs-1.02.77-9.el6.i686.rpm
  4. device-mapper-libs-1.02.77-9.el6.x86_64.rpm
  5. glibc-2.12-1.107.el6.i686.rpm
  6. glibc-2.12-1.107.el6.x86_64.rpm
  7. info-4.13a-8.el6.x86_64.rpm
  8. libblkid-2.17.2-12.9.el6_4.3.i686.rpm
  9. libblkid-2.17.2-12.9.el6_4.3.x86_64.rpm
  10. libselinux-2.0.94-5.3.el6.i686.rpm
  11. libselinux-2.0.94-5.3.el6.x86_64.rpm
  12. libsepol-2.0.41-4.el6.i686.rpm
  13. libsepol-2.0.41-4.el6.x86_64.rpm
  14. libuuid-2.17.2-12.9.el6_4.3.i686.rpm
  15. libuuid-2.17.2-12.9.el6_4.3.x86_64.rpm
  16. ncurses-libs-5.7-3.20090208.el6.i686.rpm
  17. ncurses-libs-5.7-3.20090208.el6.x86_64.rpm
  18. parted-2.1-19.el6.i686.rpm
  19. parted-2.1-19.el6.x86_64.rpm
  20. readline-6.0-4.el6.i686.rpm
  21. readline-6.0-4.el6.x86_64.rpm

虽然这是一个良好的开端,但缺少glibc-common软件包表明下载的软件包列表仍然不完整.要下载更完整的必需软件包列表,需要一组调用repoquery的命令,如下所示:

  1. /usr/bin/repoquery --requires --recursive --resolve --pkgnarrow=all --qf "%{name}" parted | sort | uniq | xargs rpm -q --requires | sort | uniq | awk '{print $1}' | grep -v rpmlib | xargs -n1 -r -i{} yum -q resolvedep "{}" | sort | uniq | xargs -r -n1 /usr/bin/repoquery --requires --recursive --resolve --pkgnarrow=all --qf "%{name}" | sort | uniq | xargs -r -n 1 yumdownloader -q

这个命令下载的包包括glibc-common和我们第一次错过的其他几个:

  1. # ls -1
  2. basesystem-10.0-4.el6.noarch.rpm
  3. bash-4.1.2-14.el6.x86_64.rpm
  4. device-mapper-1.02.77-9.el6.x86_64.rpm
  5. device-mapper-libs-1.02.77-9.el6.i686.rpm
  6. device-mapper-libs-1.02.77-9.el6.x86_64.rpm
  7. filesystem-2.4.30-3.el6.x86_64.rpm
  8. glibc-2.12-1.107.el6.i686.rpm
  9. glibc-2.12-1.107.el6.x86_64.rpm
  10. glibc-common-2.12-1.107.el6.x86_64.rpm
  11. info-4.13a-8.el6.x86_64.rpm
  12. libblkid-2.17.2-12.9.el6_4.3.i686.rpm
  13. libblkid-2.17.2-12.9.el6_4.3.x86_64.rpm
  14. libcap-2.16-5.5.el6.i686.rpm
  15. libcap-2.16-5.5.el6.x86_64.rpm
  16. libgcc-4.4.7-3.el6.i686.rpm
  17. libgcc-4.4.7-3.el6.x86_64.rpm
  18. libselinux-2.0.94-5.3.el6.i686.rpm
  19. libselinux-2.0.94-5.3.el6.x86_64.rpm
  20. libsepol-2.0.41-4.el6.i686.rpm
  21. libsepol-2.0.41-4.el6.x86_64.rpm
  22. libudev-147-2.46.el6.i686.rpm
  23. libudev-147-2.46.el6.x86_64.rpm
  24. libuuid-2.17.2-12.9.el6_4.3.i686.rpm
  25. libuuid-2.17.2-12.9.el6_4.3.x86_64.rpm
  26. ncurses-base-5.7-3.20090208.el6.x86_64.rpm
  27. ncurses-libs-5.7-3.20090208.el6.i686.rpm
  28. ncurses-libs-5.7-3.20090208.el6.x86_64.rpm
  29. nss-softokn-freebl-3.12.9-11.el6.i686.rpm
  30. nss-softokn-freebl-3.12.9-11.el6.x86_64.rpm
  31. parted-2.1-19.el6.i686.rpm
  32. parted-2.1-19.el6.x86_64.rpm
  33. readline-6.0-4.el6.i686.rpm
  34. readline-6.0-4.el6.x86_64.rpm
  35. setup-2.8.14-20.el6.noarch.rpm
  36. tzdata-2013b-1.el6.noarch.rpm
  37. udev-147-2.46.el6.x86_64.rpm
  38. util-linux-ng-2.17.2-12.9.el6_4.3.i686.rpm
  39. util-linux-ng-2.17.2-12.9.el6_4.3.x86_64.rpm
  40. zlib-1.2.3-29.el6.i686.rpm
  41. zlib-1.2.3-29.el6.x86_64.rpm

这可能是比你需要的更多的软件包,但它是一个更完整的集合,包括你期望的64位软件包.

猜你在找的CentOS相关文章