一、定义

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

二、RPM包管理的用途

1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;

三、程序包的组成与命名格式

1、程序包的组成:
  二进制程序:/bin,/sbin,/usr/bin,/usr/sbin
         库文件:/lib,/lib64,/usr/lib,/usr/lib64
         配置文件:/etc
         帮助文件(文档):/usr/share/doc,/usr/share/man
2、RPM命名格式:
  appname-VERSION-RELEASE.ARCH.rpm
     appname:程序名称
     VERSION:
         major:主版本号
         minor:次版本号
         release:发行号
      release:包自身的修订号及适用的OS信息
      ARCH:适用的平台
         x86,i386,i486,i586,i686
     例如: zsh-4.3.10-9.el6.x86_64.rpm

四、光盘的挂载

       1、 #mkdir /media/cdrom
             #mount -r -t iso9660 /dev/cdrom /media/cdrom

2、验正光盘程序包

说明:如果不进行验正光盘程序包,则会因为找不到光盘中软件KEY而出现以下错误:

五、重建数据库

        #rpm   --initdb               初始化数据库,不存在,新建之
        #rpm  --rebuilddb          数据存在与否都会重建此库

说明:这两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题。

六、程序包管理RPM常用命令

1、安装:
  rpm [option]  PACKAGE_FILE
     -i :安装程序包
     -h:以#号来表示安装进度
     --test:测试安装
     -v,--verboss:显示详细信息
     --nodeps:忽略依赖关系
     --force:强制安装
     --oldpackage:降级

2、升级:
   rpm -U PACKAGE_FILE
       -U:升级或安装upgrde
   rpm -F PACKAGE_FILE
       -F:升级  freshen
      --test:测试升级
      --nodeps:忽略依赖关系
      --force:强制安装
      --oldpackage:降级   
    #rpm -F --test zip-3.0-1.el6.x86_64.rpm

3、卸载:
      rpm -e PACKAGE_NAME
       -e:erase 卸载
       --test:测试卸载
       --nodeps:忽略依赖关系
       --allmatches:同时卸载多个版本

#rpm -e --test zsh

4、查询:  
      rpm -q PACKAGE_NAME
      [select-options]
        -a:all,查询已安装所有程序包
        -f:file,查询文件由哪个程序包安装生成
        -p PACKAGE_FILE:查询未安装程序包安装后的文件列表
      [query-options]
        -q:查询系统是否已安装某程序包

-qi:查询程序包的简要
        -ql:查询程序包安装文件列表
        -c:configfiles,查询程序包安装的所有配置文件
        -qd:查询程序包文档信息
        -q --changelog:查询程序包制作时版本变化的changelog信息
        -q --provides:查询程序包提供的capabilities
        -q --requires:查询程序包的依赖关系
        -q --scripts: 查询程序包安装或卸载时执行脚本
           脚本分类:
             preinstall:安装前执行脚本
             postinstall:安装后
             preuninstall:卸载前
             postuninstall:卸载后

(1)、对系统中已安装软件的查询:

1)、查询系统已安装的软件

2)、查询文件由哪个包安装生成

3)、查询程序包安装文件列表

4)、查询软件包的简介 

5)、查询程序包安装的所有配置文件

6)、查询已安装软件的文档安装位置

7)、查询已安装软件所依赖的软件包及文件

(2)、对于未安装的软件包的查看

1)、查询一个未安装程序包的版本、用途等信息

2)、查询一个未安装程序包安装后所包含的文件

3)、查询一个未安装程序包安装后的文档位置

4)、查询一个未安装程序包依赖的程序包及文件

5、校验:
     查询包安装后生成的文件是否发生改变
      rpm -V PANKAGE_NAME
         S file Size differs
         M Mode differs (includes permissions and file type)
         5 digest (formerly MD5 sum) differs
         D Device major/minor number mismatch
         L readLink(2) path mismatch
         U User ownership differs
         G Group ownership differs
         T mTime differs
         P caPabilities differ

程序包的合法性验正:
         来源全法:信任的制作者提供,依赖于制作者的数字签名,签名使用私钥加密程序包的特性码
         内容合法:完整性校验成功,未二次修改,依赖于制作者的程序特征码,验正方式,安装者用
         提取特性码与制作者提供的比较。

