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包的数量。
由于安装包很多,所以这里也没有具体截图,给大家展示一下最后显示的结果,方法很多种,关键看你怎么用,能达到简单、快速、高效的结果(还记得rev是什么功能么?没错就是逆序输出内容。这里用rev取个巧)
2.查询命令java来自于哪个rpm包
这里呢执行一次,截了一次图,别问为什么,就是这么任性。当然了主要还是为了能让你们能够清晰直观的阅读,想知道java这个命令来自哪个包,当然得知道什么是java啦(第一张图示)然后 在接下来一步一步找,你会发现查了一步是链接,再查还是链接,有没有觉得很好玩,一层套一层,层层链接终于找到它。(当初实验的时候可是花费了很久才找到,找到了发现原来它就在这。这叫众里寻他千百度,蓦然回首,它就在java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64里)好了,以上就是今天的分享了,谢谢大家
原创文章,作者:吼吼哈嘿,如若转载,请注明出处:http://www.178linux.com/84908