linux基本操作之yum程序包管理器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基本操作之yum程序包管理器相关的知识,希望对你有一定的参考价值。

在Centos系统中,程序包管理器的核心是rpm:
        其后端所使用rpm命令行工具;
        前段使用yum命令行工具或dnf命令行工具;


程序包管理的前段工具:
    RHEL/Centos系列发行版linux中,yum和dnf;

    yum命令行工具:
        Yellow dog updater Modifier

    软件仓库:Package Repository
        在软件仓库中,存放有大量的rpm程序包,将所有的rpm程序包的属性信息提取出来,保存于xml格式的文档之中;

    利用URL标记并定位软件仓库的位置,并且可以直接读取和缓存软件仓库中事先创建的xml文档的内容到本地;
        URL:统一资源定位符;
            schema://[[email protected]]hostname[:port][/PATH/TO/RESOURCE] [parameters][flag]
                schema:
                    http
                    ftp
                    file
                    ...

        yum是C/S架构的模型,服务器端其实就是软件仓库,客户端需要在指定的配置文件中填写正确的URL,以能够通过正确的协议访问到软件仓库中的各程序包;

        在服务器上,软件仓库其实就是一个目录,在目录中包含了程序包文件及与这些程序包对应的元数据文件;所有的元数据文件统一放置于名为"repodata"目录中;

            createrepo命令:
                createrepo [options] <directory>

            在客户端上,使用配置文件到服务器的URL指向:
                yum的主配置文件:/etc/yum.conf
                yum的片段配置文件: /etc/yum.repos.d/*.repo
                    片段配置文件拥有ini风格的配置模式:即分段式配置内容;
                        1.使用"[repositoryid]"唯一标识出软件仓库;
                        2.其他的配置信息都类似于变量的复制,即key=value;
                        3.在软件仓库的标记下面的所有的配置信息都针对其上面的仓库生效,直到遇到下一对"[]"为止;

                    每个片段配置文件中,都可以配置一个或多个仓库的指向:而且,yum程序在查找各个仓库的时候,每一次都可能会查找多个yum仓库,并且从所有的可以使用的仓库中选择所需程序的最新版本并缓存到本地进行安装、升级等操作:
                        同一个repoid下的多个仓库被称为镜像,只有一个仓库会被使用;
                        多个不同的repoid的仓库,可以同时被使用;

                    .repo文件的内容格式:
[repositoryid]
name=Full name of Repository
baseurl=schema1://hostname/PATH
                schema2://hostname/PATH
                ...
enabled={0|1}
gpgchecck={0|1}
gpgkey=schema://hostname/PATH/TO/PUBLIC_KEY
 如:gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-Centos-7
failovermethod={roundrobin|priority}
技术分享图片yum命令行工具:
    yum - Yellowdog Updater Modified
     command is one of:
        * install package1 [package2] [...]
        * update [package1] [package2] [...]
        * update-to [package1] [package2] [...]
        * update-minimal [package1] [package2] [...]
        * check-update
        * upgrade [package1] [package2] [...]
        * upgrade-to [package1] [package2] [...]
        * distribution-synchronization [package1] [package2] [...]
        * remove | erase package1 [package2] [...]
        * autoremove [package1] [...]
        * list [...]
        * info [...]
        * provides | whatprovides feature1 [feature2] [...]
        * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
        * makecache [fast]
        * groups [...]
        * search string1 [string2] [...]
        * shell [filename]
        * resolvedep dep1 [dep2] [...]
           (maintained for legacy reasons only - use repoquery or yum provides)
        * localinstall rpmfile1 [rpmfile2] [...]
           (maintained for legacy reasons only - use install)
        * localupdate rpmfile1 [rpmfile2] [...]
           (maintained for legacy reasons only - use update)
        * reinstall package1 [package2] [...]
        * downgrade package1 [package2] [...]
        * deplist package1 [package2] [...]
        * repolist [all|enabled|disabled]
        * repoinfo [all|enabled|disabled]
        * repository-packages <enabled-repoid>  <install|remove|remove-or-reinstall|remove-or-
       distribution-synchronization> [package2] [...]
         * version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo
       ]
         *  history  [info|list|packages-list|packages-info|summary|addon-info|redo|undo|roll‐
       back|new|sync|stats]
        * load-transaction [txfile]
        * updateinfo [summary | list | info | remove-pkgs-ts | exclude-updates | exclude-all |
       check-running-kernel]
        * fssnapshot [summary | list | have-space | create | delete]
        * fs [filters | refilter | refilter-cleanup | du]
        * check
        * help [command]

  -y, --assumeyes:对于yum执行过程中与用户交互的问题,全部以"yes"回答;
  -q, --quiet:安静模式,在一次安装事务中,不输出任何信息;
  --enablerepo=repoidglob:
      即使被指定的repoid是被禁用的,也可以通过该选项将其启用;
  --disablerepo=repoidglob:
      即使被指定的repoid是正常启用的,也可以通过该选项将其禁用;
  --noplugins:在yum执行过程中,明确指出不使用任何插件;
  --nogpgcheck:在yum执行过程中,明确指出不进行程序包完整性认证;

  command is one of:

        安装程序包
          * install package1 [package2] [...]
    
        注意:
            1.如果启用安装时仅给出程序名称,并没有给出程序版本,平台类型及操作系统类型等信息的话,yum将会搜索所有的处于启用状态的仓库,并找到版本最新的程序包进行安装;
            2.如果启用安装时给出的是带有程序版本,平台类型及操作系统类型等信息的程序名称,则在所有的仓库中查找与之完全匹配的程序包进行安装;
            3.如果启用安装时给出的是完整的程序包名称,则只能查找特定的程序包进行安装;
            4.程序包名或程序名可以使用通配符(Globbing),* ? [] [^]

            升级和降级安装程序包,让程序包在不同版本之间更迭;
          * update [package1] [package2] [...]
          * downgrade package1 [package2] [...]          
      
      卸载程序包
                * remove | erase package1 [package2] [...]

            查看程序包:
                * list [available|installed|all]

            查看程序包的相关信息:
                * info [...]

            清除本地相关缓存信息:
                * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

            手动构建本地缓存:
                * makecache [fast]

            显示所有可用的仓库的相关信息,如果缓存消失,则先缓存在显示;
                * repolist [all|enabled|disabled]

            模糊搜索:
                * search string1 [string2] [...]

            程序包组管理命令:
                * groups [...]
                    group install
                    group update
                    group list
                    group remove
                    group info

            显示指定程序包的所有的依赖关系:
                * deplist package1 [package2] [...]

            回复yum的安装事务
                * load-transaction [txfile]

        Fedora提供的第三EPEL仓库,到任何一个镜像站点下载epel-release-latest-7.noarch.rpm程序包,在linux本地使用rpm或yum直接安装,即可在/etc/yum.repos.d目录中生成一个epel.repo的配置文件;

        yum的repo配置文件中的常用变量:
            $basearch:当前计算机所使用的基础平台架构类型;
                i686
                x86_64(amd64)
                ppc
                ppc64

            $releasever:当前操作系统发行版本的主版本号;
                如:Centos 7.0-1511,其发行主版本号是7;
                        Centos 6.9,其发行版本号是6;

            $aech:平台架构类型

            $YUM0-$YUM9:yum内置的可以由用户自定义的10个变量;

以上是关于linux基本操作之yum程序包管理器的主要内容,如果未能解决你的问题,请参考以下文章

Linux程序包管理之yum源安装

rpm,yum程序包管理器

程序包管理的前端工具yum程序包管理器编译安装sed命令

软件包管理 2 -----基本知识 rpm yum

我的Linux,我做主!rpm包管理器/yum前端工具/编译安装从入门到精通

我的Linux,我做主!rpm包管理器/yum前端工具/编译安装从入门到精通