YUM简介:
yum是yellowdog updater modified的缩写,yellowdog是一个linux的发行版,跟debian的apt类似,但是apt是编译代码,所以比用python编写的yum执行效率更高。
yum的理念是使用一个软件仓库(repository)来管理系统的应用程序之间的关系。根据计算出来的软件之间的相互关系进行相关的升级,安装,卸载等操作,所以它是解决软件dependence的一个很好的工具。
yum的源可以是http,ftp,file(本地源)协议。
repository(仓库)是用createrepo或yum-arch命令创建的(用于建立本地源),也可以用别人已有的repository作为镜像(用于建立网络源)。
关于yum的一些命令:
yum install rpm包 安装软件包
yum remove/erase rpm包 卸载软件包
yum update rpm包 升级软件包(如果后面不跟具体的软件包名称则会升级系统中所有需要升级的rpm包)
yum check-update 检查是否又需要更新的软件包与yum list updates类似
yum clean all 清除缓存(清掉下载的软件包,headers,cache,metadata元数据)
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 范围是0到10,默认是2
logfile=/var/log/yum.log yum的日志信息,
exactarch=1 有1和0两个选项,代表是否只升级和你cpu位数一致的rpm包
obsoletes=1 有1和0两个选项,升级时是否***过时的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:包的策略,有两个选项,newest和last。如果你有多个repository,而一个软件包在多个repository同时存在,如果设置为newest,则yum会安装新版的,如果是last,yum会将服务器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 等作为后端。