yum详解

    yum(全称为 Yellow dog Updater, Modified)yum相对于rpm来说:rpm为基础包管理器,yum则是rpm的前端工具。能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。,yum无法独立存在,系统不允许有两个yum命令同时运行,如果有两个,第二次运行时会报错。这是为了防止yum之间的冲突。

    yum接收到需要安装的程序包的名称之后,通过文件共享协议(或者文件传输协议),在配置文件中指向的yum仓库(可以是多个)中查询需要的程序包。找到之后,通过文件下载协议,将程序包下载至本地yum的缓存目录中,当安装完成后,缓存目录便会被删除

    但如果yum每次到yum仓库都需要遍历,就会导致速度很慢。而yum仓库中有两类数据:程序和程序的元数据。yum仓库在创建时,会将所有程序的名字、大小、版本以及依赖关系这类的属性信息提取出来并保存至repodata目录中。所以在yum第一次访问yum仓库时,会获取仓库中元数据(repodata),并下载至本地。因此,下次需要安装程序包时,只需从本地缓存中获得信息,直接到仓库下载即可

    如何保持本地缓存repodata和服务器端的repodata实时同步呢?yum每次访问仓库都会先获取repodata目录中每个文件的特征码,并与本地的进行比较,如果不相同,就重新下载并覆盖


yum repository:yum repo

存储了众多的rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata);

文件服务器

    URL:统一资源定制地址    

ftp://

http://

nfs://

file://


yum客户端

rpm -q yum :查询本地是否安装了yum客户端,如果安装了则可以使用yum功能

rpm -qc yum :查询yum的配置文件

    blob.png


