1、什么是RPM?

          RPM(Red Hat Package Manager)是运行在以Linux内核为基础众多发行版上开放的软件管理包,并基于GPL协议发布。

    2、常运行在那些Linux发行版平台?

          Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本及二次开发版上。

     3、主要优势

            (1)、能提供快速安装 

            (2)、减少编译安装侦错困扰。

            (3)、功能众多使系统维护更容易

     4、获取途径

            1)、系统发行版的光盘官方的文件服务器(或镜像站点);

        http://mirrors.aliyun.com         http://mirrors.sohu.com         http://mirrors.163.com 

   2)、项目的官方站点

   3)、第三方组织

A、EPEL:

B、搜索引索:http://pkgs.org   http://rpm.pbone.net  http://rpmfind.net

   (4)、自己制作注意

检查其包合法:A来源合法性    B 、程序包的完整性。


     5、软件包格式

                name-version.type.rpm    注意:其中version,根据编译平台和源代码不同等因数,会包含相关信息

     6、RPM的五大功能:(安、卸、升、查、验)

            (1)、安装:将软件从包中解出来,并且安装到硬盘;    

                                  语法:  rpm -i[vh] PackageName.rpm

                                  选项:   -v: 显示附加信息

                                               -h: 安装时输出hash记号(#)

                                               --test: 只对安装进行测试,并不实际安装

                                               --excludedocs: 不安装软件包中的文档文件

                                               --replacepkgs: 强制重新安装已经安装的软件包

                                               --force: 忽略软件包及文件的冲突

                                               --prefix <path>: 将软件包安装到由 <path>指定的路径下

                                               --percent: 以百分比的形式输出安装进度

            (2)、卸载:将软件从硬盘清除;

                                  语法: rpm -evh  PackageName

                                  选项:   -h: 删除时输出hash记号(#)

                                               -vv: 显示调试信息

                                               --test: 只执行删除测试,不删除

            (3)、升级:替换软件的旧版本;(选项与安装时,相同)

                                  语法: rpm -Uvh  PackageName 

                                  选项:   -v: 显示附加信息

                                               -h: 安装时输出hash记号(#)

                                               --oldpackage:允许“升级”到一个老版本(实际为降级)

                                               --test: 只进行升级测试

                                               --excludedocs: 不安装软件包中的文档文件

                                               --includedocs: 安装文档

                                               --replacepkgs: 强制重新安装已经安装的软件包

                                               --replacefiles: 替换属于其他软件的文件

                                               --force: 忽略软件包及文件的冲突

                                               --prefix <path>: 将软件包安装到由 <path>指定的路径下

                                               --percent: 以百分比的形式输出安装进度

            (4)、查询:查询软件包相关信息(包括已安装和未安装,);

                               A、查看已安装包的相关信息

                                    a、查询已安装的软件:                         语法  rpm -q   软件名(如果显示所有就用-qa)

                                    b、查询已安装的文件属于那个软件包 语法  rpm -qf  软件名

                                    c、查询已安装文件那里:                   语法  rpm -ql  软件名

                                    d、查询已安装的文件的信息:               语法  rpm -qi  软件名

                                    e、查询已安装文件的配置文件:            语法  rpm -qc 软件名

                                    f、查询已安装文件的文档位置:             语法  rpm -qd 软件名

                                    g、查询已安装文件依赖包:                   语法  rpm -qR 软件名

                               B、查看未安装包的相关信息

                                    a、查询一个软件包的用途、版本信息:  语法  rpm -qpi file.rpm

                                    b、查询一个软件包所包含的文件:         语法  rpm -qpl file.rpm

                                    c、查询一个软件包文档所在位置:         语法  rpm -qpd file.rpm

                                    d、查询一个软件包配置文件:               语法  rpm -qpc file.rpm

                                    e、查询一个软件包的依赖关系:            语法  rpm -qpR file.rpm

            (5)、校验:检验系统中的软件与包中软件的区别(防止恶意修改,对软件加入了验证功能验证一般使用非对称加密算法,需要一个密匙

                               A、校验已安装的包 语法  rpm -V[选项]  文件名

                                      a、一般选项:

                                                   -p: 查询验证指定的软件包。

                                                   -f: 校验指定文件的所属软件包。

                                                   -a:  校验所有的软件包。

                                                   -g:  校验所有属组软件包。(后面加属组)                                           

                                      b、 可选选项:

                                                   --noscripts:  不运行交验脚本

                                                   --nodeps:     不校验依赖性

                                                   --nofiles:       不校验文件属性

                                       c、通用选项:

                                                   -v: 显示附加信息

                                                   -vv:  显示调试信息

                                                   --root<path>:  让RPM将<path>指定的路径作为“根目录”

                                                   --rcfile<rcrile>: 设置rpmrc  文件为 <rcfile>

                                                   --dbpath<path>:设置RMP资料库所在的路径为 <path>

                                 B、校验未安装的包 语法  rpm -K [选项]  包名

                                        a、一般选项

                                                    Checksig:检查签名认证是否正确

                                                    --nopgp:不校验PGP签

                                        b、通用选项:

                                                   -v: 显示附加信息

                                                   -vv:  显示调试信息

                                                   --rcfile<rcrile>: 设置rpmrc  文件为 <rcfile>

                                        c、其他选项

                                                   --rebuilddb:重建RPM资料库

                                                   --initdb:创建一个新的RPM资料库                               

                                                   --quiet:尽可能减少输出

                                                   --help:显示帮助文件

                                                   --version:显示当前版本

                                        d、交验结果:(不同或不匹配)

                                            S            M                5               D            L          U              G          T          P

                                      文件分布      模式          MD5码       版本号     路径   用户身份    工作组   时间戳  功能

     7、RPM的命令实例:

            (1)、安装本地软件包RPM软件包管理总结_卸载

            (2)、刷新软件包       (没有更高版本将回馈消息)               

RPM软件包管理总结_安装_02

            (3)、查询安装的所有包 

        A、排序列表方式(sort排序列表、more太多翻页)
RPM软件包管理总结_升级_03  

        B、所有包的数量(wc -l 统计行)RPM软件包管理总结_服务器_04    

        C、所有包中的所有文件数量(wc -l 统计行)

 RPM软件包管理总结_升级_05

         D、所有文档文件的数量(wc -l 统计行)

 RPM软件包管理总结_hash_06 

         D、所有文档文件的数量(grep -i zsh 是用正则 i忽略大小写 字符 zsh)

RPM软件包管理总结_卸载_07 

            (4)、升级:替换软件的旧版本;(选项与安装时,相同) RPM软件包管理总结_卸载_08

            (5)、卸载:将软件从硬盘清除;

RPM软件包管理总结_升级_09

            (6)、校验:

                    未安装包校验

RPM软件包管理总结_升级_10

       已安装包的校验

RPM软件包管理总结_hash_11

            (7)、显示RPM包和其中的文件

RPM软件包管理总结_升级_12

            (8)、显示RPM依赖关系

RPM软件包管理总结_hash_13