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)