首次在VitualBox上装rhel-server,新手上路,对linux环境不太了解,总是会遇到很多问题。才装好系统,第一件事肯定是想马上装软件,那么RedHat用yum命令来装软件是一个很不错的选择,它帮大家解决了依赖的一些问题,rpm命令真是太烦人了。由于RedHat的是收费的,所以我们想到更换为CentOS的yum,在网上搜索了很多资料,条理都很清晰,但是一旦换到自己手上就是一堆问题,这都是由于对Linux不熟悉造成,画了几个小时才是解决该问题,因此在此记录下这些过程。
1.删除RedHat原有的yum源
rpm -aq | grep yum|xargs rpm -e --nodeps
2.下载新的yum安装包
在这里我们选择CentOS的yum源,可以在http://mirror.centos.org/centos/找到。
在这里一定要强调一点就是:你要查清你自己安装的RedHat的版本,比如我的是rhel-server-5.7,所以就找对应的http://mirror.centos.org/centos/5.7/
版本一定要对应上,由于我新手上路,啥都不会,看着别人的教程就来了,而且我还想用最新的,所以造成了很多没必要的错误。
进去可以看看readme文件,这里面会有一些相应说明,比如5.7的readme文件是:
This directory (and version of CentOS) is deprecated. For normal users,
you should use /5/ and not /5.7/ in your path. Please see this FAQ
concerning the CentOS release scheme:
https://wiki.centos.org/FAQ/General
If you know what you are doing, and absolutely want to remain at the 5.7
level, go to http://vault.centos.org/ for packages. Please keep in mind that 5.7 no longer gets any updates
好,说到这里,我犯的第一个错误我已经记录下来。下面说说需要下载的文件。
python-iniparse-0.2.3-6.el5.noarch.rpm
yum-metadata-parser-1.1.2-4.el5.i386.rpm
yum-3.2.22-40.el5.centos.noarch.rpm
yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
以上文件各个版本有所不同,比如6.3版本是yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm 而5.7版本就没这个文件,而是yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm。你可以在网页下搜索对应的关键字。
wget http://mirrors.ustc.edu.cn/centos/5/os/i386/CentOS/python-iniparse-0.2.3-6.el5.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-4.el5.i386.rpm
wget http://mirrors.ustc.edu.cn/centos/5/os/i386/CentOS/yum-3.2.22-40.el5.centos.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
还有一点需要注意的是你的系统是i386的还是x86_64的,这个也不要搞错。
3.安装yum软件包
rpm -ivh python-iniparse-0.2.3-6.el5.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.2-4.el5.i386.rpm
rpm -ivh yum-3.2.22-40.el5.centos.noarch.rpm yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
在这里需要注意的就是最后一条命令必须一次安装这两个rpm文件,因为他们存在依赖关系,不在一起的话会安装失败。
4.更换yum源,我们是使用CentOS的镜像源
可以在http://mirrors.ustc.edu.cn/上找到对应的CentOS源。
点击help进去,里面有很详细的说明。在此就不废话了。
在这里要强调一点就是必须将这个文件里面的$releasever换成你下载的版本号,比如我是下载CentOS5的,那就将所有的$releaserver换成5。
比如[base]下的name=CentOS-$releasever - Base - mirrors.ustc.edu.cn 替换后就成 name=CentOS-5 - Base - mirrors.ustc.edu.cn
下面是CentOS-Base.repo的源文件,里面的所有$releasever都必须替换。
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base - mirrors.ustc.edu.cn
baseurl=http://mirrors.ustc.edu.cn/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5
#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.ustc.edu.cn
baseurl=http://mirrors.ustc.edu.cn/centos/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.ustc.edu.cn
baseurl=http://mirrors.ustc.edu.cn/centos/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5
#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons - mirrors.ustc.edu.cn
baseurl=http://mirrors.ustc.edu.cn/centos/$releasever/addons/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.ustc.edu.cn
baseurl=http://mirrors.ustc.edu.cn/centos/$releasever/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.ustc.edu.cn
baseurl=http://mirrors.ustc.edu.cn/centos/$releasever/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5
然后执行以下语句
yum clean all
yum makecache
在这里也耗了不少时间,所以这是本文的第二个记录点。
好了,按道理现在是可以使用yum命令了,开心的去下载软件吧,这只是一个开始,后续肯定还有很多问题。