码迷,mamicode.com
首页 > 其他好文 > 详细

程序包管理之yum的用法

时间:2015-12-24 00:46:36      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:yum linux it

程序包管理之yum的用法:


yum(全称为 Yellow dog Update Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。

工作机制

基于RPM包管理,能够从配置文件中指定服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次性安装所有依赖的程序包,无须繁琐地一次次下载、安装。

当yum接收到用户的安装指令后,yum将会通过读取配置文件中的信息并从指定的远程服务器上下载该程序包,并会分析该程序包的依赖关系并同时下载改程序包所依赖的程序包,下载到本地后,yum会自动执行rpm命令,对安装包进行安装,完成之后将会清除这些安装包,但并不会删除缓存元数据,这样一来当我们下次再次需要下载这类程序包后,yum会自动分析元数据,加快速度节省网络带宽。同时,yum不仅可以从指定的服务器上下载RPM包,而且能够在本地自建yum源库,可以将本地所有下载的RPM包存放到此处,以便本地所有服务器使用这些本地所有的RPM包。


但是yum客户端也有一定的弊端,当yum在远程服务器上下载安装包的时候因为一些原因导致传输中断之后,当下次重启之后我们并不能知道这些程序包是否被安装成功了。


如何使用yum

第一:我们要想用yum管理程序包,首先在本地客户端上我们要有yum客户端

第二:我们要手动设置yum的配置文件

第三:我们要指定互联网上的yum仓库或者指定本地的yum仓库

         yum仓库:yum repository(yum repo),存储了众多的rpm包,以及包相关的元数据文件,放置于                                  repodata目录下。

         yum仓库文件服务器指向:

                              ftp://

                              http://

             nfs://

            file :///(本地服务器)

配置yum客户端程序文件

     首先我们要确定系统中已经安装yum程序包,如图:   

           技术分享

     可以使用rpm -qc yum查询yum的配置文件,如图可以看出,技术分享

yum的配置文件在/etc/yum/conf,该文件使用了包含指令,包含了/etc/yum.repos.d/*.repo文件,将配置文件分成了多段,/etc/yum/conf为所有仓库提供公共配置,是yum命令自己的配置文件。又可以同时存在多个仓库在/etc/yum.repos.d/*.repo文件中,有安装程序包需要的时候,yum会从这些仓库中寻找版本最新的一个,一个repo文件中也可以指定多个仓库,但创建多个仓库可以便于管理。


我们可以查看/etc/yum.conf文件,如图:

技术分享        [main]下面定义了yum自己的配置,

               cachedir=/var/cache/yum/$basearch/$releasever缓存目录

               keepcache=0安装完成后删除缓存文件

               debuglevel=2调试级别

               logfile=/var/log/yum.log安装完成后yum的日志文件指向

               exactarch=1精确匹配平台

               obsoletes=1

               gpgcheck=1检查包完整性

               plugins=1支持插件

               installonly_limit=5同时安装5个文件

               bugtracker_url=http://bugs.centos.org/set_project.php?                                project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum  bug追踪地址

              distroverpkg=centos-release发行版版本CentOS


               in /etc/yum.repos.d表示yum库存放的目录

                   (可以man yum.conf查看详细说明)


       (默认的yum公共配置文件一般不需要修改,但我们需要配置yum库文件)


设置yum repos配置文件:


仓库配置文件的定义(主要内容):

         [repositoryID] (仓库id)

        name=Some name for this repository(仓库的名称)

        baseurl=url://path/to/repository/(仓库访问的url路径,可以设置多个路径,http,ftp,                              nfs,file)

        enabled={1|0}(是否启用此仓库,默认启用)

gpgcheck={1|0}(是否检查程序完整性和来源合法性)

gpgkey=URL(指明秘钥文件)

enablegroups={1|0}(是否启用基于组批量管理程序包,默认开启)

failovermethod={roundrobin|priority}(故障转移方法)

     默认为:roundrobin,意为随机挑选;

                                         priority:按照优先级,从第一个开始依次挑选;

cost=(程序开销数字)(默认为1000)


根据这些选项我们可以自己定义yum仓库,如图

技术分享


定义完之后就可以用使用yum命令了

yum repolist查看yum仓库的详细列表,如图:

技术分享

yum 命令yum [options] [command] [package ...]

              [command]:

                 显示仓库列表

                        repolist [all | enabled | disable]:默认显示已经启用的仓库列表。

                                   如图,显示可用的仓库:

技术分享

                 显示程序包列表

                         list [all | glob_exp1][....]可以显示全部程序包或者根据通配符查找匹配到的程序包

                         list {available | installed | updates} [glob_exp1] [..]显示可用的或已经安装或可更新的程序包,后 面也可以跟通配符。

                    如图,显示已经安装的程序包:

技术分享

        安装程序包:

           install package1[package2][...]:安装程序包

           reinstall package..重新安装程序包

        如图,安装gcc程序包,会列出所有依赖关系并一块安装有依赖关系的安装包,同时会有             是否安装的提示,键入y安装,否则不安装。

技术分享

技术分享

       升级程序包

           update [package1][...]

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

       检查可用升级

           check-update

        如图:查询可用升级

技术分享        卸载

           remove|erase package1[package2][...]

         如图:卸载gcc,和安装程序包时一样都有询问是否卸载

技术分享        键入y命令,提示卸载成功如图:

技术分享

       查看程序包informations

           info [package](类似于rpm -qi [package]的命令)

          查看gcc程序包的简要信息:如图:

技术分享

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

           provides|whatprovides feature1 [feature2] [...]

           

           查看zsh是由哪个程序包提供的,如图:技术分享 

        清理本地缓存: 手动清除元数据          

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

 

        构建缓存

           makecache

          搜索

           search string1 [string2] [...]以指定的关键字搜索程序包名及summary

          搜索关于zsh关键紫的程序包和简要信息:如图

技术分享

        查看指定包所依赖的capabilities

          deplist package1 [package2] [...]

            查看zsh所依赖的关系分析:

技术分享


           查看yum事务历史

history[info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats ]  history有很多子选项,可以指定查看yum历史信息中的很多内容,查询安装包信息并不会产生yum事务,下载升级或卸载等改动性操作才会记录在yum事务中。默认查看list。如图:

技术分享


           安装及升级本地程序包:安装本地下载下来的安装包而不是yum库中的安装包,而且能解决该本地程序包的依赖关系。(CentOS6之后yum install就具有该命令功能了,仅仅为了兼容而留下来的命令,直接使用yum install也能解决本地程序包的依赖关系)

        * 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 [...]包组信息

  Installed Groups表示已经安装的包组,如图

技术分享

    Installed Language Groups表示已经安装的元组,如图:

技术分享

   Available Groups表示可安装的包组,如图:

技术分享

  Available  Language Groups可安装的元组:

技术分享


           yum的命令行选项

                 --nogpgcheck:禁止进行gpgcheck,命令行强于yum仓库配置文件中的设定

                 -y: 自动回答为“yes”;

                 -q:静默模式;

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

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

                 --noplugins:禁用所有插件;


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

  为了各种平台和发行版方便设置repo配置文件

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

    $arch: 平台;

    $basearch:基础平台;

    $YUM0-$YUM9:自定义的变量

使用变量后系统可以自动识别当前系统版本号,和平台型号,从而可以根据不同型号从远程服务器上获的yum元数据  如图:

技术分享


      创建yum仓库(手动创建yum本地仓库):

            createrepo [options] <directory>

      (系统中没有createrepo命令的话用yum install安装)


创建目录为当前目录,系统会把当前目录下的rpm包的元数据存放在当前目录的repodata目录下,如图:

     技术分享

执行创建repo命令后,会在本地生成mydata目录并把当前目录下的rpm安装包的元数据存放进去,如图:

技术分享

创建完成之后我们就可以设置当前这个目录为yum源来使用




   如何使用光盘当作本地yum仓库(发行版的光盘中都包含repodata文件):

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

    

          (2) 创建配置文件

               [repoid]

                name=

                baseurl=file:///media/cdrom(repodata的目录)

                gpgcheck=

                enabled=

    (和上述配置远程服务器yum源方式一样)


总结:yum作为rpm包管理器的前端工具具有强大的功能,不仅可以实现从远程服务器中下载程序包并安装,而且还能分析依赖关系并解决依赖关系,但意外终止后无法查知程序包安装情况的弊端注定要被另一款dnf工具所取代

    

程序包管理之yum的用法

标签:yum linux it

原文地址:http://tz666.blog.51cto.com/10990100/1727694

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!