RPM包的来源
所有RPM包都来自安装系统光盘的Packages目录中
RPM包命名规则
- 包全名:操作的包是没有安装的软件包时,使用包全名,而且要注意路径
- 包名:操作已安装的软件包时,使用包名,是搜索
/var/lib/rpm/
中的数据库
RPM包依赖性
- 树形依赖:a->b->c 解决方法:从后往前安装
- 环形依赖:a->b->c->a 解决方法:放在一条命令中安装即可
- 模块依赖:库文件依赖,库也叫模块,就是linux当中的函数,它有一个典型的特征,就是以
.so.数字
结尾,它依赖的其实是一个文件,而不是软件包。该文件藏身在某一个软件包当中。我们只要将该文件所在的软件包安装上,该文件也就安装了。解决方法:登录www.rpmfind.net 网站,输入库文件名称查询到对应的rpm包,然后安装即可。
RPM安装
|
|
RPM 升级
|
|
- 需要包全名,而不是包名。可以如此理解:升级时的新包对于系统是新的,因此要包全名
- 如果这个包从来没有安装过,那么效果等同于rpm -ivh 包全名
RPM卸载
|
|
- rpm准备了这个卸载命令的原因是,我们安装时根本不知道这个包装了在哪里(要知道linux下的安装的软件的文件散布多个地方的,很难一一找),而rpm知道,所以干脆就为我们准备了这条便利的命令。
- window下卸载软件,往往容易留很多垃圾数据难以除完,例如注册表等等。而linux中不会出现这个问题,只要把软件的安装目录所有都删除掉,就不会有残留。
RPM包查询
|
|
RPM包默认安装位置
RPM包校验
|
|
验证内容中的8个信息
- S : 文件大小是否改变
- M : 文件的类型或文件的权限( rwx )是否被改变
- 5 : 文件MD5 校验和是否改变( 可以看成文件内容是否改变 )
- D : 设备的主从代码是否改变
- L : 文件路径是否改变
- U : 文件的属主( 所有者 ) 是否改变
- G : 文件的属组是否改变
- T : 文件的修改时间是否改变
验证内容中的文件类型
- c (config file) : 配置文件
- d (documentation) : 普通文档
- g (ghost file) : “鬼”文件, 很少见, 就是该文件不应该被这个RPM包包含
- L (license file) : 授权文件
- r (read me) : 描述文件
MD5校验
用来校验文件的完整性(文件内容是否被改变)
例如, 在官网下载的游戏, 官方会给出MD5校验码, 将下载的游戏通过专用的MD5校验工具校验后生成一份MD5校验码, 对比两份校验码是否一致, 不一致则说明,下载的文件可能丢包, 可能文件损坏, 可能被其他人动过手脚一直木马等
RPM包中的文件提取
|
|
- 前面的
.
代表当前路径,不能省略。 文件绝对路径
和包里文件的绝对路径对应,也就是告诉了cpio要去包里提取哪个文件。- cpio只知道提取文件,并不知道要从什么地方提取文件,因此我们通常要使用
|
管道符或<
输入重定向告诉cpio我们应该从什么设备去取出文件。
|
|