1、软件包分类
源码包:代码压缩包(如zip、gz结尾)
rpm包:编译之后的二进制包, rpm是编译好的程序安装包,可以通过rpm命令进行安装。
2、源码包
优点:开源;可以自由选择所需功能;可看源代码;卸载方便(直接删除安装位置);
缺点:安装步骤过多;编译时间过长;
3、RPM包
优点:使用简单,只需要几个命令就可以实现包的安装、升级、查询、卸载;安装速度快;rpm是编译好的程序安装包,可以通过rpm命令进行安装。
缺点:不能看源代码;功能选择不如源代码灵活;依赖性;
RPM包命名和依赖性
1、RPM包的命名规则
httpd-2.4.6-67.el7.centos.x86_64.rpm
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
4、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 不检测依赖性
举例:
[root@localhost Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm
3、RPM包升级
#RPM包的升级格式
rpm -Uvh 包全名
选项:
-U (upgrade) 升级
过程和安装完全一样。
4、RPM包的卸载
#RPM包的卸载格式
rpm -e 包名
选项:
-e (erase) 卸载
--nodeps 不检测依赖性
举例:
[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
注:卸载要按照安装依赖性的反向卸载
5、RPM包的查询
- 查询是否安装:
[root@localhost ~]# rpm -q 包名
选项:
-q 查询(query)
[root@localhost ~]# rpm -qa
#查询所有已经安装的RPM包
选项:
-a 所有
- 查询软件包的详细信息:
[root@localhost ~]# rpm -qi 包名
#查询软件包的详细信息
选项:
-i 查询软件信息(information)
- 查询包中文件安装位置
[root@localhost ~]# rpm -ql 包名
#查询包中文件安装位置
选项:
-l 列表(list)
- 查询系统文件属于哪个RPM包
[root@localhost ~]# rpm -qf 系统文件名
选项:
-f 查询系统文件属于哪个RPM包(file)
- 查询软件包的依赖性
[root@localhost ~]# rpm -qR 包名
选项:
-R 查询软件包的依赖性(requires)