(一)概念
RPM 全名是“RedHat Package Manager ”。RPM 是以一种数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制。
(二)特点
-
安装的软件先编译通过, 打包成为 RPM 机制的包装档案[安装环境已定制化]。
-
记录并检查软件安装的依赖包,满足则安装,不满足不安装(也可在线下载依赖包安装)。
-
安装的时候就将该软件的信息整个写入 RPM 的数据库中,供后续查询、升级和卸载。
(三)SRPM
SRPM(source rpm):rpm没有经过编译的原始码。可在具体的安装环境下编译成rpm包再进行安装。
文件格式
|
文件名
|
可否直接安装
|
内含程序类型
|
可否修改内置参数并编译
|
---|---|---|---|---|
RPM | xxx.rpm | 可 | 已编译 | 不可 |
SRPM | xxx.src.rpm | 不可 | 未编译的源码 | 可 |
(四)RPM的命名规则
例子:xxx-1.3.1-2.x86_64.rpm[软件名-版本号-编译次数.硬件平台.扩展名]
硬件方面都可以向下兼容的, 因此最低等级的 i386 软件可以安装在所有的 x86 硬件平台上面,不论是 32 位还是 64 位。
硬件平台
|
适用说明
|
---|---|
i386 | 几乎适用于所有的 x86 平台 |
x86_64 | 针对 64 位的 CPU 进行优化编译设定 |
noarch | 就是没有任何硬件等级上的限制,较常出现的就是属于shell script 方面的软件 |
(五)RPM默认路径
-
RPM的数据库:软件相关的信息就会被写入 /var/lib/rpm/目录下的数据库档案中,该数据库用来软件查询,软件升级的版本比较,数字签名等。
-
安装软件的存储路径:
安装文件路径路径说明/etc 一些配置文件放置的目录,例如 /etc/etcd/etcd.conf /usr/bin 一些可执行文件 /usr/lib 一些程序使用的动态函数库 /usr/share/doc 一些基本的软件使用手册与说明文件 /usr/share/man 一些 man page 文件
二、如何使用RPM(how)
RPM包的使用主要用rpm命令来实现,该命令需要root权限。
(一)rpm安装[增]
rpm -ivh package_name,可以同时安装多个软件,也可以直接以网址来安装。
-
-i:install
-
-v:显示指令的执行过程
-
-h:显示安装进度
(二)rpm卸载[删]
-
rpm -e:使用命令rpm -e包名,包名可以包含版本号等信息,但是不可以有后缀.rpm。
-
rpm -e --nodeps强制卸载
(三)rpm升级/更新[改]
-
-Uvh:无论软件有没有安装过旧版本,都会安装到更新版本。
-
-Fvh:若已经安装过旧版软件才会更新到新版本,否则不安装新版本软件。
(四)rpm查询[查]
查询本机上的软件包相关信息,不必要加上完整的版本名称,只需要加软件名即可。[rpm -qa 软件名]
查询某个具体的rpm文件,则需要加完整的文件名称。[rpm -qf 文件名]
-
查询已安装软件的信息:
-
-q :仅查询,后面接的软件名称是否有安装
-
-qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名,用grep +软件名筛选所需软件是否安装
-
-qi :列出该软件的详绅信息 (information),包括开发商、版本和说明
-
-ql :列出该软件所有的文件和目录所在完整文件名 (list)
-
-qc :列出该软件的所有配置文件 (找出在 /etc/ 底下的文件名而已)
-
-qd :列出该软件的所有说明文件 (找出不 man 有关的文件而已)
-
-qR :列出与该软件有关的相依软件所含的文件 (Required 的意思)
-
-qf :由后面接的文件名,找出该文件属于哪一个已安装的软件
-
查询某个 RPM 文件内含有的信息:
-
-qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出某个 RPM 档案内的信息,而非已安装的软件信息
-
查询软件更新文件记录[软件包文件验证]
-
-V :后面加的是软件名称,若该软件所含的文件被更改过,才会列出来[没有任何显示表示没更改过,有显示则列出修改信息]
-
-Va :列出目前系统上面所有可能被更改过的文件
-
-Vp :后面加的是文件名,列出该软件内可能被更改过的文件
-
-Vf :后面加文件名,列出某个文件是否被更改过
更改的标识标识说明S (file Size differs) 文件的容量大小是否被改变 M (Mode differs) 文件的类型或文件的属性 (rwx) 是否被改变?如是否可执行等参数已被改变 5 (MD5 sum differs) MD5 这一种MD5值的内容已经不同 D (Device major/minor number mis-match) 装置的主/次代码已经改变 L (readLink(2) path mis-match) Link 路径已被改变 U (User ownership differs) 文件的所属人已被改变 G (Group ownership differs) 文件的所属群组已被改变 T (mTime differs) 文件的建立时间已被改变 更改的文件类型标识文件类型说明c 配置文件 (config file) d 文件数据文件 (documentation) g 通常是该文件不被某个软件所包含,较少发生!(ghost file) l 许可证文件 (license file) r 自述文件 (Readme)
未完待续。。。