Linux下RPM软件包管理


1、软件包管理介绍

1.1、软件包分类

  1. 源码包(就是直接的代码)
    a. 脚本安装包(多了个安装界面,但是方便)
  2. 二进制包(就是源码经过编译后的文件)(别名RPM包或系统默认包)

1.2、源码包

优点
• 开源,可以直接修改源代码
• 自由选择所需功能
• 编译安装,更加稳定效率也搞
• 卸载方便(直接删除源码包安装目录)
缺点
• 安装过程步骤多,容易出现拼写错误
• 编译过长较长,安装比二进制安装时间长
• 因为是编译安装,安装过程中一旦出错新手很难解决

1.3、RPM包

二进制包优点
• 包管理系统简单,只通过几个命令就可以实现安装、升级、卸载等操作
• 安装速度比源码包快很多(和win时间差不多)
缺点
• 进过编译,看不到源代码
• 功能选择不如源代码灵活
• 依赖性(有一些软件需要别的软件支撑,导致必须只能安装支撑软件)

2、RPM包管理-包命名和依赖性

2.1、RPM命名规则

例如包全名:httpd-2.2.15-15.e16.centos.1.i686.rpm

名称 说明
httpd 软件包名
2.2.15 软件版本
15 软件发布次数
el6.centos 这个版本适合在el6和centos俩个linux版本当中安装 不写适合的linux平台就代表都可以安装
i686 适合我们的686微机平台(硬件平台) noarch-表示任何硬件平台都可以安装
rpm rpm包扩展名

2.2、RPM包依赖性

• 树形依赖:a->b->c
安装a需要b,安装b需要c,若依我们先安装c再安装b最后安装a。卸载先卸载a再卸载b最后卸载c
• 环形依赖:a->b->c->a
把软件把a、b、c用命令同时装
• 模块依赖:以.so.数字结尾的都是库依赖
模块依赖查询网站:www.rpmfind.net

3、RPM包管理-安装升级和与卸载

3.1、包全名与包名

包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm中的数据库

3.2、RPM安装

语法rpm-ivh 包全名

参数 说明
-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
–nodeps 不检测依赖性

在这里插入图片描述

上图就是依赖下面俩个、就需要先安装下面的包

3.3、RPM包升级

语法:rpm -Uvh 包全名

参数 说明
-U(upgrade) 升级

3.4、卸载

语法:rpm -e 包名

参数 说明
-e(erase) 卸载
–nodeps 不检查依赖性

4、RPM包管理-查询

4.1、查询是否安装

命令:rpm -q 包名

参数 说明
-q 查询(query)
-a 所有(all)

命令:rpm -qa

参数 说明
-a 所有(all)

4.2、查询软件包详细信息

命令:rpm qi 包名

参数 说明
-i 查询软件信息(information)
-p 查询未安装包信息(package) 查询未安装需要写包全名

4.3、查询包中文件安装位置

命令:rpm -ql 包名

参数 说明
-l 列表(list)
-p 查询未安装包信息

例如:rpm -qlp zsh-4.3.11-4.el6.centos.2.x86_64.rpm 可以查询未安装软件想要的安装位置

4.4、查询系统文件属于哪个rpm包

命令:rpm -qf 系统文件名

参数 说明
-f 查询系统文件属于哪个软件包(file)

4.5、查询软件包的依赖性

命令:rpm -qR 包名

参数 说明
-R 查询软件包的依赖性(requires)
-p 查询未安装包的信息(package)

5、RPM包管理-校验和文件提取

5.1、RPM包校验

把包装完之后先把特征记录下来,然后需要的时候把现在的文件和原先的文件做个比较,比较有什么变化,看是不是我做的,判断文件是否被人修改过了
命令:rpm -V 已安装的包名称

参数 说明
-V :校验指定RPM包中的文件(verify)

在这里插入图片描述
如上图就是修改过的
S 5 T
验证内容中的8个信息的具体内容如下:

参数 说明
S 文件大小是否发生改变
M 文件的类型或文件的权限(rwx)是否被修改
5 文件MD5校验和是否改变(可以看做文件内容是否被修改)
D 设备的中,从代码是否改变
L 文件路径是否发生改变
U 文件的属主(所有者)是否改变
G 文件的属组是否改变
T 文件的修改时间是否发生改变

上图 的c是文件类型

参数 文件类型
c 配置文件(config file)
d 普通文档(documentation)
g ‘鬼’文件(ghost)很少见,就是该文件不应该被这个RPM包所包含
l 授权文件(license file)
r 描述文件(read me)

5.2、RPM包中文件提取

提取一个包中指定文件
用于一个文件丢失或者损坏直接在下载这个包内的一个文件就好了
例如:rpm2cpio 包全名 | cpio -idv.表示文件绝对路径

命令:cpio 选项 < [文件|设备]

参数 说明
-i copy-in模式,还原
-d 还原时自动新建目录
-v 显示还原过程

猜你喜欢

转载自blog.csdn.net/qq_45254369/article/details/131401100