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

相关推荐

  • ansible

    ansible 安装ansible 查看当前的系统版本 yum install redhat-lsb-core -y [root@localhost httpd]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: C…

    Linux干货 2017-07-09
  • 磁盘管理及shell脚本编程练习

    1、创建一个10G分区,并格式为ext4文件系统 a) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl; ~]# mke2fs –t ext4 –b 2048 –m 2 –L MYDATA  /dev/sda3 b) 挂载至/data/madata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; ~…

    2017-11-15
  • shll函数作业

    扫描/etc/passwd文件每一行,如发现GECOS字段为空,则填充用户名和单位电话为62985600,并提示该用户的GECOS信息修改成功。 [root@localhost sh.log]# cat whileGECOS.sh  #!/bin/bash #author:DYW #扫描/etc/passwd文件每一行…

    Linux干货 2016-08-24
  • Hadoop实战实例

     Hadoop 是Google MapReduce的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java程序员可以不考虑内存泄露一样, MapReduce的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器…

    Linux干货 2015-04-13
  • Mariadb基于ssl的主从复制

    Mariadb基于ssl的主从复制 一、前言 备份数据库是生产环境中的首要任务,重中之重。一般配置中mariadb的主从传输是明文传输,但是有时候对一些特殊业务来说是不允许的,为了保证数据在传输过程中的安全性,因此使用基于SSL的复制会大大加强数据的安全性。 二、准备工作 1、实验系统环境: CentOS7.2,SELinux关闭,iptables关闭,安装…

    Linux干货 2017-02-24
  • 第九周

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;   1 #!/bib/bash   2 #   3 a=0   4 x=0   5 y=…

    Linux干货 2017-05-25