yum介绍

【简介】
yum是一个为rpm系统设计的用于软件包自动更新的安装删除程序。它可以自动解决软件包依赖问题,使得安装删除rpm软件变得更加容易。
yum,即yellowdog updater modified,是由DUKE大学的Linux开发小组开发的。

【配置文件简介】
yum的配置文件分为两部分:main和repository
main部分定义了全局配置选项,整个yum配置文件应该只有一个main。常位于/etc/yum.conf中。
repository部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d目录下的各文件中。

【yum.conf简介】
yum.conf文件一般位于/etc目录下,一般其中只包含main部分的配置选项。其内容大致为:
[main]
cachedir=/var/cache/yum
#cachedir:yum更新软件时的缓存目录,默认设置为/var/cache/yum
debuglevel=2
#debuglevel:Debug信息输出等级,范围为0-10,缺省为2
logfile=/var/log/yum.log
#logfile:存放系统更新软件的日志的目录。用户可以到/var/log/yum.log文件去查询自己在过去的日子里都做了哪些更新。
pkgpolicy=newest
# 包的策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同 时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。
distroverpkg=redhat-release
#指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。
tolerant=1
#如果值为1,则yum会忽略任何的有关包的错误。举例来说,当执行yum来安装baz时,如果baz包已经安装在系统中了,则yum会继续重复安装baz,而不会报错。默认值为1。
exactarch=1
#设置为1,则yum只会安装和系统架构匹配的软件包,例如,yum不会将i686的软件包安装在适合i386的系统中。默认为1
retries=20
#网络连接发生错误后的重试次数,如果设为0,则会无限重试。默认值为6
obsoletes=1
#此选项在进行发行版跨版本升级的时候会用到。
gpgcheck=1
#有1和0两个选择,分别代表是否是否进行gpg校验。这个选项如果设置在[main]部分,则对每个repository都有效。默认值为0.
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

【yum.conf中的变量】
$releasever:代表发行版本的版本号。如果系统是fedora core 6的话,则返回6
$basearch:显示基本架构类型。如果系统为i386或i686等,则均返回i386

【配置yum源】
配置工作实在/etc/yum.repo.d目录下完成。或许当你打开这个目录ls时,会发现很多后缀是.repo的文件,这些文件都是官方源的 repo文件。yum正是通过repo文件里面提供的源(链接或本地目录)去下载依赖软件并安装。官方源的 repo文件需要付费后才能连接,因此,为了免费通过yum安装软件,我们可以建立自己的.repo文件(可在网上找现成的),使repo文件里面的源是开源的。

.repo文件的一些说明:
所有服务器设置都应该遵循如下格式:
[serverid]
name=Some name for this server
baseurl=url://path/to/repository/
其中serverid是用于差别各个不同的repository,必须有一个独一无二的名称。
name,是对repository的描述,支持像$releasever $basearch这样的变量;
baseurl是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。他的格式是:
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
其中url支持的协议有 http:// ftp:// file://三种。baseurl后能跟多个url,你能自己改为速度比较快的映像站,但baseurl只能有一个,也就是说不能像如下格式:
baseurl=url://server1/path/to/repository/
baseurl=url://server2/path/to/repository/
baseurl=url://server3/path/to/repository/
其中url指向的目录必须是这个repository header目录的上一级,他也支持$releasever $basearch这样的变量。
url之后能加上多个选项,如gpgcheck、exclude、failovermethod等,比如:
[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch
http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$basearch
http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basearch
gpgcheck=1
exclude=gaim
failovermethod=priority
其中gpgcheck,exclude的含义和[main]部分相同,但只对此服务器起作用,
failovermethode 有两个选项roundrobin和priority,意思分别是有多个url可供选择时,yum选择的次序,roundrobin是随机选择,如果连接失 败则使用下一个,依次循环,priority则根据url的次序从第一个开始。如果不指明,默认是roundrobin。
几个变量
$releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
$arch,cpu体系,如i686,athlon等
$basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。

【GPG】
当进行yum install时会发现提示GPG错误,这时应该完成有关gpg的rpm导入即可。 所以我们先要到各个repository站点找到gpg key,一般都会放在首页的醒目位置,一些名字诸如 RPM-GPG-KEY.txt之类的纯文本文件,把他们下载,然后用rpm --import xxx.txt命令将他们导入,最好把发行版自带GPG-KEY也导入,rpm --import /usr/share/doc/redhat-release-*/RPM-GPG-KEY 官方软件升级用的上。


【yum使用】
举例,比如想下载httpd服务器:
1. # yum list|grep httpd
2. # yum install httpd*
这样就完成了:)
(如果用rpm -ivh来装httpd的话 可要解决很多rpm依赖的问题啊~~)

【yum相关(补充)】
用YUM升级软件
打开终端,转换到root用户,yum的操作大都须有终极用户的权限。
首 先,yum update,这一步是必须的,yum会从服务器的header目录下载rpm的header,放在本地的缓存中,这可能会花费一定的时间,但比起yum 给我们带来方便,这些时间的花费又算的了什么呢?header下载完毕,yum会判断是否有可更新的软件包,如果有,他会询问你的意见,是否更新,还是说 y吧,把系统始终up to date总是不错的,这时yum开始下载软件包并使用调用rpm安装,这可能要一定时间,取决于要更新软件的数目和网络状况,万一网络断了,也没关系,再 进行一次就能了。升级完毕,以后每天只要使用yum check-update检查一下有无跟新,如果有,就用yum update进行跟新,时刻保持系统为最新,堵住一切发现的漏洞。
用yum update packagename 对某个独立包进行升级。
yum更有一个升级指令,yum upgrade,他的初衷是更换废弃的包,但目前通常用来进行重大的升级,如把发行版整个升高一个版本,由于牵动太大,还不如安装新的系统。
1.列出所有可更新的软件清单
命令:yum check-update
2.安装所有更新软件
命令:yum update
3.仅安装指定的软件
命令:yum install
4.仅更新指定的软件
命令:yum update
5.列出所有可安?的软件清单
命令:yum list