配置文件:

    指向仓库的位置以及相关的各种配置信息。每个yum命令行可以同时指向多个仓库,仓库间可以进行优先级等相关配置,优先级是由开销决定的。

   配置文件有两部分组成:主配置文件以及各仓库的配置文件。因为如果所有的配置信息都放在一个文件中就显得太臃肿、不方便。其中主配置文件所在路径为/etc/yum.conf,它为各仓库指向提供公共配置文件;而各仓库的配置文件所在路径为:/etc/yum.repos.d/*.repo,里面都是以赋值的格式存在

/etc/yum.conf:为所有仓库提供公共配置

/etc/yum.repos.d/*.repo:为仓库的指向提供配置信息

仓库指向的定义

[repositoryID]

name=some name for this repository

baseurl=url1://path/to/repository/仓库指向的路径

url2://path/to/repository/

url3://path/to/repository/

enabled={1|0}:是否启用此仓库;默认为启动

gpgcheck={1|0}:是否检查完整性及来源合法性

repogpgcheck={1|0}:是否检测源数据文件的gpgcheck

gpgkey=URL:检查所需的密钥文件

enablegroup={1|0}:是否支持在此仓库上使用组:默认为启用 

failovermethod={roundrobin|prioity}:轮循,优先级取安装包路径;默认为roundrobin(轮循),意为随机挑选。

cost=1000(默认)开销     

        1:表示开

    0:表示关

yum命令

yum [options] [command] [package …]

  显示仓库列表:

     repolist [all|enabled|disabled]

  显示程序包

     list

        yum list [all | glob_exp1] [glob_exp2] […]

        yum list available|install|updates [glob_exp1] […]

  安装程序包

     install

        安装时可以指定版本号

        reinstall package1 [package2] […](重新安装)

  升级程序包

        update [package1] [package2] […]

        downgrade package1 [package2] […](降级)

  检查可以升级

        check-update

  卸载程序包

        remove | erase package1 [package2] […]

  查看程序包的infomation

        info […]

  查看指定的特性(可以是某文件)是由哪个程序包提供;

        provides | whatprovides feature1 [feature2] […]

  清理本地缓存:

        clean [ packages | metadata |  expire-cache  |  rpmdb  | plugins | all ]

  构建缓存:

       makecache

  搜索:

       search string1 [string2] […]

       以指定的关键字搜索程序包名及summary信息;

  查看指定包所以来的capabilities

       deplist package1 [package2] […]

  查看yum事物历史

       history   [info|list|packages-list|packages-info|sum-mary|addon-info|redo|undo|rollback|new|sync|stats]

  安装及升级本地程序包

       localinstall rpmfile1 [rpmfile2] […](maintained for legacy reasons only – use install)

       localupdate rpmfile1 [rpmfile2] […](maintained for legacy reasons only – use update)           

  包组管理的相关命令:

       groupinstall group1 [group2] […]

       groupupdate group1 [group2] […]

       grouplist [hidden] [groupwildcard] […]

       groupremove group1 [group2] […]

       groupinfo group1 […]

       mount -r /dev/cdrom /media/cdrom

       mount 挂载

  yum的命令行选项

        –nogpgcheck:禁止进行gpg check;

        -y:自动回答为“yse”

        -q:静默模式

        –disablerepo=repoidglob:临时禁用此处指定的repo

        –enablerepo=repoidglob:临时启用此处指定的repo

        –noplugins:禁用所有插件

    yum的repo配置文件中可用的变量

        $releasever:当前os的发行版的主版本号

        $arch:平台

        $basearch:基础平台

        $YUM0-$YUM9

        http://mirrors.mageedu.com/centos/$releasever/$basearch/os

  如何使用光盘当作本地yum仓库

      (1)挂载光盘至某目录,例如/media/cdrom

          #mount -r -t iso9660 /dev/cdorm /media/cdrom

      (2)创建配置文件

        进入/etc/yum.repos.d目录下创建一个名为.repo结尾的配置文件,并编辑以下信息

        [base]

           name=

           baseurl=

           gpgcheck=

           enabled=

           gpgkey=

        blob.png

        使用yum repolist查看yum仓库列表

        blob.png

        安装报错问题

     gpg key parsing failed:no key found in given key data

      使用yum makecache和yum update 解决,并且成功安装软件               blob.png 创建本地yum源仓库

    

    createrepo 选项 目录

      首先使用命令yum install createrepo安装createrepo文件,这个文件是可以帮我们组织和管理创建出rpm包的相关的repodata目录文件,

    blob.png

    然后使用lftp命令链接到FTP服务器上去下载rpm包(以教室环境为例)

    lftp 10.1.0.1:/pub/Sources/6.x86_64/xen4centos/x86_64/Packages> mget *.rpm 

    blob.png

    cd到下载RPM包的指定目录(目录需事先创建)中可看到刚才下载的包

    blob.png

    然后cd到下载包的目录中执行createrepo ./(直接指定当前工作目录)命令生成repo目录

    blob.png

    命令执行成功后及可在路径下看到已经生成了repodate目录

    至此!本地yum源已经创建完成了,此yum源可以放在ftp或http服务中被远程使用,也可以在本地使用。

    在/etc/yum.repos.d/base.repo将此yum源添加进配置文件

    blob.png

    使用yum repolist命令查看yum源列表可看到此源已经被添加,并且可以正常安装

    blob.png

    blob.png

命令整理

    

  • -y:自动回答为yes

  • list:列出所有仓库中的程序包,支持通配符

  • all:所有程序包

  • available:可用的,仓库中有尚未安装的

  • installed:已经安装的

  • clean:清理缓存。yum缓存路径:/var/cache/yum/

  • yum clean all:清除所有缓存信息,但不会清除目录

  • repolist:显示仓库列表及其简要信息

  • all:所有的仓库

  • enabled:已经启用的仓库

  • disabled:未启用的仓库

  • install:安装

  • yum install [-y] PACKAGE_NAME

  • remove|erase:卸载。和此程序包有依赖性的其他包也会被一并卸载

  • infoPACKAGE … :查询程序的相关简要信息。这个包装不装都没有关系,只要仓库中有就行

  • grouplist:列出所有包组

  • groupinstall:安装包组

  • 可直接用install、remove或update来管理包组,在包组前面加@用以区分:yuminstall @"Server Platform Development"

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/37963

(0)
M20-1马星M20-1马星
上一篇 2016-08-24 10:12
下一篇 2016-08-24 10:12

相关推荐

  • grep命令系列:grep中的正则表达式

     grep :是一款文本过滤工具 。其作用:根据用户指定的“模式”对目标文本进行逐个的匹配检查。  正则表达式 REGEXP:有一类特殊字符及文本字符所编写的模式,其中有些字符不表示字面的意义,而表示控制或通配的功能。    正则表达式分为两种:         基本正则表达式:…

    Linux干货 2017-04-10
  • 马哥教育首届IT技术博客大赛–复审阶段

    马哥教育首届IT博客大赛大众评审开始了 2016年马哥教育首届IT博客技术大赛,评委初审已结束,正式进入大众评审阶段。。。。 此次博客大赛,虽然因为准备时间比较仓促,举办经验略有不足(快去鄙视小编~😒),但还是收到了10多位优秀的小伙伴共80篇博文(看看人家的劲头,这就是差距呀😓)的参赛作品投递; 其中初审最高…

    Linux干货 2016-06-07
  • 8.1作业习题

    1,创建testuser uid 1234,主组:bin,辅助组:root,ftp,shell:/bin/csh home:/testdir/testuser useradd -u 1234 -g bin -G root,ftp -s /bin/csh -d /testdir/testuser testuser 2.修改testuser uid:4321,主…

    Linux干货 2016-08-04
  • keepalived实现lvs的高可用

    lvs可以做到内核级别的四层负载均衡,具有非常强悍的负载均衡能力。但是,当我们构建lvs的负载均衡集群的时候也会面临一些很严重的问题: lvs的单点故障:当lvs负载均衡器出现故障的时候,那么后端所有的服务器都将无法访问; lvs对后台服务器没有健康监测机制:当后台服务器宕机之后lvs还是会调度服务到后台的服务器; 所以我们就需要一款工具来解决以上问题。 k…

    2017-07-03
  • 马哥教育网络班21期-第六周课程练习

    请详细总结vim编辑器的使用并完成以下练习题1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; #cp /etc/rc.d/rc.sysinit /tmp #vim /tmp/rc.sysinit :%s/^[[:space:]]/#…

    Linux干货 2016-08-15
  • 磁盘配额

    磁盘配额 1 启用磁盘配额 首先创建新的分区 /dev/sd5,并创建文件系统。 [root@local ~]# mkfs.ext4 /dev/sda5 由于xfs 不磁盘配额能成功,这里使用ext4. 然后把/dev/sda5分区挂载到 /home [root@local ~]# mount /dev/sda5 /home [root@local ~]# …

    Linux干货 2017-05-02