RPM软件管理程序介绍

声明:本文是基于CentOS操作系统进行介绍的

一、简介

虽然现在CentOS操作系统早已经完成了对 YUM的支持了,但是由于YUM依然还是基于 RPM机制的,所以仍然很有必要对RPM进行了解的。
RPM的全名是“RedHat Package Manager”,是由RedHat公司推出的一个软件管理机制,它是以一种数据库记录的方式来将你所需的软件安装到你的Linux系统上的。 它最大的特点是将源码程序进行编译后,再打包成RPM格式的软件包;在安装软件时,RPM会首先读取包里面的配置文件,然后通过配置文件检查系统是否符合该软件安装时满足的依赖需求;若满足,则给予安装,否则不予安装。安装时,会将该软件的信息全部写入RPM数据库,以便未来管理(升级、卸载等)软件时使用
这种形式的好处是,首先软件的传输与安装都更方便,不用再进行编译了;然后就是软件在安装过程中都已经其全部信息写入到了系统RPM数据库上了,方便未来对软件的管理(升级、卸载等),当然还有一些其他的有点,比如:会检查对磁盘、操作系统等进行检查,避免程序出错;提供软件的详细信息(依赖需求、版本、用途等)。
这种形式也有不好的地方,比如:平台依赖性特别大(软件的安装环境要与包生成的环境一致或者相似),安装过程复杂(要解决依赖需求),软件卸载不容易(主要是软件卸载时,也会将其依赖程序卸载掉,处理不当很容易造成系统问题)。

二、与RPM相关的目录

通常情况下,RPM类型的软件在安装的时候,相关的程序就会去读取RPM包内的配置文件,然后将该配置文件里的数据与系统里的信息进行对比,以找出与其有依赖需求的程序是否安装;若其依赖的程序都已经安装好了,则安装该RPM文件,否则停止安装。
RPM文件在安装完成之后,程序会将该软件的相关信息写入到 /var/lib/rpm 目录下的数据库文件中,该目录下的数据库文件记录着已安装软件的版本信息、依赖需求信息,以及数字签名信息等。
除了上面提到的那个记录RPM数据库信息的 /var/lib/rpm目录,软件安装时也会涉及到以下几个目录:
目录用途
/etc放置配置文件的目录
/usr/bin放置可执行文件的目录
/usr/lib程序执行所需要的动态函数库的目录
/usr/share/doc放置软件的手册及说明文件的目录
/usrshare/man放置帮助文档的目录

三、RPM包安装、升级与更新、查询

  • 1、RPM包安装
软件安装是root(超级管理员)的权限,所以 rpm 这条命令也就只有root才能执行,其他用户是无法使用的。
通常情况下我们安装RPM包可以直接使用一下这个命令:
  • rpm -ivh packagename
这也是使用 rpm命令安装RPM包的基本命令格式,,其中的参数含义如下:
    • -i :install 安装的意思
    • -v:可以显示安装过程的详细信息
      • -vv 可以显示更详细的安装信息
    • -h:可以显示包的安装进度
这里写图片描述

在安装过程中,我们可能会遇到一些问题,但又不想放弃安装的情况,在这种情形下,可以参考一下参数进行安装:
选项含义使用场景注意
–nodeps忽略依赖关系,继续安装当软件安装发生依赖需求时,但仍想继续安装的时候软件之所以会产生依赖,是因为其功能的实现需要该依赖的支持,若要强制安装,则有可能会导致安装后的软件无法使用
–replacepkgs该选项会将系统中之前安装过的包进行覆盖安装当软件在安装过程中提示该包已经被安装过时,可以使用此选项进行覆盖安装
–replacefiles在安装时,对系统中已安装的RPM包文件进行覆盖在安装RPM包时,若系统中已经有安装过该RPM包的文件或者版本不符时,则会将原有的RPM包文件进行覆盖并安装覆盖时,原有的所有信息都将会丢失,所以此选项要慎用!!
–force强制安装相当于 –replacepkgs 和 –replacefiles 的综合体
–test测试安装,但不真正执行安装,即dry run模式用来检查该RPM包是否可以安装到该系统上,此过程不会进行正式安装
–nosignature不检查数字签名忽略数字签名检查
–nodigest不检查包完整性
–justdb更新软件在RPM数据库内的相关信息RPM数据库因为某些原因损坏或是发生错误时,可以使用该选项更新软件在RPM数据库中的信息
–prefix 想要自定义的路径后面跟一个想要的路径,即可将该软件安装到此指定的路径不想使用默认的安装路径,想像Windows上一样自定义安装路径
–noscripts不让软件在安装过程中自行执行某些系统指令可以指定是在安装前、安装后、卸载前、卸载后

注意:在安装时,不建议使用强制安装(即使用:–force),这样安装的软件可能会产生很多不可预测的问题,软件不能正常使用,同时更会可能浪费精力与时间!!

2、升级与更新
使用RPM进行升级与升级可以使用 -Uvh-Fvh 两个命令参数,它们的命令选项与 install 是一样的,此处就不再做介绍了!
不过 -Uvh-Fvh 之间还是有区别的:
-UVh
  • 若后面跟的软件即使没有被安装过,系统也会将其直接安装;若后面跟的软件是已经安装过的旧版本,系统则将对其进行更新
-Fvh
  • 若后面跟的软件没有被安装过,则系统将不会进行安装,即该参数只对系统已安装过的软件进行升级

3、查询

自从有了YUM之后,查询就基本快成了RPM用的最多的功能了!使用RPM进行软件包的相关查询,要首先明白一点的就是RPM查询时是到RPM的数据库及RPM包库中进行查询,没有安装过的包,RPM数据库中是没有相关数据的,也就查不出来!以下是RPM查询时常用到的参数及选项:

参数及选项含义
-q后面跟软件名,查询该软件是否已安装
-qa列出所有的已安装过的rpm包
-qf后面跟文件名,查询一个该文件来自于哪一个rpm包 (已安装的rpm)
-q –changelog查询软件版本更新日志
-qc查询软件包的配置文件(不是所有包都有配置文件,找的只是在/etc目录下的文件)
-qd查询软件包的帮助文档
-qi查询软件包的详细信息,包括版本,开发商等信息
-ql查询软件包在系统中的所有文件路径
-q –scripts列出安装后是否有要执行的脚本
-q –provides查询自身的功能
-qR查询与软件相依赖的软件所包含的文件
-qp[licdR]后面跟 RPM包名 查看未安装的RPM包的各项信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值