RPM包与源码包的区别
1、软件包分类
源码包:C源代码包
rpm包:编译之后的二进制包
2、源码包
优点:开源;可以自由选择所需功能;可看源代码;卸载方便(直接删除安装位置);
缺点:安装步骤过多;编译时间过长;
3、RPM包
优点:使用简单,只需要几个命令就可以实现包的安装、升级、查询、卸载;安装速度快;
缺点:不能看源代码;功能选择不如源代码灵活;依赖性;
RPM包命名和依赖性
1、RPM包的命名规则
httpd-2.4.6-67.el7.centos.x86_64.rpm
1
httpd 软件包名
2.4.6 软件版本
67 软件发行的次数
el7.centos 适合的linux平台
x86_64 适合的硬件平台
rpm rpm包扩展名
2、RPM包的依赖性
树形依赖性:a -> b -> c,即a依赖b,b依赖c
环形依赖:a -> b -> c -> a
模块依赖:模块依赖查询网站:www.rpmfind.com
RPM包的安装、升级、卸载和查询
1、包全名和包名
包全名 包名
例如:httpd-2.4.6-67.el7.centos.x86_64.rpm 例如:httpd
操作的包时没有安装的软件包时,使用包全名 操作的已经安装的软件包时,使用包名
安装、升级时用 查询、卸载时用
2、RPM安装
#rpm包的安装格式
rpm -ivh 包全名
选项:
-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
--nodeps 不检测依赖性
1
2
3
4
5
6
7
8
举例:
[root@localhost Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm
1
可能会有很多依赖性问题出现,根据一个个依赖性继续rpm安装就可以了
3、RPM包升级
#RPM包的升级格式
rpm -Uvh 包全名
选项:
-U (upgrade) 升级
1
2
3
4
5
过程和安装完全一样。
4、RPM包的卸载
#RPM包的卸载格式
rpm -e 包名
选项:
-e (erase) 卸载
--nodeps 不检测依赖性
1
2
3
4
5
6
举例:
[root@localhost Packages]# rpm -e httpd
错误:依赖检测失败:
httpd = 2.4.6-67.el7.centos 被 (已安裝) httpd-devel-2.4.6-67.el7.centos.x86_64 需要
[root@localhost Packages]# rpm -e httpd-devel
[root@localhost Packages]# rpm -e httpd
1
2
3
4
5
注:卸载要按照安装依赖性的反向卸载
5、RPM包的查询
查询是否安装:
[root@localhost ~]# rpm -q 包名
#查询包是否安装
选项:
-q 查询(query)
[root@localhost ~]# rpm -qa
#查询所有已经安装的RPM包
选项:
-a 所有
1
2
3
4
5
6
7
8
9
查询软件包的详细信息:
[root@localhost ~]# rpm -qi 包名
#查询软件包的详细信息
选项:
-i 查询软件信息(information)
1
2
3
4
查询包中文件安装位置
[root@localhost ~]# rpm -ql 包名
#查询包中文件安装位置
选项:
-l 列表(list)
1
2
3
4
查询系统文件属于哪个RPM包
[root@localhost ~]# rpm -qf 系统文件名
选项:
-f 查询系统文件属于哪个RPM包(file)
1
2
3
查询软件包的依赖性
[root@localhost ~]# rpm -qR 包名
选项:
-R 查询软件包的依赖性(requires)