yum前端软件包管理器

yum是什么

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

yum工作机制

    C/S架构:client –> server

    yum仓库(server端):

        保存rpm包以及元数据,如:包名、版本信息、各包所包含的文件列表、依赖关系、包分组信息等。

    yum客户端(client端):以安装过程为例

        第一步:获取仓库元数据,缓存于本地,缓存目录/var/cache/yum

        第二步:yum客户端读取并分析本地缓存的元数据文件,结合本地系统环境做出要安装的程序包的决策,如依赖关系

        第三步:根据决策联系yum仓库,下载各程序包缓存到本地,一并进行安装

yum仓库:

    可以理解为rpm包的文件服务器,repodata目录所在的父目录就是一个可用仓库。

    自建一个yum仓库:

        1、把rpm包放到一个目录

        2、通过createrepo命令分析该目录的rpm包,然后生成元数据目录repodata

        3、配置yum客户端使用此仓库即可,就是这么简单。

yum客户端:

    要想通过yum管理rpm包,需要读取yum仓库的配置文件,指明仓库访问路径及各种属性信息

    主配置文件:/etc/yum.conf

    一个或几个相关仓库的配置信息可保存为一个文件,文件名以.repo结尾:/etc/yum.repos.d

    文件格式:

[REPOID]
name=Some name for this repository    #设置该yum仓库的名称
baseurl=url://server1/path/to/repository/           #方式1:指定yum仓库访问路径,支持多种url,如:ftp、nfs、http等,可指定多个url
        http://mirror.centos.org/centos/$releasever/os/$basearch/     #URL中也支持$releasever 、$basearch这样的变量,指定系统版本号
        mirrorlist=/path/to/urlfile        #方式2:可以将多个url写入一个文件,然后读取这个文件    
enabled={0|1}        #是否启用该yum仓库,0为不启用,1为启用,默认为1
gpgcheck={0|1}       #是否校验rpm包,0为不启用,1为启用
gpgkey=URL           #如果校验,指定公钥文件路径

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

          $releasever: 程序的版本,对Yum而言指的是redhat-release版本;只替换为主版本号,如RedHat 6.5,则替换为6;
          $arch: 系统架构
          $basearch: 系统基本架构,如i686,i586等的基本架构为i386;
          $uuid:
          $YUM0-9: 在系统中定义的环境变量,可以在yum中使用;

    一个配置文件支持多个yum仓库

    1、列出所有repo

[root@qin ~]# yum repolist  {enabled|disabled|all}      #enabled列出可用的,disabled列出禁用的,all列出所有(默认)

    2、列出rpm包及包组

[root@qin ~]# yum list {all|installed|available}    #all列出所有包(默认),installed列出已安装的包,available列出可安装的包
[root@qin ~]# yum list KEYWORD*    #列出指定前缀的所有包,支持文件名通配

    3、包的描述信息

[root@qin ~]# yum info package_name

    4、列出所有包组信息

[root@qin ~]# yum grouplist

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

[root@qin ~]# yum groupinfo "GROUP NAME"

    6、清理缓存

[root@qin ~]# yum clean {all|packages|metadata|expire-cache|rpmdb|plugins}

    7、安装程序包

[root@qin ~]# yum install package_name
[root@qin ~]# yum reinstall package_name    #重新安装

    8、包的升级和降级

[root@qin ~]# yum check-update    #检查可用的升级包
[root@qin ~]# yum update package_name    #可以指定升级包的版本号升级;如果不指定包名,就升级所有可用的升级包
[root@qin ~]# yum downgrade package_name    #包降级

    9、包的卸载

[root@qin ~]# yum {remove|erase} package_name

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

[root@qin ~]# yum {whatprovides|provides} /path/to/somefile

    11、安装包组

[root@qin ~]# yum groupinstall "GROUP NAME"

    12、卸载包组

[root@qin ~]# yum groupremove "GROUP NAME"

    13、只下载包,不安装

[root@qin ~]# yumdownloader package_name    #此命令由yum-utils包提供

    14、另外一些常用选项介绍

--nogpgcheck    #不对包做校验
--disablerepo=[repo]    #安装时禁用某些yum仓库
-y:    #对所有交互式操作返回yes
[root@qin ~]# yum history    #显示yum的历史记录
[root@qin ~]# yum history list X    #X是历史事务ID,显示指定事务明细操作
[root@qin ~]# yum history redo X    #重新执行指定事务
[root@qin ~]# yum history undo X    #回滚指定事务
[root@qin ~]# yum makecache         #生成元数据
[root@qin ~]# yum search  STRING    #查找包含指定关键字的包

原创文章,作者:秦,如若转载,请注明出处:http://www.178linux.com/4241

(0)
上一篇 2015-05-13 18:37
下一篇 2015-05-13 18:39

相关推荐

  • 第七周博客作业

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; [root@localhost tmp]# cat /proc/partitions major minor #blocks name 8 16 52428800 sdb 8 17 1049041…

    Linux干货 2017-03-06
  • bash编程初体验(三)

    bash编程初体验之for for while until 概述 本文将介绍以for为代表的循环语句在shell 脚本中的应用,常见的循环语句有for, while,until,作为循环语句,顾名思义,它就是重复地做一件事,直到满足某一条件而退出;另外,还有两个循环控制语句continue与break来配合循环语句,以实现临时中断或跳出循环的功能;以下为fo…

    Linux干货 2016-08-24
  • 马哥教育网络班21期+第12周课程练习

    1、请描述一次完整的http请求处理过程; 建立或处理请求:接受请求或拒绝请求; 接收请求:接收来自于网络的请求报文中对某资源的一次请求的过程; 处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息; 访问资源:获取请求报文中请求的资源; 构建相应报文; 发送响应报文; 记录日志 2、httpd所支持的处理模型有哪些,他们分别适用于哪些环境。 …

    Linux干货 2016-10-24
  • 为什么中国的网页设计那么烂?

    Nick Johnson,一个有12年经验的Web设计师在它的blog里写下了“Why is Chinese Web Design So Bad”,新浪,人人,百度,阿里巴巴,腾讯榜上有名。其中的观点相当的好,希望所有的中国人都读一下。我不全文翻译了,只是给大家看一些摘要。(保证不会像《环球时报》一样) —————————— 作者2005年的夏天来到中国,他…

    Linux干货 2016-07-11
  • 聊聊CentOS6的启动过程

    前言:     作为一个合格的运维人员,系统的启动过程我们需要牢记在心,此文不深入探讨,只求大致理解CentOS6的启动过程。 一张图带你了解CentOS6的启动过程 注意:图片放大查看效果更佳 上图各阶段详解 POST:计算机开机时BIOS对其各硬件的简单测试,测试各硬件的完整性 BootSqunce:加电自检后根据…

    Linux干货 2016-03-14
  • N22-第一周(作业)

    马哥教育网络班22期-第一周课程练习:   一.描述计算机的组成及其功能       计算机组成:CPU :包含控制器,运算器,寄存器,缓存。通过时序复用的方式来处理加工来自输入设备的指令或数据,协调各组件之间的工作       存储器(内存):编址存储单元阵列,用于暂时存放CP…

    Linux干货 2016-08-13