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)
上一篇 2016-08-24 10:12
下一篇 2016-08-24 10:12

相关推荐

  • httpd服务——CentOS7

    httpd-2.4 新特性:      (1)MPM支持运行为DSO机制;以模块形式按需加载      (2)event MPM生产环境可用      (3)异步读写机制      (4)支持每个模块…

    Linux干货 2016-10-12
  • LVS 之 初识LVS

    LVS 之 初识LVS LVS 之 初识LVS 0x00 概述 0x01 LVS拓扑结构图: lvs集群类型中的术语 : 0x02 lvs-type lvs-nat lvs-dr lvs-tun lvs-fullnat : 0x03 调度算法(scheduler) 0x00 概述 LVS : Linux Virtual Server lvs 工作在 IOS …

    2017-05-11
  • 沉舟侧畔千帆进,枯木头前万树春

    N21第五周博客作业 1、  显示/boot/grub/grub.conf中以至少一个空白字符开头的行; ~]#  grep -E "^[[:space:]]+" //boot/grub/grub.conf root (hd0,0) kernel /vmlin…

    Linux干货 2016-07-29
  • 系统启动流程

    CentOS 5和6的启动流程服务管理Grub管理自制Linux启动排错编译安装内核 系统启动流程:  POST –> 读取BootSequence (BIOS),决定引导次序 –>读取引导设备的Bootloader(MBR grubstage1–>stage1.5/boot…

    Linux干货 2016-09-13
  • Samba详解

    samba详解 yum list all | grep samba yum info samba yum -y install samba 服务端程序包:samba nmbd smbd rpm -ql samba-common rpm -ql samba-common-tools 主配置文件:/etc/samba/smb.conf systemd unit …

    Linux干货 2017-10-21
  • N25-第五周作业

    第五周 1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@zf ~]# grep -E "^[[:space:]]+[[:alnum:]]+" /boot/grub/grub.conf     &n…

    Linux干货 2016-12-26