程序包管理;

        在指定系统中进行程序的安装,卸载,升级,查询及校验等工作,


     不同的linux发行版本,有着不同的程序包管理器;


       Debian;dpt,Debian package Toolkits, dpkg工具, .deb后缀名的包文件

       Redhet;rmp,Redhat package Manager , rpm工具, .rpm后缀名的文件

         rpm成为linux的程序包管理器的行业标准;

         rpm是使用perl语言编写的,用C语言重新rpm,

         rpm is package manager

       S.U.S.E;rpm, .rpm后缀名的文件


       Gentoo;采用了FreeBSD的portage的程序包管理机制,emerge的工具

       ARchlinux;pacman


     以centos为例,rpm程序包管理器的相关内容;


     centos的程序包管理器

        程序包的命名规则;

           源代码包;

              software_name-VERSION.tar.gz

              VERSION;major.minor.release

               major;主版本号,通常代表重大功能改进的版本分支;

               minor;次版本号,通常代表在某个版本的分支中的某个功能发生变化;

               release;发行版本号,修复了某些bug或者对某段代码进行了优化;


        rpm程序包命名规则;

           源码包;

            software_name-VERSION.src.rpm

           二进制包;

            software_name-VERSION-[release].[os].arch.rpm

              VERSION;major.minor.release

              [release];rpm封包的发行版本

              [os];所支持的操作系统版本,

              arch;硬件平台类型,


          在制作rpm程序包的时候,通常其制作者会采用分包技术来构建rpm程序包;

          根据程序的不同功能,构建多个程序包;


    被分包的程序包分为两类;

        主程序包;

           software_name-VERSION-[release].[os].arch.rpm

        附属功能包;

           software_name-function-VERSION-[release].[os].arch.rpm


         一般来讲,主程序包和附属功能包具有相同的版本号,发行版本号,操作系统及兼容平台的标识

         所以,主程序包往往被所以的附属功能包所依赖,不安装主程序包就不能安装附属功能包;


         function;devel,utils,libs,tools,manual,....


       依赖关系;

        A --> B --> C --> D --> A 依赖黑洞


        程序包管理的前端工具;

           RHEL|Centos系统的前端管理工具;yum,Yellow dog update midifier

             yum在实施安装,卸载,升级等工作的时候,会开启事务;

             所谓事务,将整个操作过程视为一个整体,要么全执行,要么全不执行


             Fedora 22+;dnf


           Debian系前端工具;apt-get,apt-cache

              apt-get:实现安装,卸载等功能;

              apt-cache;实现基于关键字进行搜索功能,管理本地缓存的元数据

           Suse前端工具;zypper