首页 > 代码库 > rpm——软件包管理工具

rpm——软件包管理工具

  一、软件包管理简介 

    1软件包组成 

    我们都在windows系统中安装过软件,基本就是用鼠标点击下一步,因而有些人认为安装软件是一件非常容易的事,无论是在何种操作系统上。然而,事实并非如此。在Linux系统上安装软件的方法完全不同于在Windows上安装,至少不会是简单的用鼠标点击下一步就行了。要想在Linux系统上安装软件包,首先要了解软件包的组成。

    软件包由二进制程序、库文件、配置文件、帮助文件等重要部分组成。

    软件包的安装目录如下:

       二进制程序:

          默认:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, 

                /usr/local/sbin

          自定义:/usr/local/APP/{bin,sbin}

        库文件(开发库和运行库):

             默认:/lib64, /usr/lib64, /usr/local/lib64

          自定义: /usr/local/APP/lib

       配置文件:

          默认:/etc

          自定义/usr/local/APP/etc或conf目录

        帮助文件:

          默认:/usr/share/man, /usr/local/share/man           

          自定义:/usr/local/APP/man

    2软件包管理

    问:安装软件包时,会在很多不同的目录下存放文件,如果要卸载软件包,怎样才能卸载得干净呢?

    答:如果在安装软件包时,把安装存放软件包文件的目录记录下来,卸载时,根据这个记录就能把软件包卸载得干净。这就是软件包管理器中数据库的作用了!

    在Linux系统中,一般会使用软件包管理工具对软件包进行管理。        

    程序包管理器功能:将编译好的程序打包成一个文件或有限的几个文件,可用于实现安装、卸载、升级、查询等功能; 

     程序包管理器中应该包含:

       (1)数据库:

           程序名及版本

           程序的依赖关系:X --> Y,Z (X依赖于Y、Z)

           程序的功能性说明

           安装生成的各文件路径及校验码

       (2)程序的组成清单:

           文件清单

           安装卸载时运行的脚本

    常见的软件包管理器有:        

            Debian: dpkg,(以.deb后缀结尾)

          RedHat: rpm(redhat package manager),(以.rpm后缀结尾)

  二、rpm包介绍

    RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

    利用rpm软件包管理工具可以把软件包打包成rpm格式(以.rpm为后缀),rpm包可以用rpm工具统一管理。

    1、rpm包命名格式    

      rpm包命名格式name-version-relase.arch.rpm

        name : 表示软件包的名字,包括主包名和分包名           

                分包机制:

                核心包,主包:命名与源程序一致

                    bash-4.2.3-3.centos7.x86_64.rpm

                子包:(在主包名后加上子包的功能性描述字串)

                     bash-a-4.2.3-3.centos7.x86_64.rpm

                    bash-b-4.2.3-3.centos7.x86_64.rpm

                    bash-devel-4.2.3-3.centos7.x86_64.rpm

        version:包源代码的版本号          

                version:    major.minor.release

                主版本号.次版本号.源代码的发行版本号

          relaserpm自身的发行号,与程序源码的发行号无关,仅用于标识对rpm包不同制作的修订;同时,release还包含此包适用的OS

                        如:bash-4.2.3-3.centos5

        arch :该程序包使用的硬件平台

              如:x86: i386, i486, i586, i686等;

               x86_64: x86_64

               powerpc: ppc

               noarch: 依赖于虚拟机

    2、rpm包获取的途径       

        (1)发行的光盘或站点服务器

            镜像:

                http://mirrors.163.com

                http://mirrors.sohu.com

      (2)项目的官网

            源代码

            rpm

      (3)很多第三方机构或个人制作并公开发布许多rpm包(不一定安全)

            http://rpmfind.net

            http://rpm.pbone.net

      (4)可靠的途径:EPEL(建议使用可靠的包)

           Fedora-EPEL(Fedora官方维护,会验证包的合法性和可靠性)

    3、rpm包的合法性验正        

        rpm包的合法性验正主要包括:

            a、来源合法性

            b、包的完整性 

      包制作者制作完成之后会附加数字签名于包上)     

        包的制作者使用单向加密提取原始数据的特征码,而后使用自己的私钥加密这段特性码,附加原始数据后面。

        验正过程:

        前提:必须有可靠机制获取到包制作者的公钥;

        (1)使用制作者的公钥解密加密的特征码,能解密则意味着来源合法;

        (2)使用与制作者同样的意向加密算法提取原始数据的特征码,并与解密出来的特征作比对,相同,则意味着完整性没问题;

  三、rpm的核心功能

    1、安装程序包

      

    


本文出自 “恒则有成” 博客,请务必保留此出处http://hjqjk.blog.51cto.com/5970897/1530977