1、RPM与SRPM

RPM全称“RedHat Package Manager”。

RPM是以一种数据库记录的方式将所需软件安装到Linux系统的一套管理机制。

RPM最大的特点是将待安装的软件现行编译,并且打包成为RPM机制的安装包,通过RPM数据库记录该软件安装时必须具备的依赖软件。

RPM的优点

  • 因为已经编译完成且打包完毕,所以软件传输与安装都很方便,无需重新编译;
  • RPM在安装之前,会先检查系统的硬盘容量、操作系统版本等,可有效避免错误安装;
  • RPM文件本身提供软件版本信息、依赖软件名称、软件用途说明、软件所含文件等,便于了解软件;
  • 因为软件信息都写入数据库中,便于查询、升级及卸载;

RPM的缺点:

  • 软件安装的环境需要与打包时的环境一致或相当;
  • 需要满足软件所有的依赖;
  • 软件卸载时需要由顶层向下依次卸载;

基于以上问题,我们可以用SRPM得以解决。SRPM全称是“Source RPM”,即RPM包的源码包。其扩展名通常为***.src.rpm。

SRPM虽然内容是源代码,但是它仍然包含该软件所需要的依赖软件说明及所有RPM文件所提供的数据。

所以,要安装SRPM的软件时,需要:

  • 先将该软件以RPM管理的方式进行编译,此时将SRPM编译成为RPM文件;
  • 然后将编译好的RPM文件安装到系统中;

RPM与SRPM对比

文件格式 文件后缀 能否直接安装 内含程序类型 可否修改参数并编译
RPM xxx.rpm 已编译 不可
SRPM xxx.src.rpm 不能 未编译

RPM文件名的含义,以filesystem-3.2-21.el7.x86_64为例:

filesystem:软件名称 3.2:软件的版本信息 21:发布次数 x86_64:适用的硬件平台

通常以YUM的方式解决RPM属性依赖的问题。

<h3>2、RPM软件安装(Install)</h3>

文件安装路径说明:

文件路径 说明
/etc 放置配置文件目录
/usr/bin 放置可执行文件目录
/usr/lib 一些程序使用的动态函数库
/usr/share/doc 软件使用手册和帮助文档
/usr/share/man man page文件

安装示例及参数说明:

[root@www ~]# rpm -ivh openssl-1.0.2k-8.el7.x86_64
参数:
-i:install的意思
-v:现实详细的安装信息
-h:现实安装进度

其他可执行参数:

可执行参数 说明
--nodeps 当发生软件依赖而无法安装时,强制安装
--replacefiles 当发生某个软件已被安装或版本信息不符时,强制安装
--replacepkgs 重新安装某个已被安装过的软件,适用于批量安装某些软件时
--force --replacefiles与--replacepkgs的合体
--test 测试软件是否可以被安装到当前环境
--justdb 由于RPM数据库损坏或者某些原因导致错误时,使用该参数来更新软件在数据库内的相关信息
--nosignature 跳过数字证书检查
--prefix 指定软件安装目录
--noscripts 在软件安装过程中禁止执行某些系统命令

通常来说,安装软件时直接使用-ivh即可。

3、RPM升级与更新

参数 说明
-Uvh 如果后面跟的软件没有安装过,则予以直接安装;如果后面跟的软件已经被安装,则更新至最新版本
-Fvh 如果后面跟的软件没有安装过,则不予安装;已经安装的软件被升级

4、RPM查询

[root@www ~]# rpm -qa       #列出所有已安装软件
[root@www ~]# rpm -q[licdR] 软件名称        #已安装软件
[root@www ~]# rpm -qf  某个文件名            #已安装软件
[root@www ~]# rpm -qp[licdR] 未被安装的某个文件名  #查阅RPM文件
参数:
-q:仅查询,后面跟的软件名称是否被安装
-qa:列出所有已经被安装的软件名称
-qi:列出软件的详细信息
-qc:列出该软件的所有配置文件
-qd:列出该软件所有的帮助文件
-qR:列出所有与该软件有关的依赖软件所含的文件(Required)
-qf:由后面所跟的文件名,找出该文件所属哪个已安装的软件
-qp[icdlR]:找出某个RPM文件内的信息,而非已安装的软件信息

标签: 常用命令, RPM