用YUM安装删除软件
装了系统添加删除软件是常事,yum同样能胜任这一任务,只要软件是rpm安装的。
安装的命令是,yum install xxx,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最佳,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你能自己作出判断。
删除的命令是,yum remove xxx,同安装相同,yum也会查询数据库,给出解决依赖关系的提示。
1.用YUM安装软件包
命令:yum install
2.用YUM删除软件包
命令:yum remove

用YUM查询软件信息
我 们常会碰到这样的情况,想要安装一个软件,只知道他和某方面有关,但又不能确切知道他的名字。这时yum的查询功能就起作用了。你能用 yum search keyword这样的命令来进行搜索,比如我们要则安装一个Instant Messenger,但又不知到底有哪些,这时不妨用 yum search messenger这样的指令进行搜索,yum会搜索所有可用rpm的描述,列出所有描述中和messeger有关的rpm包,于 是我们可能得到gaim,kopete等等,并从中选择。
有时我们还会碰到安装了一个包,但又不知道其用途,我们能用yum info packagename这个指令来获取信息。
1.使用YUM查找软件包
命令:yum search
2.列出所有可安装的软件包
命令:yum list
3.列出所有可更新的软件包
命令:yum list updates
4.列出所有已安装的软件包
命令:yum list installed
5.列出所有已安装但不在 Yum Repository ?的软件包
命令:yum list extras
6.列出所指定的软件包
命令:yum list
7.使用YUM获取软件包信息
命令:yum info
8.列出所有软件包的信息
命令:yum info
9.列出所有可更新的软件包信息
命令:yum info updates
10.列出所有已安?的软件包信息
命令:yum info installed
11.列出所有已安?但不在 Yum Repository ?的软件包信息
命令:yum info extras
12.列出软件包提供哪些文件
命令:yum provides

清除YUM缓存
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得他们占用了磁盘空间,能使用yum clean指令进行清除,更精确 的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all一 股脑儿端
1.清除缓存目录(/var/cache/yum)下的软件包
命令:yum clean packages
2.清除缓存目录(/var/cache/yum)下的 headers
命令:yum clean headers
3.清除缓存目录(/var/cache/yum)下旧的 headers
命令:yum clean oldheaders
4.清除缓存目录(/var/cache/yum)下的软件包及旧的headers
命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)

附:
由于 Fedora 的 yum
预设的更新主机在国外,也就是 Fedora 的官方更新主机
连线到国外下载,速度之慢,可想而知....
在这里,我们能修改 yum 的设置文件
把连线主机,改成国内各大学的 Linux 更新主机,如此速度就会比较快
------------------------
/etc/yum.conf
-----------------------
[base]
name=Fedora Core $releasever - $basearch - Base baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/
注意红色的地方,就是 yum 会去连接的更新主机网址
改成以下,可自由选择搭配
base 主机:
(大小写有差别,请先实际连接测试,看看服务器是否仍存在)
http://ftp.isu.edu.tw/pub/Linux/Fed...core/1/i386/os/
http://linux.nctu.edu.tw/ftp/dists/...core/1/i386/os/
ftp://ftp.isu.edu.tw/pub/Linux/Fedo...core/1/i386/os/
ftp://linux.nctu.edu.tw/dists/fedora/core/1/i386/os/
ftp://linux.sinica.edu.tw/fedora/linux/core/1/i386/os/
updates 主机:
(大小写有差别,请先实际测试连接,看看服务器是否仍存在)
http://ftp.isu.edu.tw/pub/Linux/Fed...updates/1/i386/
http://linux.nctu.edu.tw/ftp/dists/...updates/1/i386/
ftp://ftp.isu.edu.tw/pub/Linux/Fedo...updates/1/i386/
ftp://linux.nctu.edu.tw/dists/fedor...updates/1/i386/
ftp://linux.sinica.edu.tw/fedora/li...updates/1/i386/
路径中的 /1/ 是代表 core 1
如是使用core 2,请自行改成 /2/
改完后保存,不必重启服务,即时生效
然后 yum 的更新速度就?飞快了
Fedora core 3 和 4 的 yum base 设置设定法:
FC3 和 FC4 的 yum base 设置设定,有别于之前 FC2
并不是在 /etc/yum.conf 中设定
设定方法如下:
cd /etc/yum.repos.d/
vi fedora.repo (设定 base 主机,仅列出需要修改处)
baseurl=http://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/$releasever/$basearch/os/
#mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever
vi fedora-updates.repo (设定 update 主机,仅列出需要修改处)
baseurl=http://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/updates/$releasever/$basearch/
#mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc$releasever
说明:
1.义守大学是 Fedora 官方认可的台湾区mirror 站,所以这里设定义守大学的主机。

你可能感兴趣的:(yum使用方法,yum介绍,yum详解,yum说明)