RPM介绍

一、RPM是什么(what)

(一)概念

RPM 全名是“RedHat Package Manager ”。RPM 是以一种数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制。

(二)特点

  1. 安装的软件先编译通过, 打包成为 RPM 机制的包装档案[安装环境已定制化]。

  2. 记录并检查软件安装的依赖包,满足则安装,不满足不安装(也可在线下载依赖包安装)。

  3. 安装的时候就将该软件的信息整个写入 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默认路径

  1. RPM的数据库:软件相关的信息就会被写入 /var/lib/rpm/目录下的数据库档案中,该数据库用来软件查询,软件升级的版本比较,数字签名等。

  2. 安装软件的存储路径:

    安装文件路径
    路径说明
    /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,可以同时安装多个软件,也可以直接以网址来安装。

  1. -i:install

  2. -v:显示指令的执行过程

  3. -h:显示安装进度

(二)rpm卸载[删]

  1. rpm -e:使用命令rpm -e包名,包名可以包含版本号等信息,但是不可以有后缀.rpm。

  2. rpm -e --nodeps强制卸载

(三)rpm升级/更新[改]

  1. -Uvh:无论软件有没有安装过旧版本,都会安装到更新版本。

  2. -Fvh:若已经安装过旧版软件才会更新到新版本,否则不安装新版本软件。

(四)rpm查询[查]

查询本机上的软件包相关信息,不必要加上完整的版本名称,只需要加软件名即可。[rpm -qa 软件名]

查询某个具体的rpm文件,则需要加完整的文件名称。[rpm -qf 文件名]

  • 查询已安装软件的信息:

  1. -q :仅查询,后面接的软件名称是否有安装

  2. -qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名,用grep +软件名筛选所需软件是否安装

  3. -qi :列出该软件的详绅信息 (information),包括开发商、版本和说明

  4. -ql :列出该软件所有的文件和目录所在完整文件名 (list)

  5. -qc :列出该软件的所有配置文件 (找出在 /etc/ 底下的文件名而已)

  6. -qd :列出该软件的所有说明文件 (找出不 man 有关的文件而已)

  7. -qR :列出与该软件有关的相依软件所含的文件 (Required 的意思)

  8. -qf :由后面接的文件名,找出该文件属于哪一个已安装的软件

  • 查询某个 RPM 文件内含有的信息:

  1. -qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出某个 RPM 档案内的信息,而非已安装的软件信息

  • 查询软件更新文件记录[软件包文件验证]

  1. -V :后面加的是软件名称,若该软件所含的文件被更改过,才会列出来[没有任何显示表示没更改过,有显示则列出修改信息]

  2. -Va :列出目前系统上面所有可能被更改过的文件

  3. -Vp :后面加的是文件名,列出该软件内可能被更改过的文件

  4. -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)

     

未完待续。。。


你可能感兴趣的:(Linux)