Linux极简小知识:15、rpm包的介绍和命名规则

1,386 阅读4分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

介绍

RPM 的全称为 RedHat Package Manager,作为一个开放标准,它是 RedHat linux、CentOS、OpenLinux、S.u.S.E. 及 Turbo Linux 等众多linux发行版采用的软件包管理方式。

RPM是以一种数据库记录的方式将所需要的软件安装到Linux主机的一套管理程序。最大的特点是将要安装的软件先编译并打包,通过打包好的软件中默认的数据库记录(配置参数),记录这个软件在安装的时候需要的依赖属性模块。

在Linux主机安装时,RPM会先根据软件里的记录数据,查询Linux主机的依赖属性软件是否满足,若满足则予以安装,不满足则不安装。安装的时候将该软件的信息全部写入RPM的数据库中以便将来的查询、验证与卸载。

rpm软件安装流程:

rpm的功能

rpm提供以下的功能:

  1. 安装、删除、升级和管理软件;当然也支持在线安装和升级软件;

  2. 通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;

  3. 可以查询系统中的软件包是否安装以及其版本;

  4. 作为开发者可以把自己的程序打包为 RPM 包发布;

  5. 软件包签名GPG和MD5的导入、验证和签名发布

  6. 依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;

GPG是一个加密软件,开源免费非常著名。

RPM的优点和缺点

  1. 优点
  • 由于已经编译完成并且打包,所以安装很方便
  • 由于套件信息已经记录在Linux主机的数据库中,方便查询、升级与卸载
  1. 缺点
  • 安装环境必须与打包时的环境一致
  • 需要满足软件的依赖属性需求
  • 卸载时需要特别小心,最底层的软件不可以先删除,否则可能造成整个系统出问题

RPM的使用权限

RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装。

RPM包的命名规则

RPM 二进制包的命名需遵守统一的命名规则,用户通过名称就可以直接获取这类包的版本、适用平台等信息。

格式如下:

包名-版本号-发布次数-发行商-Linux平台-适合的硬件平台-包扩展名
  • 软件包名称。
  • 带有主、次和修订的软件包版本。
  • 硬件平台。包括:i386、i486、i586、i686、x86_64、ppc、sparc、alpha

rpm包中硬件平台名称:

平台名称适用平台信息
i386386 以上的计算机都可以安装
i586686 以上的计算机都可以安装
i686奔腾 II 以上的计算机都可以安装,目前所有的 CPU 是奔腾 II 以上的,所以这个软件版本居多
x86_6464 位 CPU 可以安装
noarch没有硬件限制

注:软件包名中的 noarch 表示 没有硬件限制,可以在任何硬件平台上安装。

软件包中的其他名称

  1. fcXX:表示适用用Fedora系统的包,比如,fc18,说明适用于Fedora 18。

  2. devel:表示这个RPM包是软件的开发包,例如mysql-devel-5.1.52-1.el6_0.1.i686.rpm。

rpm包命名规则示例

httpd-2.4.6-95.el7.centos.x86_64.rpm 包为例:

  • httpd:软件包名。这里需要注意,httpd 是包名,而 httpd-2.4.6-95.el7.centos.x86_64.rpm 通常称为包全名。包名和包全名有所不同,在某些 Linux 命令中,有些命令(如包的安装和升级)使用的是包全名,而有些命令(包的查询和卸载)使用的是包名,一不小心就会弄错。
  • 2.4.6:包的版本号,格式通常为:主版本号.次版本号.修正号。
  • 95:二进制包发布的次数,表示此 RPM 包是第几次编程生成的。
  • el*:软件发行商。el7 表示此包适合在 RHEL 7.x (Red Hat Enterprise Unux) 和 CentOS 7.x 上使用。
  • centos:表示此包适用于 CentOS 系统。
  • x86_64:表示此包使用的硬件平台
  • rpm:RPM 包的扩展名,表明这是编译好的二进制包,可以使用 rpm 命令直接安装

还有以 src.rpm 作为扩展名的 RPM 包,这表明是源代码包,需要安装生成源码,然后对其编译并生成 rpm 格式的包,最后才能使用 rpm 命令进行安装。

Linux 系统不靠扩展名分区文件类型, 此处的 .rpm 扩展只是为了方便识别、使用。

参考

Linux RPM包统一命名规则RPM简介与基本使用