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

相关推荐

  • 误删除centos6.8内核修复全过程

    关于误删除系统内核或内核损坏修复教程,本教程主要详细描述系统内核或内核损坏修复过程中步骤详解 一.操作环境 硬件:华硕笔记本 软件:VMware Workstation Pro 12版本  Centos 6.8.iso镜像 二,修复步骤 第一步,我们先要挂载centos6.8的镜像,然后光盘启动 进入系统救援模式 进入当前系统的根目录 我们需要手动…

    Linux干货 2016-09-05
  • MySQL/MariaDB基于MMM实现读写分离及高可用

    前言 MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)。 MMM 优缺点 优点:高可用性,扩展性好,…

    Linux干货 2015-06-24
  • 第七周

    第七周 1 创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动…

    Linux干货 2017-02-20
  • Linux的用户组和权限(一)

    导读:本章主要内容如下       1.解释Linux的安全模型      2.解释用户账号和组群账号的目的      3.用户和组管理命令      4.理解并设置文件权限 &n…

    Linux干货 2016-08-04
  • 网络基础

    计算机网络     计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 1、网络通信设备     网络通信设备种类繁多,且日新月异,网络通信设备通常由网络线缆、网卡、集线器、中继器、网桥、交换机、路由器等组成。 网桥(Bri…

    Linux干货 2016-12-16
  • LVM逻辑卷&RAID管理&磁盘配置详解

    LVM逻辑卷管理 应用场景:想象一下,你通过传统的硬盘分区方式为某些用户提供了一块磁盘,随着用户数据的不断增加,分区的容量告急。这时要增加容量,只能选择用另一块容量更大的硬盘或分区来替换,在这个过程中,你需要将数据先拷贝至新设备,拷贝完成之后,再用新设备替换容量告罄的设备。假设你很有耐心并且整个数据的拷贝过程是顺顺利利的,你也需要考虑靠背后文件的权限变化、替…

    Linux干货 2016-09-02