目录
- 1、软件包管理介绍
- 1.1、软件包分类
- 1.2、源码包
- 1.3、RPM包
- 2、RPM包管理-包命名和依赖性
- 2.1、RPM命名规则
- 2.2、RPM包依赖性
- 3、RPM包管理-安装升级和与卸载
- 3.1、包全名与包名
- 3.2、RPM安装
- 3.3、RPM包升级
- 3.4、卸载
- 4、RPM包管理-查询
- 4.1、查询是否安装
- 4.2、查询软件包详细信息
- 4.3、查询包中文件安装位置
- 4.4、查询系统文件属于哪个rpm包
- 4.5、查询软件包的依赖性
- 5、RPM包管理-校验和文件提取
- 5.1、RPM包校验
- 5.2、RPM包中文件提取
1、软件包管理介绍
1.1、软件包分类
- 源码包(就是直接的代码)
a. 脚本安装包(多了个安装界面,但是方便) - 二进制包(就是源码经过编译后的文件)(别名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 | 显示还原过程 |