
RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用;
RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除了.exe文件以外,也有其它的文件;
软件包有两种形式
- 源码包(Source) (大多数软件提供的是源代码)
- 二进制包(Binary) (RPM包、系统默认包)
优缺点
源码包优点:
- 开源,如果有足够能力,可以修改源代码
- 可以自由选择所需要的功能
- 软件是编译安装的,所以更适合自己的系统
- 卸载方便
源码包缺点:
- 安装步骤较多,如果安装较大软件集合时,容易出现错误
- 编译时间较长,安装比二进制时间长很多
- 由于是编译安装,在安装中一旦出错时,新手很难解决
RPM包优点:
- 包管理系统简单,简单几个命令就安装、卸载、删除
- 安装速度比源码安装快很多
RPM缺点:
- 经过编译,不再能看到源代码
- 功能选择不如源码包灵活
- 具有一定的依赖性
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 显示还原过程
原创文章转载请注明:转载自:Redhat软件包(RPM)详解
🙁
怎么了 😳