RHEL一般都作为服务器操作系统用在生产环境中,虽然大家并不愿意为此付费,但是还是可以享用其稳定性的优势。当然系统版本升级并不在考虑范围内,一是不对新版本的新功能有任何依赖,二是升级系统对程序的兼容性存在的不确定因素,三是不愿意付费。至于旧版本存在漏洞什么的就仁者见仁智者见智了。

  我们给服务器安装操作系统时一般会选择Minimal或者Basic Server模式。最小化安装的好处是减少对硬件资源的开销,仅安装项目应用和必要的依赖,可以减少因其他软件或服务存在的安全隐患,还可以最大化利用系统资源;基础服务模式集成了一些常用的软件和服务,好处是部署/运行项目时减少依赖关系的报错,如果项目存在很多依赖关系使用这种模式安装会很省心。

  我们在服务器上一般都使用本地yum源,但是有时候这样并不能满足我们的需求,而又不愿意花时间去查找下载再解决各种软件的依赖,又不能使用RHEL本身的yum,所以这个时候我们就可以选择使用CentOS的yum源作为替代。至于不清楚RHEL和CentOS关系的童鞋可以自行百度,此处不再累述。

  下面进入正题,如何使用CentOS的yum源替换REHL的yum源,此处以RHEL 6.x和CentOS 6的64位版本为例:


1、准备CentOS的yum及其依赖包:


网易下载地址    http://mirrors.163.com/centos/6/os/x86_64/Packages/

搜狐下载地址    http://mirrors.sohu.com/centos/6/os/x86_64/Packages/


python-iniparse-0.3.1-2.1.el6.noarch.rpm

python-urlgrabber-3.9.1-11.el6.noarch.rpm

yum-3.2.29-81.el6.centos.noarch.rpm

yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm


  可以在RHEL中使用wget下载,也可以在其他地方下载好之后上传到RHEL中,需要注意的是RHEL的Minimal中默认没有安装wget。


2、卸载RHEL系统中自带的yum工具


rpm -qa | grep yum | xargs rpm -e --nodeps


3、按顺序依次安装


rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm

rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

rpm -Uvh python-urlgrabber-3.9.1-11.el6.noarch.rpm

rpm -ivh yum-3.2.29-81.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm


4、下载并修改网易或搜狐的yum的repo文件


搜狐:

wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo

mv CentOS-Base-sohu.repo /etc/yum.repo.d/

sed -i 's/$releasever/6/g' /etc/yum.repo.d/CentOS-Base-sohu.repo


网易:

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

mv CentOS6-Base-163.repo /etc/yum.repo.d/CentOS6-Base-163.repo

sed -i 's/$releasever/6/g' /etc/yum.repo.d/CentOS6-Base-163.repo


5、下载并安装CentOS的yum校验文件


wget http://mirrors.sohu.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6

mv RPM-GPG-KEY-CentOS-6 /etc/pki/rpm-gpg/

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


6、更新yum缓存


yum clean all

yum makecache


报错及解决方法:


报错: 

python-urlgrabber >= 3.9.1-10 is needed by yum-3.2.29-81.el6.centos.noarch


解决: rpm -Uvh python-urlgrabber-3.9.1-11.el6.noarch.rpm

    或者:  rpm -qa | grep python-urlgrabber | xargs rpm -e --nodeps

          rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm


报错: 

http://mirrors.163.com/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"

解决: 用#号注释掉repo文件中的[addons]项,如下

#[addons]
#name=CentOS-6 - Addons - sohu.com
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=addons
#baseurl=http://mirrors.sohu.com/centos/6/addons/$basearch/
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5