一、什么是YUM

    YUM的全称为 Yellowdog Update Modifier,其主要目的是为了解决RPM包安装时的依赖关系的问题。YUM只是一个用于软件安装的前端工具,其主要的服务对象还是RPM软件包。

    YUM采用C/S架构,即客户端与服务器的模式,下面分别进行说明。

二、YUM客户端

    1、工作原理

        1)获取仓库元数据

            yum会先将仓库的元数据缓存于本地的/var/cache/yum目录中。

        2)安装程序包

            yum客户端程序在本地分析元数据文件,并结合本地系统环境(已安装的包)做出要安装的程序包的决策。

        3)获取程序包

            根据决策联系yum仓库,下载各程序包缓存于本地后,一并进行安装。

    2、配置客户端

        1)主配置文件(中心配置文件):/etc/yum.conf。

            通常不需要进行修改,保持其默认配置即可。

        2)提供repo配置文件,指明仓库访问路径及各种属性信息。

            在目录/etc/yum.repos.d/目录中创建.repo文件,其格式如下:

                [REPOID]            任意字符即可;

                name=自定义         任意字符即可;

                baseurl=ftp://      指明yum仓库的位置,支持服务器的类型包括ftp,nfs,http,file;

                        file:///    当用多个yum仓库时,可在每一行指定一个baseurl;

                enabled={0|1}       是否启用此repo的配置,默认为enabled=1;

                gpgcheck={0|1}      是否启用校验;

                gpgkey=URL          如启用校验,应指明密钥的位置;

                cost={1..n}         默认为1000,指定访问此仓库的开销;

    3、yum客户端命令的使用

        1)列出所有可用repo

            yum repolist {enable|disabled|all}

        2)列出rpm包

            yum list {all|install|available}

        3)包的描述信息

            yum info Package_name

        4)列出所有包组信息

            yum grouplist

        5)显示包组的信息:例如组中包含的程序包列表

            yum groupinfo “group_name”

        6)清理缓存

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

        7)安装程序包

            yum install package_name

        8)重新安装程序包

            yum reinstall package_name

        9)升级

            检查可用的升级包

                yum check-update   

            升级软件包  

                yum update package_name

            指定软件包升级的版本    

                yum downgrade package_name

        10)卸载

            yum remove|erase package_name

        11)查询某文件是由哪个包安装生成的

            yum provides filename

        12)安装包组

            yum groupinstall “group name”

        13)卸载包组

            yum groupremove “group name”

三、YUM仓库       

    1、yum仓库类型

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

        updates库:为软件提供更新程序包。

        epel库:提供额外的程序包。

    2、yum仓库的服务器类型

        ftp服务器

        http服务器

        nfs服务器

        file本地服务器

    3、自建yum仓库

        yum仓库所在的目录中必须是repodata目录所在的目录,下面来举例说明:

        1)基于光盘镜像的repo

            在CentOS 6的光盘镜像中已经制作好了repodata目录,我们只需将yum源的路径指向挂载目录即可。

            此方法适合于创建本地的yum仓库。      

         2)基于服务器的repo

            下面以http服务为例创建yum仓库:

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

        (2)  在httpd的文档根目录/var/www/html中创建子目录,用于存放某相关rpm包;

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

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

        使用yum安装hadoop进行测试: