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
下一篇 2016-08-24

相关推荐

  • N25-第十三周博客作业

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu;2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;3)添加samba用户gentoo,centos和ubu…

    Linux干货 2017-04-19
  • cut命令练习总结

    cut命令的作用是实现文本内容的切割,原内容或者原文件不受影响。   cut小练习:                       2016年 07月 …

    Linux干货 2016-07-22
  • 优云携手网易云 助力企业“互联网+”转型

    12月16日,网易旗下“网易云”首届“网易云聚,共创未来”合作伙伴大会在网易杭州园区举行,优云(uyun.cn)成为首批授牌20家企业之一,并作为核心合作伙伴代表现场签署了合作伙伴协议。 右二为优云软件运营经理 柴勇 现场签署合作伙伴协议 会上,网易杭州研究院执行院长汪源介绍了网易云的战略生态全境,提出“产品体系+培训体系+服务体系”的网易云三大核心竞争力,…

    Linux资讯 2017-03-15
  • tcpdump诊断nginx问题

    自从上级公司离职后,快一年的时间没有写php程序和搭建LNMP环境,一直在做db运维和运维工具开发方面的事情。 最近决定开发开发一些自动话方面工具,重新拾起php,于是在测试机上搭建一个LNMP环境。 1、 nginx 404错误 一般的出现404错误,找不到页面资源。首先用strace排除了存在文件访问权限的问题,其次nginx的root参数设置也没有任何…

    Linux干货 2016-05-03
  • Linux系统用户、组

    1、资源分派:          Authentication  认证        Authorization   授权     &nbs…

    Linux干货 2016-08-04
  • 三.Linux博客-2016年7月24日帮助、history、别名、tree

    格式说明: 操作 概念 命令 说明及举例 三-1.帮助、history、别名、tree touch /etc/nologin 使普通用户不能登录(创建了一个文件,删掉就可以登陆)   ll /etc/nologin 查看那个文件 -rm -f /etc/  删…

    Linux干货 2016-08-23