软件包管理RPM

RPM 

程序包管理器,可实现对程序包的安装、更新、查询和卸载操作,应用广泛

下面通过实际操作来更好的理解RPM的功能

安装程序:

-i  //安装数据包参数

-v  //显示安装过程

-vv  //显示更详细的安装信息

-h  //配合-v更加直观的显示程序安装过程,但是在程序卸载时不能使用

rpm要安装程序包必须得指定程序包的具体路径,否则无法安装

rpm包管理器有一个非常重要的数据库,/var/lib/rpm

程序包名称及版本

包之间的依赖关系

包安装后的文件路径及校验码信息

这些信息都存储在rpm的数据库中,一旦数据库被破坏,包管理就会受到影响,

不仅rpm不能用,yum也不能用

如果我们仅仅是想测试下某个程序包能不能安装,可以使用以下参数

–test  //测试安装,并不真正安装

测试安装完成,但是有一个警告,程序包缺少密钥

其实每个程序包安装时RPM都会对其进行身份验证,如果没有导入密钥,RPM认为数据包无法验证就会弹出告警信息。不过这样也不影响安装,如果想要取消这个告警,可以尝试下述方法

因为我是挂了光盘,所以进入光盘所在的目录下,找到RPM-GPG-KEY-CentOS-6这个密钥文件,然后导入即可

导入完成之后,再安装程序就不会提示warn警告,我是在centos6下操作,如果是centos7就要进入/run/media/root/CentOS 7 x86_64/这个目录下

当然还有一种自欺欺人的方法,就是不导入密钥,使用参数–nosignature忽略这个警告

因为我使用的是centos6的光盘,GPG-KEY密钥文件也是这个光盘上的,也就是说,这个光盘的rpm程序包经过GPG这个密钥文件再加上hash算法计算,会得到签名信息,也就是一串摘要信息,然后,通过这些摘要信息与rpm数据库对应的校验码进行比较,如果二者一致,说明此数据包信息完整,如果不一致说明此数据包有问题。

所以,如果我从centos7上拷贝一份tree的程序包,那用centos6的密钥文件进行计算,其结果肯定是跟数据库不一致的

已经在centos6上导入了GPG-KEY文件

-K  验证程序包的完整性

查询程序信息:

-q  是rpm查询必备的参数,需要与其他参数配合使用

-a  查看所有已经安装过的程序

-c  查看程序的配置文件

-f  查询指定文件由哪个程序包安装

-l  列出程序包安装后所生成的所有文件

-p  针对还未安装的程序包做查询操作

–whatprovides  指定功能由哪些程序包提供

–whatrequires  指定功能被哪些程序包所依赖

 这两个参数记起来有点费劲,翻译一下就很容记忆了,这两个参数用来查找程序包

–whatprovides  什么程序包提供指定功能,打印的就是提供此功能的程序包

–whatrequires  什么程序包需要指定功能,打印的就是依赖此功能的程序包

-i  查询程序信息,非常非常详细

卸载程序:

-e  卸载程序

卸载gcc这个程序失败,因为还有很多依赖包,所以要想卸载gcc必须先把这些依赖包卸载,但这样做不现实

依赖关系,是rpm最大的问题,在安装、卸载程序时都有可能会出现这样的问题

所以为了解决依赖性的问题,又有了yum这个工具,yum是rpm的前端工具,可以自动的识别依赖关系并且执行安装或卸载操作

yum虽然很方便,但还是基于rpm工作的:

yum客户端从yum源下载repodata也就是程序包的元数据列表,并匹配要下载的程序包及其依赖包,然后向yum源发出请求,yum源会将请求的程序包发给客户端,然后yum客户端再把程序包及其依赖包一起进行安装,整个过程对用户透明。yum大概的工作原理就是这样。

以上是我自己的一些学习总结,如果哪里有错误,还请不吝赐教!

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树k8s包管理(helm)安装helm8587 人正在系统学习中 相关资源:最强劲的加密软件TrueCrypt_Setup_7.1a_最强劲的越野车- 络攻防…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年7月4日
下一篇 2017年7月4日

相关推荐