我们刚刚安装了RedHat系统,当我们安装软件源或者进行更新的时候,将会出现如下提示:”Unable to read consumer identity”。很显然,这个提示告诉你,yum没有读取到你的用户id。如果想使用redhat同时不想花费几千元注册系统,我们可以使用CentOS的源来替代。
1.注册系统给我们提供了什么?
如果我们点击系统的RHN,会提示注册系统的种种好处:
1)从官方获得软件源
2)免费或者系统的安装镜像和升级
3)系统故障以后,有专门的维护人员来协同我们处理
但对于我们大部分人员,我们往往只关心,系统能否正常安装软件就够了。而redhat上yum的机理是这样的,通过yum读取配置文件/etc/yum.repos.d/file.repo,通过里面提供的网址,到相应站点下载rpm软件包,然后调用底层的rpm程序进行安装。其中,在下载环节,需要提供consumer id。从理论上说,只要我们不到官方网站上下载软件,就能够避免注册问题。
2.一个可以替代的站点:centos
我们都知道,redhat是一个商用的OS,但是它是开放源代码的。所以,社区会将redhat的源代码进行重新编译,然后去掉redhat的商标,进行发布,这就是centos。对于一般用户而言,可以认为:centos和redhat是相同的。因此,我们可以到centos对应的站点来下载软件源。国内一些网站,比如网易163提供一些开源软件的下载地址,我们可以将软件源改成国内的。下面就是修改的步骤:
1].移除Yum
rpm -aq|grep yum|xargs rpm -e –nodeps
2].下载Yum
正常情况下,只需要到mirrors.centos.org或mirrors.163.com下载包即可,但是6系列最高版本到目前为止是6.6,镜像站点的6.3已经不提供更新了http://mirrors.163.com/centos/6.3/只看到这两个文件:
其中readme文件内容如下:
看到这就明白了,因为RHEL版本一直在不断更新,CenOS的版本也是一样,所以要找我们对应系统版本6.3的rpm包就要到这个网址:http://vault.centos.org/6.3/os/x86_64/Packages/(此路径会不定时会有变化,注意路径)去找,在镜像网站是不再提供更新了,马上访问这个网站,哈6.3的包都在这呢。(国内阿里云的包在6这个路径下,但是有两个软件包 yum-3.2.29与yum-plugin版本太高,实际装不上,因为缺少高版本的Python)立马登陆上面的链接将这几个包都下过来:
python-iniparse-0.3.1-2.1.el6.noarch.rpm
yum-3.2.29-30.el6.centos.noarch.rpm
yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm
3].安装Yum
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 –ivh yum-3.2.29-30.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm #两个包一起装,相互依赖
4].添加网易163的yum源
下载网易163的配置文件
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
cp CentOS6-Base-163.repo rhel-source.repo #复制并命名为rhel-source.repo
将rhel-source.repo里的$releasever替换替换成6,#可以由第二部的readme文件内容得知,路径应当使用6,而不是6.3
sed -i 's/\$releasever/6/g' rhel-source.repo
mv rhel-source.repo /etc/yum.repos.d/ 替换
5].清空YUM缓存
yum clear all
6].将服务器上的软件包信息缓存到本地
提高yum的更新效率
yum makecache
至此,大功告成。