rpm管理包

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。接下来聊一聊如何安装、卸载、查询、检验rpm类的软件。

安装:

rpm [-i|–install][install-options] 软件包名

 -v 显示详细信息

 -h 以#来表示安装进度

 –test 测试安装,不执行真正的安装过程

 –nodeps 忽略依赖关系(能安装成功,但不一定能运行成功)

 –force 强制安装

 –replacepkgs 重装并覆盖原有文件

 安装时常用组合:-ivh

升级:

rpm [-U|–upgrade][install-options] 软件包名

 -U 升级或安装

 -F 升级

 -Uvh 当有旧版本的安装包时,则卸载旧包再装新包,如没有旧包,直接装新包。

 -Fvh 当有旧版本的安装包时,卸载旧包装新包,无旧包时,什么都不做

 –test: 测试安装,但不真正执行安装,即dry run模式

 –nodeps:忽略依赖关系

 –oldpackage 降级 已有新包,装旧包。

 –force 强制安装。

【温馨提示】

(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此可以直接安装多个版本内核

(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

查询:

rpm [-q|–query][select-options][query-options] 软件包名

 -q  查询某软件包是否安装

 -qa 查询已经安装的所有软件包

 -qf 查询某文件由哪个软件包生成

 -qp 查询未安装的软件包

 -qi 查询某软件包的详细信息

 -ql 查询软件包安装生成的文件列表

 -qc 查询软件包的配置文件(不是所有包都有配置文件)

 -qd 查询软件包的帮助文档

 -qR 查询实现自身的功能需要什么能力

 -q –changelog 版本更新日志

 -q –scripts 查询软件包自带的脚本

 -q –provides 查询自身提供的capabilities

 -q –requires 查询自身所依赖的capabilities

卸载:

rpm -e 软件包名

     –nodeps 忽略依赖性关系,强制卸载  

 –test 测试卸载,即dry-run模式

 –allmatches 如果一个程序包同时安装多个版本,则此选项可以一次全部卸载。

【温馨提示】

如果程序包的配置文件安装后曾被修改,卸载时,此文件通常不会被删除,而是被重命名(FILENAME.rpmsave)后留存

验证:

rpm -V 软件包名

    -V 查询软件包安装之后生成的文件是否发生了改变

    -K 验证软件包的完整性和rpm签名是否合法

–nosignature: 不检查来源合法性

    –nodigest:不检查包完整性

    –noscripts:不执行程序包脚本

      %pre: 安装前脚本; –nopre

      %post: 安装后脚本; –nopost

      %preun: 卸载前脚本; –nopreun

      %postun: 卸载后脚本; –nopostun

最后来两道练习题吧:

1.统计光盘中Packages下,各种架构的rpm包的数量。

rpm管理包

由于安装包很多,所以这里也没有具体截图,给大家展示一下最后显示的结果,方法很多种,关键看你怎么用,能达到简单、快速、高效的结果(还记得rev是什么功能么?没错rpm管理包就是逆序输出内容。这里用rev取个巧)

2.查询命令java来自于哪个rpm包

rpm管理包

rpm管理包

rpm管理包

rpm管理包

rpm管理包

这里呢执行一次,截了一次图,别问为什么,就是这么任性rpm管理包。当然了主要还是为了能让你们能够清晰直观的阅读,想知道java这个命令来自哪个包,当然得知道什么是java啦(第一张图示)然后 在接下来一步一步找,你会发现查了一步是链接,再查还是链接,有没有觉得很好玩,一层套一层,层层链接终于找到它。(当初实验的时候可是花费了很久才找到,找到了发现原来它就在这。这叫众里寻他千百度,蓦然回首,它就在java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64里rpm管理包)好了,以上就是今天的分享了,谢谢大家rpm管理包

原创文章,作者:吼吼哈嘿,如若转载,请注明出处:http://www.178linux.com/84908

(0)
吼吼哈嘿吼吼哈嘿
上一篇 2017-08-19
下一篇 2017-08-19

相关推荐

  • 每日一练 —8.4 文本处理工具,正则表达式

    练习 1 、找出ifconfig 命令结果中本机的所有IPv4 地址 2 、查出分区空间使用率的最大百分比值 3 、查出用户UID 最大值的用户名、UID 及shell 类型 4 、查出/tmp 的权限,以数字方式显示 5 、统计当前连接本机的每个远程主机IP 的连接数,并按从大到小排序   6,显示/proc/meminfo文件中以大写或小写s开…

    Linux干货 2016-08-15
  • linux任务管理与计划

    linux系统作业控制的命令:     job(作业):一个作业通常包含多个命令(也有可能只包含一个),联合起来由单个小程序组合,完成复杂任务,对Linux而言作业有两种;前台作业和后台作业        前台作业(forgroud):通过终端启动,且启动后会…

    Linux干货 2016-09-13
  • 文件编辑之神器Sed

    pattern space   //  文本中每行内容都会进入到pattern space中, 如果匹配到了,就会进入到右分支, 如果没有匹配到,则进入左分支。 hold space  //  就是已经被模式匹配到, 并且编辑后保存的内容就是hold space 中. 默认情况下,当没有被匹配之后,没有匹配到…

    Linux干货 2016-08-15
  • Bash Shell中的for循环和运算表达式应用

    Bash Shell中的for循环和运算表达式应用 1、写一个脚本 实现以下功能: 接受一个以上文件路径作为参数, 显示每个文件拥有的行数,总结说明本次共为几个文件统计了其行数。设定此脚本至少需要一个参数并给出提示,$#表示参数的个数。将脚本提供的所有参数组成一个列表放入for语句依次进行循环执行echo "$i has $(wc -l $i | …

    Linux干货 2016-12-13
  • bash脚本之数组及字符串切片,登陆配置文件

    一,概述 数组(就是一堆变量的集合) 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合/ 数组名和索引     索引:编号从0开始,属于数值索引     注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后…

    Linux干货 2016-09-01