RPM 包命名规则
命名规则基本上按照:软件包名-软件版本-软件发布次数.适合的 Linux 平台.适合的硬件平台.rpm 的形式命名,例如:
httpd-2.2.15-15.el6.centos.1.i686.rpm。这里要注意的是包名和包全名的区别,包名是指 httpd,包全名是:httpd-2.2.15-15.el6.centos.1.i686.rpm。有的命名区分包名与包全名,如果输入错误会无法安装。安装和升级一般使用包全名,如果是操作已经安装过的包通常使用包名
RPM 包依赖性
- 树形依赖:a->b->c
- 环形依赖:a->b->c->a (需要用一条命令同时安装)
- 模块依赖:模块依赖查询网站:www.rpmfind.net
RPM 安装
rpm 安装命令为:
rpm -ivh 包全名
- -i(install)安装
- -v (verbose) 显示详细信息
- -h (hash) 显示进度
- --nodeps 不检测依赖性
RPM 升级
rpm -Uvh 包全名
升级与安装大致相同,-U 是指 upgrade 升级的意思
卸载
rpm -e 包名
- -e (erase) 卸载
- --nodeps 不检查依赖性
RPM 命名查询
查询是否安装:
rpm -q 包名
查询所有已经安装的 RPM 包
rpm -qa
查询包详细信息
rpm -qi 包名
rpm -qip 包全名
使用 -qip 则可以查询未安装的包信息,必须加包全名。
查询包中文件安装位置:
rpm -ql 包名
如果包没有安装也可以使用下面命令查看
rpm -qlp 包全名
查询系统文件属于哪个 RPM 包:
rpm -qf 系统文件名
查询软件包依赖性:
rpm -qR 包名
同样的,如果包未安装,则可以使用 -p:
rpm -qRp 包全名
RPM 校验
rpm -V 已安装包名
没有提示信息则表示没有被修改过。总共 8 个字符代表不同的修改内容,分别为:
- S 文件大小是否改变
- M 文件的类型或者文件的权限(rwx) 是否被改变
- 5 文件的 MD5 校验和是否改变(如文件内容改变)
- D 设备的中,从代码是否改变
- L 文件路径是否改变
- U 文件的属主(所有者)是否改变
- G 文件的属组是否改变
- T 文件的修改时间是否改变
5 个文件类型,分别为:
- c 配置文件(config file)
- d 普通文档(documentation)
- g "鬼"文件(ghost file),比较少见,即该文件不应该被这个 RPM 包包含
- l 授权文件(license file)
- r 描述文件(readme)
RPM 包文件提取
rpm2cpio 包全名 | \
cpio -idv .文件绝对路径
rpm2cpio 用于将包转换为 cpio 格式,cpio 用于创建软件档案文件和从档案文件中提取文件。cpio 的选项如下:
- -i:copy-in 模式,还原
- -d:还原时自动新建目录
- -v:显示还原过程
以上命令如果包未安装,由于需要找到对应的包,需要 cd 到对应的包所在目录