转载于:https://blog.51cto.com/linuxkingdom/1631088

详解程序包管理RPM相关推荐

  1. 程序包管理rpm、yum与简单编译安装程序

    Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个l ...

  2. linux 包管理工具dnf,Linux 程序包管理 rpm yum dnf

    Linux程序包管理:包管理器功能:打包,包管理(安装,升级,卸载,查询,校验) 目前Linux中最常见有两种常用工具deb:debian Linux使用 包括ubuntu rpm:Redhat Pa ...

  3. linux程序包管理rpm,yum和编译安装以及冒泡排序练习

    linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代码--> 预处理--> 编译--> 汇 ...

  4. pythonpackage详解_Python详解之包管理:__init__.py

    Python中的Module是比较重要的概念.常见的情况是,事先写好一个.py文件,在另一个文件中需要import时,将事先写好的.py文件拷贝到当前目录,或者是在sys.path中增加事先写好的.p ...

  5. [Linux运维基础]全家桶详解!Linux中RPM包、wget下载、YUM安装、tar包、zip等包管理方式区别与参数详解,附wget下载源码包编译安装方法

    文章目录 一.RPM.tar.gz 1.rpm包格式 2.rpm包管理 3.tar包管理参数 二.wget 1.wget参数 2.wget下载源码包后编译安装 三.YUM 1.YUM工作原理 2. Y ...

  6. Linux下程序包管理工具RPM

    实验环境: CentOS release 6.6 (Final)  一台 IP地址:172.16.249.230 RPM 是 Red Hat Package Manager 的缩写,本意是Red Ha ...

  7. Linux学习笔记:rpm程序包管理

    以CentOS为例,rpm程序包管理器的相关内容如下: CentOS的程序包管理器:     程序包的命名规则:         源代码包:             software_name-VER ...

  8. 以rpm为后端及以yum为前端工具的程序包管理器在Linux发行版系统centos中的使用...

    程序包管理: 应用程序的安装,实际上是解压缩并复制程序包中的文件到指定目录的过程: 程序包管理器: 方便终端用户进行程序的安装.卸载.升级.安装信息查询及校验等工作: 不同的Linux的发行版本中,有 ...

  9. Rpm、Yum(程序包管理)

    一.前言 对于普通用户来说,安装一个程序,都可以比较简单的通过双击鼠标或者一条命令就可以完成,但如果没有包管理器,一切操作由用户自行完成,那么过程大概需要下载源码.编译.汇编.链接.将各类配置文件分门 ...

最新文章

  1. seaborn系列 (7) | 核函数密度估计图kdeplot()
  2. Quartz 在 Spring 中如何动态配置时间
  3. 最简单也最难——如何获取到Android控件的高度,获取android控件
  4. 段式存储、页式存储。
  5. 简明 XHTML 1.0 参考手册
  6. Maven软件的下载安装
  7. php金额类,PHP类-人民币金额转大写
  8. 全国小学四则运算1.0
  9. JS去除字符串去除最后的逗号
  10. java如何获取tree_如何从javac插件获取memberselecttree中的表达式类型?
  11. [Avalon]如何实现自定义MarkupExtension.
  12. linux下alias命令具体解释
  13. 鸿蒙os第一批到第四批要多久,鸿蒙 OS 手机适配流程曝光:麒麟 9000 为首批
  14. Python安装模块(包/库)的方法
  15. 基于D-S证据理论的数据融合研究与应用
  16. 单点故障--名词解释
  17. 计算机与软件开发法则
  18. 【算法基础】DP第一弹 —— 线性DP 区间DP
  19. 全靠我啃烂了这份2021最新面试题!吊打面试官
  20. SQL查询中的日期比较

热门文章

  1. Create C++ Windows Forms Application in Visual Studio 2017
  2. 为什么Java要把字符串设计成不可变的
  3. Rabbitmq-理论基础
  4. Apache与Tomcat联系及区别(转)
  5. 如何去重一个Oracle表
  6. BCH能达到它的宣传吗?现实世界压力测试即将到来!
  7. Java内存模型之happens-before
  8. 熔断,限流,降级 一些理解
  9. 基于微软企业库的AOP组件(含源码)
  10. Spring Boot干货系列:(六)静态资源和拦截器处理 | 掘金技术征文