一.简介 yum的主要功能是更方便的添加/删除/更新RPM包,自动解决包的依赖性问题,便于管理大量系统的更新问题。 yum可以同时配置多个资源库,简介的配置文件,保持与rpm数据库的一致性。 二,yum 的安装 默认已经安装,这里简要提一下。 基础安装包包括: yum yum-fastestmirror yum-metadata-parser 三.yum的配置 yum的配置文件分为两部分:main和repository

  1. main部分定义了全局配置选项,整个yum配置文件应该只有一个main。常位于/etc/yum.conf中。 yum.conf 文件一般位于/etc目录下,一般其中只包含main部分的配置选项。 cat /etc/yum.conf (1) cachedir=/var/cache/yum/x86_64/6/base/packages【yum缓存的目录,yum在此存储下载rpm包和数据库,】 (2) keepcache=0【安装完成后是否保留软件包,0为不保留,1为保留】 (3) debuglevel=2 【信息输出等级,范围为0-10,缺省为2】 (4) logfile=/var/log/yum.log 【yum日志文件位置,可以查询过去所作的更新】 (5) pkgpolicy=newest/last【包策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本,如果是last,则yum会将服务器id以字母表排序,并选择最后哪个服务器上的软件安装。一般都选newest】 (6) distroverpkg=redhat-release【指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包】 (7) tolerant=1 【表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1 2 3三个包,而其中3此前已经安装了,设为1,则yum不会出现错误信息,默认为0】 (8) exctarch=1【设置为1,则yum只会安装和系统架构匹配的软件包。】 (9) retries=6 【网络链接发生错误后的重试次数,如果设为0则会无限重试,默认为6】 (10) obsoletes=1【这是一个update的参数,允许更新陈旧的rpm包】 (11) plugins=1 【是否启用插件,默认为1是允许,0表示不允许。】
  2. repository部分定义了每个源/服务器的具体配置,可以有一个或者多个。常位于/etc/yum.conf (1) 配置本地yum源 a. 挂载系统安装光盘 mount /dev/cdrom /mnt/cdrom b. 配置本地yum源 cd /etc/yum.repos.d ls 会看到四个repo文件 CentOS-Base.repo 是yum网络源的配置文件 CentOS-Media.repo 是yum本地源的配置文件。 修改CentOS-Media.repo是yum本地源的配置文件 在baseurl中修改第二个路径为/mnt/cdrom(即光盘挂载点) 将enabled=0改为1 c. 禁用默认的yum网络源 将yum网络源配置文件改名为CentOS-Base.repo.bak,否则会先在网络源中寻找适合的包,改名之后直接从本地源读取。 d. 执行yum命令 yum install postgersql e.关于repo文件的格式 所有repository的服务器设置都应该遵循如下格式: [serverid] name=Some name for this server baseurl=url://path/to/repository serverid 【用于区别各个不同的repository必须有一个独一无二的名称】 name【是对repository的描述,】 baseurl【是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件,】 其中url支持的协议有http:// ftp:// file:// 三种。 baseurl后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl只能有一个。 failovermethode 有两个选项。roundrobin (随机选择url路径) priority(按次序选择)
  3. 配置国内yum源 (1)系统给默认的yum源速度往往不尽如人意,为了达到快速安装的目的 修改/etc/yum.repos.d/CentOS-Base.repo 【vim /etc/yum.repos.d/CentOS-Base.repos.d(修改前都做好备份) 只修改其中{baseurl} {addons}{extras}{centosplus}这几项中的baseurl和gpgkey为相应源地址即可。修改完成后,清空yum缓存,并重建yum缓存(yum clean all &&yum clean &&yum cl)】 【国内更新源 上海交大 http://ftp.sjtu.edu.cn/centos 中国科技大学 http://centos.ustc.edu.cn sohu的开源镜像服务器 http://mirrors.sohu.com 网易的开源服务器镜像:http://mirrors.163.com/centos (2)导入GPG KEY yum可以使用gpg对包进行校验,确保下载包的完整性,所以我们先要到各个repository站点找到gpgkey,一般都会放在首页的醒目位置,把它们下载下来,然后用rpm –import 命令将key导入。
  4. 集群环境中配置yum源仓库, (1) ftp发布【yum服务器端配置】 a. 准备软件仓库目录 mkdir /var/ftp/rhel6 cp -rf /media/cdrom/* /var/ftp/rhel6 对于用户搜集的非RHEL6光盘自带的更多其他的软件包(必须包括存在依赖关系的所有安装文件),除了应准备相应的目录之外,还需要手动创建repodata数据文件,这就要用到createrepo工具(需要从RHEL6光盘中安装) cd /var/ftp/other createrepo -g /media/cdrom/repodata/repomd.xml ./ b. 安装并启用vsftpd服务 rpm -ivh /media/cdrom/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm chkconfig vsftpd on service vsftpd start c. 配置软件仓库位置(客户机端配置) vim /etc/yum.repos.d/rhel6.repo [base] name= baseurl=ftp://IP地址/rhel6 enabled=1 【启用此软件仓库】 gpgcheck=1【验证软件包签名】 gpkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release【GPG公钥文件位置】 [other] name= baseurl=ftp://IP地址/other enable=1 gpgcheck=0(不验证软件包签名) (2) http发布 a. 安装并启用httpd服务 service httpd start chkconfig httpd on b. mkdir -p /var/www/html/centos cp -rf /media/cdrom/* /centos mkdir -p /var/www/html/others cd /var/www/html/others createrepo -g /media/cdrom/repodata/repomd.xml ./ c. 配置软件仓库的位置(客户机端配置) vim /etc/yum.repos.d/rhel6.repo [base] name=centos baseurl=http://IP地址/centos enabled=1 gpgcheck=1 gpkey=file:(同上) [other] name=others baseurl=http://IP地址/others enabled=1 gpgcheck=0

四.使用yum工具管理软件包 1. yum list 查询软件包列表 yum list available 列出可用的尚未安装的软件包 yum list updates 表示只列出可以升级版本的软件包 yum list install 表示只列出系统中已经安装的软件包 2. yum info 查询软件包描述信息 3. yum search all httpd 查询指定的软件包 4.安装、升级、卸载软件包 yum -y install httpd(安装) yum -y remove httpd (卸载并自动解决依赖关系)