RPM 包,在 CentOS 使用过程中,也是经常会遇到的一种软件包形式,对于该类型包的相关操作进行了解,有助于日常的使用。
1 RPM 包与源码包的区别
软件包分类
- 源码包:C 源代码包
- rpm 包:编译之后的二进制包
源码包
- 优点:开源,并可以自由选择所需功能,可看源代码,卸载方便(直接删除安装位置);
- 缺点:安装步骤繁琐,编译时间过长。
RPM 包
- 优点:使用简单,只需要几个命令就可以实现包的安装、升级、查询、卸载,安装速度快;
- 缺点:不能看源代码,功能选择不如源代码灵活,依赖性。
2 RPM 包命名 & 依赖性
命名规则
1 | # 举例包名 |
命名分段 | 说明 |
---|---|
httpd |
软件包名 |
2.4.6 |
软件版本 |
67 |
发行次数 |
el7.centos |
适合的 linux 平台 |
x86_64 |
适合的硬件平台 |
rpm |
扩展名 |
依赖性
- 树形依赖:
a->b->c
,即 a 依赖 b , b 依赖 c 。 - 环形依赖:
a->b->c->a
- 模块依赖:模块依赖查询网站,www.rpmfind.net
3 RPM 包的安装、升级、卸载和查询
包全名 & 包名对比说明
包全名 | 包名 |
---|---|
例如:httpd-2.4.6-67.el7.centos.x86_64.rpm |
例如:httpd |
操作包时为没有安装的软件包时,使用 包全名 。 |
操作包时为已经安装的软件包时,使用 包名 。 |
安装、升级时使用 | 查询、卸载时使用 |
安装
1 | rpm -ivh [包全名] |
注:可能会有很多依赖性问题出现,根据一个个依赖性继续 rpm 安装即可。
升级
1 | rpm -Uvh [包全名] |
卸载
1 | rpm -e [包名] |
注:卸载要按照安装依赖性的反方向卸载。
查询
1 | # 查询是否安装 |