Redhat软件包(RPM)详解

 RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用;


RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除了.exe文件以外,也有其它的文件;

软件包有两种形式

  • 源码包(Source)       (大多数软件提供的是源代码)
  • 二进制包(Binary) (RPM包、系统默认包)

优缺点

源码包优点:

  1. 开源,如果有足够能力,可以修改源代码
  2. 可以自由选择所需要的功能
  3. 软件是编译安装的,所以更适合自己的系统
  4. 卸载方便

源码包缺点:

  1. 安装步骤较多,如果安装较大软件集合时,容易出现错误
  2. 编译时间较长,安装比二进制时间长很多
  3. 由于是编译安装,在安装中一旦出错时,新手很难解决

RPM包优点:

  1. 包管理系统简单,简单几个命令就安装、卸载、删除
  2. 安装速度比源码安装快很多

RPM缺点:

  1. 经过编译,不再能看到源代码
  2. 功能选择不如源码包灵活
  3. 具有一定的依赖性

RPM软件包命名规则

以“heartbeat-2.1.4-12.el6.x86_64.rpm”为例
heartbeat:软件名称。
2.1.4:软件版本
12:发布的次数
el6:软件包发行商版本
x86_64:适用的硬件平台。

RPM软件包依赖性

A、强制安装 —-暴力型

使用rpm -i –force –nodeps  强制安装。忽略依赖关系。这种方法你可以先装A包,再装B包,再装C包。这样还是有点隐患的,感觉不是很踏实(虽然其实目前没发现什么不好)。安装后使用成功的前提是:你要搞清楚依赖关系,并且把这些包都装好。好处是:不用管它们的具体依赖关系先后顺序。

   B、一次性全装上— 一网打尽型

可以把依赖的几个包拷出来放在同一个文件夹里 然后 rpm -ivn *.rpm   这样也可以 前提也是一个都不能少。

模块依赖查询网站: http://www.rpmfind.net/

   C、 使用yum技术安装 –使用服务器方式

yum是一个服务器资源技术。通过在线下载服务器资源的方式。 缺点:太繁琐。要设置一堆的东西。优点:设置以后,很方便,需要的大多数资源都可以从服务器上找到。这点感觉很像maven2有木有?

RPM软件包常用命令

  • -i  (install)       安装,需要包全名
  • -v  (verbose)      显示详细信息
  • -h (hash )       显示详细进度
  • — nodeps          不检测依赖性
  • -U  (Upgrade)         升级,需要包全名
  • -e  (erase)           卸载

rpm相关查询(查询前需要使用-q参数)

  • -q   (qrery)             查询包是否安装
  • -a (all)           查询所有已安装rpm包
  • -i   (information)        查询相关信息
  • -p   (package)          查询未安装的包信息
  • -l      (list)           查找包中文件的安装位置
  • -f     (file)            查找系统文件属于哪个包
  • -R    (requires)          查询软件包的依赖性

rpm检验和文件提取

  • -V    校验指定RPM包中的文件

验证内容中的8个具体内容如下

  • S       文件大小是否被改变
  • M      文件的类型或文件的权限(rwx是否被改变
  • 5       文件的md5校验是否被改变(可以看成文件内容是否被改变)
  • D        代码是否被改变
  • L         文件的路径是否改变
  • U         文件的所有者是否被改变
  • G         文件的所属组是否被改变
  • T         文件的修改时间是否被改变

文件类型

  • c      配置文件    (config file)
  • d      普通文档   (documentation)
  • g       “鬼”(ghost  file),很少见,RPM包不应该包含
  • l        授权文件 (license  file)
  • r       描述文件  (read   me)

RPM包文件提取

rpm2cpio   包全名  |  cpio  -idv  .文件绝对路径      (把文件提取到当前目录)

cpio参数

  • -i       copy-in模式,还原
  • -d       还原时自动新建目录
  • -v        显示还原过程

2 条评论

发表回复

*