8.3.3 RedHat使用yum的问题

默认情况下RedHat会因为未注册RHN而无法使用yum,运行yum时将会显示如图8-12所示的信息。如果你的英语不算太差,应该能读懂。

8.3.3 RedHat使用yum的问题 - 图1

图8-12 RedHat默认无法使用yum

为了解决这个问题,只需要删除原始系统中etcyum.repos.d/目录下的所有repo文件,然后更换成CentOS的源即可,步骤如下:


  1. #
  2. 删除系统默认的repo
  3. 文件
  4. [root@localhost ~]# cd etcyum.repos.d
  5. [root@localhost yum.repos.d]# rm rhel-debuginfo.repo
  6. #
  7. 创建新文件CentOS.repo
  8. ,内容如下(读者只需要照抄即可)
  9. [base]
  10. name=CentOS-5 - Base
  11. baseurl=http://centos.ustc.edu.cn/centos/5/os/$basearch/
  12. gpgcheck=1
  13. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
  14. #released updates
  15. [update]
  16. name=CentOS-5 - Updates
  17. baseurl=http://centos.ustc.edu.cn/centos/5/updates/$basearch/
  18. gpgcheck=1
  19. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
  20. #packages used/produced in the build but not released
  21. [addons]
  22. name=CentOS-5 - Addons
  23. baseurl=http://centos.ustc.edu.cn/centos/5/addons/$basearch/
  24. gpgcheck=1
  25. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
  26. #additional packages that may be useful
  27. [extras]
  28. name=CentOS-5 - Extras
  29. baseurl=http://centos.ustc.edu.cn/centos/5/extras/$basearch/
  30. gpgcheck=1
  31. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
  32. #additional packages that extend functionality of existing packages
  33. [centosplus]
  34. name=CentOS-5 - Plus
  35. baseurl=http://centos.ustc.edu.cn/centos/5/centosplus/$basearch/
  36. gpgcheck=1
  37. enabled=0
  38. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
  39. #contrib - packages by Centos Users
  40. [contrib]
  41. name=CentOS-5 - Contrib
  42. baseurl=http://centos.ustc.edu.cn/centos/5/contrib/$basearch/
  43. gpgcheck=1
  44. enabled=0
  45. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

设置完成后就可以使用新安装的yum来安装软件了。首先使用yum clean all&&yum makecache刷新缓存,然后输入yum install httpd看一下效果,如图8-13所示。至此我们成功地利用“偷梁换柱”的方法解决了RedHat系统中默认不能使用yum工具的问题。

8.3.3 RedHat使用yum的问题 - 图2

图8-13 RedHat使用yum安装Apache

有时候通过以上改变软件源的方式也仍然无法使用yum工具,那么此时将会麻烦一点。在这种情况下,改完软件源后还需要将RedHat系统上的yum工具更换成CentOS的版本才可以使用。具体步骤如下所示:

首先需要将目前系统中的yum工具删除掉。由于其依赖关系比较复杂,所以要删除的软件包比较多。笔者使用的是32位的RedHat5.5系统,需要删除的软件一共有如下11个:


  1. [root@localhost ~]# rpm -e yum-3.2.22-26.el5 \
  2. yum-metadata-parser-1.1.2-3.el5 \
  3. yum-updatesd-0.9-2.el5 \
  4. yum-security-1.1.16-13.el5 \
  5. yum-rhn-plugin-0.5.4-15.el5 \
  6. rhn-client-tools-0.4.20-33.el5 \
  7. rhn-check-0.4.20-33.el5 \
  8. rhn-setup-0.4.20-33.el5 \
  9. rhn-setup-gnome \
  10. pirut \
  11. rhnsd

删除完成后,直接从公网上安装CentOS的yum工具(rpm命令后可以直接跟RPM包的URL地址,yum会自动完成这些包的下载并安装),安装完成后就可以使用yum了,如下所示:


  1. [root@localhost ~]# rpm -ivh \
  2. http://mirrors.163.com/centos/5/os/i386/CentOS/yum-3.2.22-40.el5.centos.noarch.rpm \
  3. http://mirrors.163.com/centos/5/os/i386/CentOS/yum-fastestmir
  4. ror-1.1.16-21.el5.centos.noarch.rpm \
  5. http://mirrors.163.com/centos/5/os/i386/CentOS/yum-metadata
  6. -parser-1.1.2-4.el5.i386.rpm

或许大家还沉浸在使用yum的神奇体验之中,当这种兴奋劲过去后随之而来的可能会是一个疑问:为什么它会这么神奇?下面两小节不仅能让你知道为什么,还能让你动手做属于自己的yum源。