1、卸载原有系统中的yum
rpm –qa | grep yum | xargs rpm -e --nodeps
(xargs 把rpm –qa | grep yum传来的每一行信息 都用xargs后面的命令进行处理)
2、创建一个目录intallyum_mirrors.163.com,进入此目录下载rpm包。
下载yum安装文件
注意,如果下载时找不到文件,就登录到:http://mirrors.163.com/centos/6/os/x86_64/ 上查找相应的安装包的包名,对以下包名进行修改,再进行下载。
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
3、在当前installyum_mirrors.163.com目录下执行ls |grep yum |xargs rpm -ivh --nodeps
[root@Apache installyum_mirrors.163.com]# ls |grep yum |xargs rpm -ivh --nodeps
Preparing... ########################################### [100%]
1:yum-metadata-parser ########################################### [ 33%]
2:yum-plugin-fastestmirro########################################### [ 67%]
3:yum ########################################### [100%]
[root@Apache installyum_mirrors.163.com]#
如果出现此安装所依赖的其他安装包没有安装,就继续wget 下载所依赖的安装包到installyum_mirrors.163.com目录下,继续ls |grep yum |xargs rpm -ivh --nodeps安装
直到yum安装成功。
4、备份/etc/yum.repos.d目录下的repo文件
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
5、从mirrors.163.com上面下载reop文件。
[root@Apache yum.repos.d]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
6、设置CentOS6-Base-163.repo不更新可以更新的安装包,编辑以下[updates]中的enabled=0即可,如果配置中无enabled,那么是默认配置了enabled=1,需要添加enabled=0关闭update。
[updates] name=CentOS-$releasever - Updates - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
7、yum clean all
8、yum makecache
8、yum search vsftpd 测试yum功能是否OK
--------End Of Text--------
yum clean all #会从系统中找$releasever和$basearch 如值为6和x86_64,然后生成/var/cache/yum/x86_64/6/base/packages/目录(目录里是空的)、cat /var/cache/yum/x86_64/6/extras/packages/(目录里是空的)等目录。
yum makecache #从yum网络仓库获取元数据信息--本地建立元数据缓存,本地将元数据放在yum clean all生成的那些目录(/var/cache/yum/)中部署好。
PS:
/etc/yum.repos.d/CentOS6-Base-163.repo文件中的$releasever和$basearch的变量值是从哪里获取到的呢?从系统(例如arch、rpm -qi centos-release)中获取这些 built-in variables
yum 安装其他rpm包的时候,是从/etc/yum.repos.d/目录下寻找repo文件(.repo),找到之后会找enabled=1的baseurl的值,如果baseurl的值中含有$releasever和$basearch这样的变量存在,就去系统(arch、rpm -qi centos-release)中去找$releasever和$basearch的值,进而利用此baseurl访问yum网络仓库。如果baseurl被设置成无变量存在(sed -i 's/$releasever/6/g' /etc/yum.repos.d/CentOS-Base.repo和sed -i 's/$baseurl/x86_64/g' /etc/yum.repos.d/CentOS-Base.repo)的url,那么yum clean all (清空了本地元数据缓存)之后,yum就直接根据baseurl去访问yum网络仓库。当然repo文件可以直接到http://mirrors.163.com/.help/等网站目录中去下载。