YUM简介:

yumyellowdog updater modified的缩写,yellowdog是一个linux的发行版,跟debianapt类似,但是apt是编译代码,所以比用python编写的yum执行效率更高。

yum的理念是使用一个软件仓库(repository)来管理系统的应用程序之间的关系。根据计算出来的软件之间的相互关系进行相关的升级,安装,卸载等操作,所以它是解决软件dependence的一个很好的工具。

yum的源可以是httpftpfile(本地源)协议。

repository(仓库)是用createrepoyum-arch命令创建的(用于建立本地源),也可以用别人已有的repository作为镜像(用于建立网络源)。

关于yum的一些命令:

yum  install rpm包           安装软件包

yum  remove/erase  rpm包     卸载软件包

yum  update  rpm包           升级软件包(如果后面不跟具体的软件包名称则会升级系统中所有需要升级的rpm包)

yum check-update             检查是否又需要更新的软件包与yum list updates类似

yum clean all                清除缓存(清掉下载的软件包,headerscachemetadata元数据)

yum makecache            将仓库里的软件信息生成本地缓存,加快搜索软件的速度(也可以不用)


yum list 软件包                       列出rpm包的信息,包括已安装和未安装的

yum list installed           列出所有已安装的软件包


yum search 关键字            在不知道具体软件包名称的时候使用

yum info   rpm包                          如果系统内安装了一个软件包,但是不知道它是干什么用的,此时可以用 软件包来查看一下。


yum配置文件:

yum配置文件/etc/yum.conf,里面是yum的全局配置。

去掉注释之后的内容如下:

[main]

cachedir=/var/cache/yum/$basearch/$releasever   yum的缓存目录

keepcache=0     不保存下载的文件,1是保存

debuglevel=2    范围是010,默认是2

logfile=/var/log/yum.log      yum的日志信息,

exactarch=1      10两个选项,代表是否只升级和你cpu位数一致的rpm

obsoletes=1      10两个选项,升级时是否***过时的rpm

gpgcheck=1       有1和0两个选项,是否检查gpg key

plugins=1        有1和0两个选项,是否使用插件

installonly_limit=5     貌似是同时安装rpm包的个数。

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release    指定一个软件包,yum会根据这个包来判断你系统的版本


除此之外也有可能会有其他参数,如下:

pkgpolicy:包的策略,有两个选项,newestlast。如果你有多个repository,而一个软件包在多个repository同时存在,如果设置为newest,则yum会安装新版的,如果是lastyum会将服务器id(就是yum仓库的开头以[ ]开始的部分)以字母表排序,选择最后一个服务器的仓库安装。

reposdir

设置.repo配置文件所存放的目录,默认是: /etc/yum.repos.d/

assumeyes=0

值可以是1和0,表示是否安装RPM包时直接自动确认应答,而不用手动确认,默认值为0:表示要手动确认

alwaysprompt=1

值可以是1和0,表示是否安装RPM包时总是要手动确认,默认值为1:表示要手动确认

retries=2

网络连接发生错误后的重试次数,如果设为0,则会无限重试

tolerant=1

也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装:1.i386.rpm、2.i386.rpm、3.i386.rpm这三个包,而其中3.i386.rpm在此之前已经安装了,如果现在你将tolerant的值设为1,则yum不会出现错误信息。默认是0

metadata_expire=1800

Metadata的过期时间,单位为秒

exclude=….

排除某些软件在升级名单之外,可以用通配符(例如:*与?),列表中各个项目要用空格隔开



repo文件配置:

位于/etc/yum.repos.d下

[serverid] 
name=Some name for this server 
baseurl=url://path/to/repository/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


serverid:代表这个yum的名称,要有唯一性。

name:随便起

enabled=1

是否激活这个repository服务器

baseurl:yum仓库的地址,可以是ftp,http,file(本地)形式。baseurl后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl只能有一个,也就是说格式只能如下:

baseurl=url://server1/path/to/repository/ 
url://server2/path/to/repository/ 
url://server3/path/to/repository/ 
url之后可以加上多个选项,如gpgcheck、failovermethod等。

failovermethode 有两个选项roundrobin和priority,意思分别是有多个url可供选择时,yum选择的次序,roundrobin是随机选择,如果连接失 败则使用下一个,依次循环,priority则根据url的次序从第一个开始。如果不指明,默认是roundrobin。

gpgkey存放的位置,一般在本地的目录下就会有,如果没有你就要先下载到这个目录下,或者直接指定到有gpgkey的相应网址

 

设置完配置文件,最重要的就是导入GPG key了,一般会在镜像站的首页,一些名字诸如 RPM-GPG-KEY.txt之类的纯文本文件,可以是网络key。

本地默认放到该目录:gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

rpm --import  /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


附:

yum中的plugin插件配置文件

fastestmirror:

centos 6.4内置有10个源,/var/cache/yum/x86_64/6/下的base,extras,update下的mirrorlist.txt文件。

fastestmirror.conf的作用就是在使用yum的时候根据ping值选择一个网络最好的源进行连接。

 

packagekit:

是一个适用于 Linux 系统的新的包管理器。它包括运行在后台的守护程序 packagekitd 和前端界面程序 gnome-packagekit 两部分。PackageKit 的优势在于它试图成为一个跨发行版本及跨架构 API 的 Linux 通用包管理器。

PackageKit 支持将 yum、conary、apt、box、pacman/alpm 等作为后端。