背景YUM(Yellow dog Updater, Modified)为多个Linux发行版的前端软件包管理器,例如 Redhat RHEL, CentOS & Fedora. YUM通过调用RPM的软件包信息让用户更方便地进行软件安装,升级,卸载等软件包管理操作。 yum客户端采用python编写,采用sqlite存储 rpm客户端采用c编写,采用bdb存储 http://www.rpm.org/ The RPM Package Manager (RPM) is a powerful command line driven package management system capable of installing, uninstalling, verifying, querying, and updating computer software packages. http://yum.baseurl.org/ Yum Package Manager Yum is an automatic updater and package installer/remover for rpm systems. https://trac.edgewall.org/about Trac是基于web的软件项目管理和缺陷/事务追踪系统. 强调使用方便, 而不是其外在形式. 它提供了集成Wiki/版本控制系统界面, 以及更多方便的项目管理渠道, 来掌控项目的事件和变化. http://refspecs.linuxfoundation.org/lsb.shtm
相关包及文件centos7 [root@my yum.repos.d]# rpm -qa|grep yumyum-metadata-parser-1.1.4-10.el7.x86_64yum-plugin-fastestmirror-1.1.31-29.el7.noarchyum-3.4.3-125.el7.centos.noarch [root@my yum.repos.d]# rpm -qa|grep rpm rpm-build-libs-4.11.1-25.el7.x86_64 rpm-libs-4.11.1-25.el7.x86_64 rpm-4.11.1-25.el7.x86_64 rpm-python-4.11.1-25.el7.x86_64fastestmirror配置文件:(一般不用动)/etc/yum/pluginconf.d/fastestmirror.conf你的yum镜像的速度测试记录文件:/var/cache/yum/timedhosts.txt [root@manage ~]# file /tmp/yum_save_tx-2016-03-29-17-24zCwK6e.yumtx /tmp/yum_save_tx-2016-03-29-17-24zCwK6e.yumtx: ASCII text [root@manage ~]# less /tmp/yum_save_tx-2016-03-29-17-24zCwK6e.yumtx [root@localhost ~]# cat /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever #yum下载的RPM包的缓存目录 keepcache=0 #缓存是否保存,1保存,0不保存。 debuglevel=2 #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。 logfile=/var/log/yum.log #yum的日志文件所在的位置 exactarch=1 #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。 obsoletes=1 #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。 gpgcheck=1 #是否检查GPG(GNU Private Guard),一种密钥方式签名。 plugins=1 #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。 installonly_limit=3 #允许保留多少个内核包。 exclude=selinux* #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。 distroverpkg=centos-release bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
[root@localhost ~]# cat /etc/yum.repos.d/CentOS-Base.repo name,是对repository的描述,支持像$releasever $basearch这样的变量; $releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。 $arch,cpu体系,如i686,athlon等 $basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。 [fedora] #方括号里面的是软件源的名称,将被yum取得并识别 name=Fedora $releasever - $basearch #这里也定义了软件仓库的名称,通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,通常是8,9,10等数字,$basearch变量定义了系统的架构,可以是i386、x86_64、ppc等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择适合当前系统的软件包,以下同…… failovermethod=priority #failovermethod 有两个值可以选择,priority是默认值,表示从列出的baseurl中顺序选择镜像服务器地址,roundrobin表示在列出的服务器中随机选择 exclude=compiz* *compiz* fusion-icon* #exclude这个选项是后来我自己加上去的,用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加 #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/ #上面的一行baseurl第一个字符是'#'表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl(源的镜像服务器地址) #mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch #上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
http://mirrors.fedoraproject.org/mirrorlist?repo=rhel-7&arch=x86_64 http://mirrors.fedoraproject.org/mirrorlist?repo=rhel-6&arch=x86_64 http://mirror.symnds.com/distributions/CentOS/6.5/os/x86_64/repodata/ http://mirror.symnds.com/distributions/CentOS/$releasever/os/$basearch/
yum命令怎么使用YUM命令升级所有RPM软件包?yum update怎么使用YUM命令升级单个RPM软件包yum update 软件名称使用YUM安装RPM软件包yum install 软件名称使用YUM升级全部软件时怎么排除个别软件,假如你想升级所有软件包,但不想升级内核,就可以用下面的命令:yum --exclude=package kernel* update怎么使用YUM来确定某个软件需要升级,下面的命令会检测 Fedora/CentOS/RHEL上的所有软件是否需要升级check-update使用YUM卸载软件yum remove 软件名称 或者 yum erase 软件名称使用YUM查看软件包相关信息yum list可以让你获取软件包相关信息,后面不指定软件包名的话,它会列出所有软件包的信息。 yum list 软件名称使用yum了解软件的主要功能比如你想知道httpd这个软件是干吗的,可以输入下面的的命令: yum provides httpd使用YUM查找软件包如果你不知道某个软件包的全称,这个命令就非常有用了,它会根据你提供的关键词在RPM的软件包数据库里搜索相适配的软件包。比方说我想找 samba这个软件的全称,我只需要输入下面的命令即可: yum search samba使用YUM查看软件包的基本信息yum info samba怎么清除YUM缓存和下载包文件每安装一个软件包,YUM都是先下载一个RPM软件包然后再安装,安装完后并不会自动删除。时间长了,这些文件占很多空间的。所以,需要定时清理: yum clean all怎么使用YUM安装本地RPM包如果你想要自己创建一个RPM软件包,你可以用YUM来确定存在哪些依赖关系: yum localinstall 软件名称.rpm使用YUM升级本地RPM软件包如果你想升级一个本地RPM软件包,可以用下面的命令: yum localupdate update-package.rpm确定RPM包依赖哪些组件如果你想自己源码安装软件,了解安装的软件包依赖哪些软件非常有必要的。deplist可以让你知道软件包依赖哪些组件,这些组件的全称是什么。 yum deplist 软件名称查看YUM的版本信息yum -v使用YUM安装软件包到chroot环境(chroot)你可以使用下面的命令把软件安装到chroot: yum --installroot=/path/to/chroot/使用YUM启用已存在的软件源如果你安装了第三方的软件源,你需要先启用该软件源才能从其安装软件,输入下面的命令启用EPEL软件源: yum --enablerepo=epel install rsnapshot使用YUM禁用软件源如果你安装了第三方软件源但不想从其安装软件,可以用下面的命令禁用: yum --disablerepo=epel install 软件名称YUM软件集合YUM软件集合是指多个共同协作的软件统称,比如“Development Tools”(开发工具)。 下面介绍下怎么用yum groupinstall命令来查看/安装/卸载yum软件集合安装yum软件集合yum groupinstall 'Development Tools'卸载yum软件集合yum groupremove 'Development Tools'升级yum软件集合yum groupupdate 'Development Tools'查看yum软件集合信息yum groupinfo 'Development Tools'查看有哪些软件集合yum grouplist | more使用YUM输出已安装软件包列表该命令适用所有使用YUM为软件管理器的linux版本,如CentOS, Fedora, RHEL: yum list installed yum [options] COMMAND package_name 其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package ...]是操作的对象。 安装最快镜像插件: yum install yum-fastestmirror 安装yum图形窗口插件: yum install yumex 显示所有已经安装和可以安装的程序包 yum list 蓝色已安装,白色未安装 显示库 yum repolist [root@localhost ~]# yum list installed|wc -l 276 [root@localhost ~]# rpm -qa|wc -l 220 这两个的数量是有差异的 可以在命令前加help查看具体的帮助,非常方便,意识到这一点是对yum的一次本质提升(20160412才意识到) [root@localhost ~]# yum help list Loaded plugins: fastestmirror list [PACKAGE|all|installed|updates|extras|obsoletes|recent] List a package or groups of packages [root@localhost ~]# yum search varnish [root@localhost ~]# yum search all varnish [root@localhost ~]# yum provides varnish [root@localhost ~]# yum list varnish [root@localhost ~]# yum install varnish [root@localhost ~]# yum info varnish [root@localhost ~]# yum localinstall varnish.rpm [root@localhost ~]# yum deplist httpd [root@localhost ~]# cat /etc/yum.conf [root@localhost ~]# cat /etc/yum.repos.d/CentOS-Base.repo yum clean all yum makecache rm -rf /var/cache/yum/* [root@localhost dd]# yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile repo id repo name status base CentOS-6 - Base 6,367 repolist: 6,367 可以用whatprovides来确定哪个包提供了这个命令 [root@localhost base]# yum whatprovides which [root@localhost base]# yum whatprovides awk Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Warning: 3.0.x versions of yum would erroneously match against filenames. You can use "*/awk" and/or "*bin/awk" to get that behaviour No Matches found erroneously adv. 错误地;不正确 下面这两个输出是不一样的 [root@localhost base]# yum whatprovides *awk [root@localhost base]# yum whatprovides */awk [root@localhost dd]# yum clean Loaded plugins: fastestmirror Error: clean requires an option: headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all [root@localhost dd]# yum history Loaded plugins: fastestmirror ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 9 | root| 2014-09-20 00:23 | Install | 2 8 | root | 2014-09-20 00:21 | Install | 2 7 | root | 2014-09-20 00:20 | Install | 1 6 | root | 2014-09-20 00:06 | Erase | 1 5 | root | 2014-09-20 00:02 | Install | 1 4 | root | 2014-09-20 00:01 | Erase | 1 3 | root | 2014-09-19 23:46 | Install | 1 2 | root | 2014-09-18 17:46 | Install | 7 1 | System | 2014-09-18 17:32 | Install | 205 history list [root@localhost dd]# yum --help |egrep "remove|erase" erase Remove a package or packages from your system groupremove Remove the packages in a group from your system [root@localhost dd]# yum deplist gcc Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Finding dependencies: package: gcc.x86_64 4.4.7-4.el6 dependency: libgcc >= 4.4.7-4.el6 provider: libgcc.i686 4.4.7-4.el6 provider: libgcc.x86_64 4.4.7-4.el6 dependency: /sbin/install-info provider: info.x86_64 4.13a-8.el6 dependency: libgomp.so.1()(64bit) provider: libgomp.x86_64 4.4.7-4.el6 dependency: cloog-ppl >= 0.15 provider: cloog-ppl.x86_64 0.15.7-1.2.el6 provider: cloog-ppl.i686 0.15.7-1.2.el6 dependency: glibc-devel >= 2.2.90-12 provider: glibc-devel.x86_64 2.12-1.132.el6 provider: glibc-devel.i686 2.12-1.132.el6 dependency: cpp = 4.4.7-4.el6 provider: cpp.x86_64 4.4.7-4.el6 dependency: binutils >= 2.19.51.0.14-33 provider: binutils.x86_64 2.20.51.0.2-5.36.el6 dependency: libgomp = 4.4.7-4.el6 provider: libgomp.x86_64 4.4.7-4.el6 provider: libgomp.i686 4.4.7-4.el6 dependency: rtld(GNU_HASH) provider: glibc.i686 2.12-1.132.el6 provider: glibc.x86_64 2.12-1.132.el6 dependency: libc.so.6(GLIBC_2.7)(64bit) provider: glibc.x86_64 2.12-1.132.el6 dependency: /bin/sh provider: bash.x86_64 4.1.2-15.el6_4 dependency: libgcc_s.so.1()(64bit) provider: libgcc.x86_64 4.4.7-4.el6 [root@localhost dd]# yum search w3m Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile ====================================================================== N/S Matched: w3m ====================================================================== w3m-img.x86_64 : A helper program to display the inline images for w3m w3m.x86_64 : A pager with Web browsing abilities Name and summary matches only, use "search all" for everything. 必须选择下面的基本模式:Query, Verify, Signature Check, Install/Upgrade/Freshen, Uninstall, Initialize Database, Rebuild Database, Resign, Add Signature, Set Owners/Groups, Show Querytags, and Show Configuration。 rpm一般选项:可以用于所有的不同的模式中。 -vv rpm查询选项的通用格式: rpm {-q|--query} [select-options] [query-options] 有两个查询的子集选项:包选择和包查询选择。即[select-options]和[query-options] 包选择选项:[select-options] rpm -q tcpdump rpm -qa rpm -qf /usr/bin/bash rpm -qg 组包名 包查询选择:[query-options] rpm -q pam --changelog 查询包更改历史 rpm -qc pam 只列出配置文件 rpm -qc pam -vv rpm -qd pam 只列出帮助文件 rpm -qi pam 显示包信息 rpm -qa --last|more 以包安装的顺序来列出包内容,结果是最后一个安装的包在最上层列出。 rpm -ql pam rpm -q pam --provides rpm -qR pam 列出依赖的包 rpm -q pam --scripts rpm -qpl http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm安装的通用命令如下: rpm {-i|--install} [install-options] PACKAGE_FILE ... PACKAGE_FILE 形如oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm PACKAGE_NAME 形如oracle-instantclient-sqlplus
yum源(软件仓库) yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点, 也可以是本地软件源(光盘,iso,自定义的rpm包等),但必须包含rpm的header,header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务。 在执行yum update命令的时候,这一步就是yum会从服务器的header目录下载rpm的header,放在本地的缓存中。 yum 的大致原理: yum会检查 $baseurl/repodata/repomd.xml,这个索引文件,找不到的会失败的。所以添加软件库的时候要注意一下,特别是第3方软件库. 注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长. [root@localhost ~]# cd /var/cache/yum/x86_64/6/;ls /etc/yum.repos.d/下面启用的源,cache目录下才会有相关的目录。 yum就是根据存放在这里的这些rpm的header来检测系统中安装的软件(rpm软件包)是不是最新版本,需不需要update. 如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除, [root@localhost yum]# yum clean Loaded plugins: fastestmirror Error: clean requires an option: headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all 默认启用了base,updates,extras三个源 [root@localhost yum]# grep '\[' /etc/yum.repos.d/CentOS-Base.repo [base] [updates] [extras] [centosplus] [contrib] yum的配置一般有两种方式,一种是直接配置/etc目录下的yum.conf文件,另外一种是在/etc/yum.repos.d目录下增加.repo文件。 http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/09/2203916.html 1.构建本地yum源
本地软件源(光盘,iso,自定义的rpm包等) 光盘 默认有这个文件,就不需要新建repo文件了 [root@localhost yum]# less /etc/yum.repos.d/CentOS-Media.repo [root@localhost yum]# mkdir /media/cdrom;mount /dev/sr0 /media/cdrom [root@localhost yum]# rm -rf /var/cache/yum/* [root@localhost yum]# rm -rf /tmp/yum* yum --disablerepo=\* --enablerepo=c6-media yum --disablerepo=base,updates,extras --enablerepo=c6-media [root@localhost yum]# yum --enablerepo=c6-media --disablerepo=\* install perl Loaded plugins: fastestmirror Determining fastest mirrors * c6-media: file:///media/CentOS/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/CentOS/repodata/repomd.xml Trying other mirror. file:///media/cdrecorder/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/cdrecorder/repodata/repomd.xml Trying other mirror. c6-media | 4.0 kB 00:00 ... c6-media/primary_db | 4.4 MB 00:00 ... Setting up Install Process 自定义rpm 1、将所有的rpm包拷贝到一个目录中,此处放在/mnt/local/下 2、安装createrepo包 rpm -ivh createrepo-0.9.8-4.el6.noarch或者 yum install createrepo 3、createrepo -v /mnt/local #-v指定 #vi local.repo [local] name=local baseurl=file:///mnt/local/ gpgcheck=0 #yum clean all #yum --enablerepo=local --disablerepo=\* install 包名
iso mount -o loop -t iso9660 rhel6.iso /mnt/iso/ 这时在local.repo文件添加 [server] name=RHEL baseurl=file:///mnt/iso/ gpgcheck=0 #yum clean all #yum --enablerepo=server --disablerepo=\* install perl 与上相同 2.构建远程yum源 架设本地,远程(ftp,http都可以) 首先架设vsftp服务器 rpm -ivh Createrepo-xxx.rpm createrepo /var/ftp/pub/ #生成数据库 /etc/init.d/vsftpd start #启动ftp服务 baseurl=ftp://192.168.1.88/pub/ 安装单个服务已经可以了,下面我们来解决安装组包的问题 修改文件:/usr/lib/python2.4/sit-pachages/yum/yumRepo.py #第441行vi +441 /usr/lib/python2.4/sit-pachages/yum/yumRepo.py #敲命令将 remote= url + '/' +relative 修改为 remote= "/var/ftp/pub/Server" + '/' +relative http类似于ftp,只是路径不同,协议不同而已。http方式是将源文件放入html目录中 http源 # vim /etc/yum.repos.d/cloudstack.repo [cloudstack] name=cloudstack baseurl=http://cloudstack.apt-get.eu/rhel/4.2/ enabled=1 gpgcheck=0 因网络慢问题,可以先下载所有安装包,然后创建本地源: yum -y install httpd createrepo wget -c -r -nd -A rpm http://cloudstack.apt-get.eu/rhel/4.2/ -P /var/www/html/4.2 createrepo /var/www/html/4.2/ service httpd start -c 断点续传 -nd 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录 -A 指定分号分隔的被接受扩展名的列表 yum配置改为: [cloudstack] name=cloudstack baseurl=http:///4.2 #修改成自己服务器的IP地址 enabled=1 gpgcheck=0 3.第三方源 epel源 Extra Packages for Enterprise Linux(企业版 Linux 附加软件包)(以下简称 EPEL)是一个由特别兴趣小组创建、维护并管理的,针对红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、 Scientific Linux)的一个高质量附加软件包项目。EPEL 的软件包通常不会与企业版Linux官方源中的软件包发生冲突,或者互相替换文件。EPEL与Fedora项目基本一致,包含完整的构建系统、升级管理器、镜像管理器等等。EPEL 包含一个叫做epel-release的包,这个包包含了EPEL源的gpg密钥和软件源信息。您可以通过yum安装到您的企业版Linux发行版上。除了epel-release源,还有一个叫做epel-testing的源,这个源包含最新的测试软件包,其版本很新但是安装有风险,请自行斟酌。注意: 有些第三方软件源需要 EPEL 的'epel-testing'源来安装依赖组件,请务必在系统设置中启用本源。这里有相关的开启教程。(相关配置文件位于:/etc/yum.repos.d/epel-testing.repo)。首先安装epel包,下面两种方法均可以#yum install epel-release或者下面的#rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm#rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm 先查看一下这个包都安装了那些文件 rpm -qpl http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm 导入key:# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6注意:1、要安装最新版本的EPEL,请前往 http://mirrors.ustc.edu.cn/fedora/epel/ 中查找最新版本的URL地址,这里采用的是6.8版本32位:http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm64位:http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm2、若出现下面类似错误,则表示对应的URL已经不存在,需要重新找EPEL的版本,请前往 http://mirrors.ustc.edu.cn/fedora/epel/ 获取需要的版本如下报错,安装epel-release成功,但没有提示导入key。[root@localhost ~]# yum install epel-release[root@localhost ~]# yum install x2goserver x2goserver-xsessionLoaded plugins: fastestmirror, refresh-packagekit, securityLoading mirror speeds from cached hostfileError: Cannot retrieve metalink for repository: epel. Please verify its path and try again解决办法是处理很简单,修改文件“/etc/yum.repos.d/epel.repo”, 将baseurl的注释取消, mirrorlist注释掉。即可。
163的yum源 1.导入CentOS-6的GPG证书 rpm –import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6 http://mirrors.163.com/.help/centos.html 2.让yum使用163的yum源: cd /etc/yum.repos.d/ wget http://mirrors.163.com/.help/CentOS6-Base-163.repo 先备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 再下载对应版本的库文件 curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo curl -O http://mirrors.163.com/.help/CentOS6-Base-163.repo 再生成缓存 yum clean all yum makecache 3.修改repo文件 在所有mirrorlist前面加上#,把所有$releasever替换成6,保存 sed -i ‘/mirrorlist/d’ CentOS-Base-163.repo sed -i ‘/\[addons\]/,/^$/d’ CentOS-Base-163.repo sed -i ‘s/\$releasever/6/’ CentOS-Base-163.repo sed -i ‘s/RPM-GPG-KEY-CentOS-5/RPM-GPG-KEY-CentOS-6/’ CentOS-Base-163.repo 4.清理并重新生成yum缓存 yum clean metadata 安装额外的软件仓库: rpm.livna.org 的软件包仓库: rpm -ivh http://livna-dl.reloumirrors.net … ease-7-2.noarch.rpm freshrpms.net 的软件包仓库: rpm –ivh http://ftp.freshrpms.net/pub/fre … 1.1-1.fc.noarch.rpm
问题:[root@name user]# yumFile "/usr/bin/yum", line 30except KeyboardInterrupt, e:原因:这是因为yum采用python作为命令解释器,这可以从/usr/bin/yum文件中第一行#!/usr/bin/python发现。而python版本之间兼容性不太好,使得2.X版本与3.0版本之间存在语法不一致问题。而CentOS 5自带的yum采用的是python2.4,当系统将python升级到2.6或3.0后,出现语法解释错误。解决办法:很简单,一是升级yum,一是修改yum的解释器为旧版本python2.4(如果你没有采用覆盖升级的话)升级yum的作法就不详述了;修改yum的解释器为旧版本python2.4: vi /usr/bin/yum 将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2.4"即可当YUM时,注:如出现:Existing lock /var/run/yum.pid: another copy is running. Aborting.错误,要运行: rm -f /var/run/yum.pid 将该文件删除!yum Existing lock 错误的解决办法如果系统启动的时候, yum 出现Existing lock /var/run/yum.pid: another copy is running as pid 3380. Aborting.可以用下面的办法解决:可以 /etc/init.d/yum-updatesd stop也可以 rm -f /var/run/yum.pid主要原因就是yum在自动更新,所以再运行yum就会报这个错。只要关掉正在执行的yum更新就可以了就可以了,停止正在运行的yum进程,或者禁用开机自动启动yum进程。1。rm -rf /var/run/yum.pid2./etc/init.d/yum-updatesd stop为什么会有一个yum进程在执行呢?原来是yum自动更新机制自动激活了yum进程,用下面的命令停止自动更新:如果我们不需要自动更新服务,可以直接删除它。#yum remove yum-updatesd不过删除该服务之后,以后的更新要用下面的命令手工来完成了。#yum update