yum 是linux环境安装软件包的一种方式。 很多时候安装一个软件安装一个软件需要安装1个或者多个其他软件 yum仓库用来存放所有的现有的.rpm包,当使用yum安装一个rpm包时, 需要依赖关系,会自动在仓库中查找依赖软件并安装。仓库可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库

如果你的linux环境不能访问外网,那你装yum没有意义,因为他需要访问http的仓库里面的。 当然如果你有本地仓库,就把/etc/yum.repos.d改一下地址就可以

安装: 所有操作均在ROOT用户下,系统版本是 [root@test2 ~]# uname -an Linux test2 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux [root@test2 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)

一、删除原有YUM

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

二、下载yum,注意自己的LINUX系统版本,是什么版本就进相关版本目录去下载。但小版本的目录就不用进了。如版本是6.5,就只需进6 目录,版本是 7.2,只需进7目录。

打开浏览器,登录 http://mirrors.163.com/centos/7/os/x86_64/Packages/ ,找四个文件,如下:(号代表小版本号,不同版本不同) 1、yum-.rpm
2、yum-metadata-parser-.rpm 3、yum-plugin-fastestmirror-.rpm 4、python-iniparse-*.rpm

使用wget 下载,前提是你的环境可以上外网。我是下载后自己ftp上传上去的 python-urlgrabber-3.10-8.el7.noarch.rpm yum-plugin-fastestmirror-1.1.31-42.el7.noarch.rpm yum-3.4.3-154.el7.centos.noarch.rpm yum-metadata-parser-1.1.4-10.el7.x86_64.rpm python-iniparse-0.4-9.el7.noarch.rpm

三、下载完之后,安装YUM 因文件有相互依赖性,注意顺序,故先安装python-iniparse-*.rpm 文件

rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm

rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm

rpm -ivh yum-3.4.3-154.el7.centos.noarch.rpm yum-plugin-fastestmirror-1.1.31-42.el7.noarch.rpm

注:rpm -ivh 要安装的rpm --nodeps --force (加上 --nodeps --force 为強制安裝,不管依赖性文件) 安装完之后,可以使用rm 命令删除当前目录下的RPM文件(装完就没有用处了)。

四、修改来源文件 1、进入到系统yum源的目录下: #cd /etc/yum.repos.d

2、下载yum源: 进入:http://mirrors.163.com/.help/centos.html 里面有下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份) #wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

3、修改repo源: 将文件中的$releasever替換成7 (7是指LINUX版本號) 修改$basearch 改成操作系统版本:x86_64(也可以不替换) #vi CentOS6-Base-163.repo

更改后的效果:

[base] name=CentOS-7 - Base - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=os baseurl=http://mirrors.163.com/centos/7/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#released updates [updates] name=CentOS-7 - Updates - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=updates baseurl=http://mirrors.163.com/centos/7/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful [extras] name=CentOS-7 - Extras - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=extras baseurl=http://mirrors.163.com/centos/7/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages [centosplus] name=CentOS-7 - Plus - 163.com baseurl=http://mirrors.163.com/centos/7/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

baseurl地址是外网,本地主机要能连接外网,否则白扯。一般公司都有内部镜像

gpgkey没有的话,将gpgcheck设置0

4、改名成默认repo #mv CentOS7-Base-163.repo CentOS7-Base.repo (这步可做可不做)

5、导入key(具体啥用不知道) rpm --import RPM-GPG-KEY-CentOS-7

五、运行makecache 生成缓存 #yum makecache

六、运行yum clean all(等同于 yum cleanheaders ; yum cleanpackages); #yum clean all

七、更新YUM文件 #yum update

八、是否安装成功 yum install perl-DBI 提示安装,就说明可以了。

问题:No module named yum错误的解决办法 今天用yum安装软件的时候出现如下错误: There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: No module named yum Please install a package which provides this module, or verify that the module is installed correctly. It’s possible that the above module doesn’t match the current version of Python, which is: If you cannot solve this problem yourself, please go to the yum faq at:

yum和Python是依赖关系,yum是python的模块,所以采用以下解决方案: [root@test2 yum]# whereis python python: /usr/bin/python2.7 /usr/bin/python /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz 注意是python2.7

所以修改yum的配置,修改文件: vim /usr/bin/yum 修改头#!/usr/bin/python => #!/usr/bin/python2.7

此方法存在弊端,因为后面会报错:

yum 出现错误ImportError: No module named urlgrabber.grabber

是因为 /usr/libexec/urlgrabber-ext-down

把头部的python改成和/usr/bin/yum中一样的。

所以最好软连接方式:

ln -s python2.7 python

解决