CentOS系统之yum使用

一、概述

        Yum (全称为:Yellow dog Updater, Modified),是一个基于RPM 包管理的字符前端软件包管理器。能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。被Yellow Dog Linux本身,以及Fedora、Red Hat Enterprise Linux采用。


二、Yum结构

        Yum遵循C/S架构设计,server端是基于ftp、http、nfs等协议的文件服务器,提供软件仓库,客户端连接服务器获取RPM包并处理依赖关系后安装。 

1. server端,提供yum仓库

    yum仓库包含:

            (1). 数据:各个rpm包

            (2). 元数据:是简要的关系型数据库,标明包名、版本信息、各包所包含的文件列表、依赖关系、包分组信息                                     元数据位于repodata目录下,在CentOS 5上以xml类型文件存在,在CentOS 6上主要以sqlite类                                   型文件存在。

2.客户端安装软件包策略

            第一步: 获取仓库元数据。第一次获取元数据后缓存于本地:/var/cache/yum目录下,之后再访问服务器就

                           直接使用本地元数据。

            第二步: 分析元数据,做出安装决策。yum客户端程序在本地分析元数据文件,并结合本地系统环境(查看已

                           安装包,已安装的包不会安装)做出要安装的程序包的决策。

            第二步: 获取程序包。根据决策联系Yum仓库,下载各程序包缓存于本地后,一并进行安装。


三、yum机制

    仓库的类别:

        base库:基本库,提供的通常为系统发行版所提供的程序包

                updates库:提供的是制作一个新的发行版之前所有更新的程序包

                extra库:提供的是base库中不存在的额外的程序包

                epel库:fedora epel提供的程序包

             注:对于客户端来说,仓库是使用有优先级,例如对于base库和updates库,一般先使用update库。另外,可                    以指定仓库的启用或否。

1. 首先应确保有可有的yum 仓库:

        yum的server端是rpm包的基于ftp、http、nfs等协议的文件服务器,server端的repodata目录所在父目录就是一        个可用仓库。

2. yum客户端提供repo配置文件,指明仓库访问路径及各种属性信息

        配置文件分为主配置文件和repo文件:

                (1). 主配置文件:中心配置文件,文件名位于:/etc/yum.conf

                (2). repo配置文件:一个或几个相关仓库的配置信息可保存为一个文件,文件名都以.repo结尾,保                                     存在/etc/yum.repos.d/目录下。

                yum.conf中的各条目解释:

                        cachedir=/var/cache/yum/$basearch/$releasever 仓库元数据系数据本地缓存目录

                        keepcache=0 缓存的数据安装后是否保存(0表示不保存)

                        debuglevel=2 调试级别

                        logfile=/var/log/yum.log 日志文件目录

                        exactarch=1 平台是否精确匹配才能安装

                        obsoletes=1 安装包的时候是否检查过期的仓库

                        plugins=1 是否支持使用yum的插件

                在.repo文件定义一个yum repo指向的格式:

                        [REPOID]  仓库的类型

                        name=  此处填写仓库的名称

                        baseurl=  此处填写仓库的所在位置

                        enabled={0|1}  是否启用此仓库

                        gpgcheck={0|1}  使用gpg机制检测包来源合法性和完整性

                        gpgkey=URL  校验key文件所在位置

                        mirrorlist=URL to a file  mirrors指向一个存在可用rul的文件(条目baseurl和mirrorlist二选一)

                        cost={1..n}  默认为1000,指定此repo文件中url访问仓库的开销,数值越小优先级越高

                        ( yum配置文件中可用的四个变量:

                                    $releasever:   程序的版本,对Yum而言指的是redhat-release版本;只替换为主版本号,                                                                   如RedHat 6.5,则替换为6

                                    $arch:   系统架构

                                    $basearch:   当前系统基本架构,如i686,i586等的基本架构为i386

                                    $YUM0-9:   在系统中定义的环境变量,可以在yum中使用 )


四、yum客户端命令的使用

    1. 列出所有可用repo(仓库)

            命令:yum repolist {enabled|disabled|all}

                   参数解释:启用的|禁用的|所有

        2. 列出仓库中rpm包

            命令: yum list {all|installed|available} 

                   参数解释:所有的|已安装的|可安装的   

                注:支持文件名通配,显示结果中带@符号表示已安装

        3. 列出包的描述信息

            命令:yum info package_name 

        4. 列出所有的包组信息

            命令:yum grouplist

        5. 显示包组的信息

            命令:yum groupinfo "GROUP NAME"

                    例如:yum groupinfo "Server Platform Development"

        6. 清理缓存

            命令:yum clean {all|packages|metadata|expire-cache|rpmdb|plugins}

                    参数解释:所有|包|元数据|过期的缓存|rpm数据库|插件

        7. 安装程序包

            命令:yum install package_name

            重新安装命令:yum reinstall package_name

        8. 升级

            检查可用的升级包命令:yum check-update:

            升级程序包:yum update package_name

            升级到某个版本,例如:yum update zsh-4.3.10-8

            降级到某个版本,例如:yum dowgrade zsh-4.3.10-7

        9. 卸载

           命令: yum remove package_name 或者,

                      yum erase package_name

        10. 查询某文件是由哪个包安装生成的

            命令:yum provides /.../.../file

        11. 安装包组 

            命令:yum groupinstall "GROUP NAME"

        12. 卸载包组

            命令:yum groupremove "GROUP NAME"

        注:若从其它处获得一个rpm包,此包依赖于其它包(在仓库中),如过只是单次使用,就没有必要为它建立元                    数据。安装方法:yum install /.../.../file


五、自建yum仓库

        1. 自建基于光盘镜像的yum仓库

           (1). 挂载光盘到/media/cdrom目录

           (2). 创建Centos-Base.repo文件,写入repo文件:

                    [base]

                    name=CentOS Media

                    baseurl=file:///media/cdrom

                    gpgcheck=0

                    enabled=1

        2. 自建提供yum仓库的中心服务器

            以http为例,步骤:

            (1). 安装httpd程序,并启动服务

                  命令:yum install httpd

            (2). 启动服务

                   命令:service httpd start

            (3). 在httpd的文档根目录:/var/www/html中创建子目录,将软件包放入子目录中。

            (4). 为仓库生成元数据文件,以使能够作为仓库使用

                  命令:createrepo /.../.../ 

                        例如:createrepo/var/www/html/zabix/

                   注:命令后跟的目录是包所在目录,createrepo若没有安装则需要安装

            (5).配置yum客户端使用此仓库

                 1. 创建repo文件:touch /etc/yum.repos.d/zabix.repo 

                2. 写入repo文件,例如:

                        [base]

                        name=zabix repo

                        baseurl=http://192.168.161.160

                        gpgcheck=0

                        enabled=1

                    注;baseurl项地址为服务器主机地址

你可能感兴趣的:(yum机制,yum命令使用,自建yum仓库)