RPM 卸载参数[通俗易懂]

RPM 卸载参数[通俗易懂]rpm卸载参数–test:卸载测试 –nodeps:不检查依赖–noscripts:不执行脚本程序–notriggers:不执行触发程序–justdb:仅修改数据库–force强制 RPM卸载软件包,并不是简单地将原来安装的文件逐个删除,那样做的话,可能会出现这样或那样的问题。如,A软件包依靠B软件包做某些工作,若B软件包卸载了,则A软件包就

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

rpm卸载参数–test : 卸载测试  –nodeps : 不检查依赖 –noscripts : 不执行脚本程序 –notriggers : 不执行触发程序 –justdb : 仅修改数据库 –force 强制 
RPM卸载软件包,并不是简单地将原来安装的文件逐个删除,那样做的话,可能会出现这样或那样的问题。如,A软件包依靠B软件包做某些工作,若B软件包卸载了,则A软件包就不能正常运行了。RPM为用户安全考虑,会做某些检查,尽可能排除出错的情况。   
RPM在卸载软件包时,分步骤进行如下操作:   
1. 检查依赖(Dependency)   
检查依赖的目的,在于确保当前没有任何软件包依赖于当前要卸载的软件包。   
2. 执行卸载前触发脚本程序(Triggerun)   
3. 执行卸载前脚本程序(Preuninstall)   
本程序为软件包制作者设定,完成卸载前的一些工作,具体如,要卸载的软件包中某个   
程序当前正在运行时,脚本程序必须杀掉它,否则无法正确卸载。   
4. 检查配置文件(Configfiles)   
RPM卸载软件包前会检查包中的配置文件是否修改了,如果修改了,RPM要换个名字保存   
该文件,文件名一般是“原文件名+.rpmsave”。(这是RPM软件包管理的特色之一)   
5. 真正卸载   
即按照软件包中的文件列表,将文件逐个删除。要注意的是,如果其中有文件属于别的   
软件包(即两个软件包拥有一个名字相同的文件),则RPM并不删除。   
6. 执行卸载后脚本程序(Postuninstall)   
本程序主要是完成卸载的善后工作,如将系统配置文件inetd.conf修改一下,去掉安装   
时添加的东西等等。   
7. 更新RPM数据库   
卸载后,RPM删除该软件包在数据库中的所有信息。   
8. 执行卸载后触发脚本程序(Triggerpostun)   
命令格式   
rpm -e [卸载选项1 卸载选项2…] [软件包标识1 软件包标识2…]  
注: 也可使用–erase代替-e,效果相同。   
软件包标识  
对于已安装的软件包,RPM使用如下格式来唯一标识它:   
Name[-Subname]-Version-Release  
其中: Name: 指软件名;  
Subname : 本项可选,指软件包子包的名字;  
Version : 指软件版本号。注意:其中不能含减号(-)字符;  
Release : 指软件释出号。  
例如: 包裹文件file-3.26-6.i386.rpm安装后,其软件包标识为file-3.26-6。可以用此标识卸载,查询,校验该软件包。在命令行上输入软件包标识时,可以写全,也可以采用简写的方式。如file-3.26-6,可仅输入file,或file-3.26,或输全。又如: 带有子包的软件包标识XFree86-devel-3.3.6-6,可仅输入XFree86-devel,或XFree86-devel-3.3.6,还可完全输入。   
注意: 软件包标识是大小写敏感的,即大写字母与小写字母表示不同的涵义。如bash-2.03-10标识不能输作Bash-2.03-10,也不能输作bAsh-2.03-10等等。   
下面对指定用选项做些解释:   
1. –test : 卸载测试   
RPM的卸载测试做些什么?主要是检查依赖关系,确保系统中没有软件包依赖于要卸载的软件包。如果还有软件包依赖要卸载的软件包,则RPM会提示依赖关系将中断的错误,例如:   
# rpm -e –test mktemp  
error: removing these packages would break dependencies:  
mktemp is needed by autoconf-2.13-5  
mktemp is needed by dev-2.7.7-4BP  
mktemp is needed by groff-1.11a-10BP  
mktemp is needed by gzip-1.2.4-15BP  
mktemp is needed by initscripts-4.16-3BP  
mktemp is needed by metamail-2.7-21BP  
mktemp is needed by rpm-3.0.3-4BP  
mktemp is needed by autofs-3.1.3-2  
/bin/mktemp is needed by apache-1.3.12-5BP  
/bin/mktemp is needed by linuxconf-1.16r1.3-4BP  
#  
当然,我们通过浏览卸载测试时输出的调试信息就知道得更清楚了。   
# rpm -e –test -vv file | nl  
1 D: opening database mode 0x0 in //var/lib/rpm/  
2 D: getting list of mounted filesystems  
3 + echo triggeruninstall  
4 triggeruninstall  
5 D: will remove files test = 1  
6 D:file: /usr/share/magic action: remove  
7 D:file: /usr/man/man4/magic.4 action: remove  
8 D:file: /usr/man/man1/file.1 action: remove  
9 D:file: /usr/bin/file action: remove  
10 + echo triggerpostuninstall  
11 triggerpostuninstall  
12 D: removing database entry  
注: 本例进行file包的卸载测试,输出信息送管道交nl列出行号,现逐行解释。(行号后以D:开始的行输出的为调试信息)   
第1行: 打开/var/lib/rpm目录下的RPM数据库;   
第2行: 取已安装文件系统列表;   
第3行: 执行卸载前触发脚本程序;   
第4行: 这一行是卸载前触发脚本程序的执行结果;   
第5行: RPM提示将要删除文件,其中test=1表明为卸载测试,并非真正删除;   
第6-9行: 显示各文件的执行操作–删除;   
第10行: 执行卸载后触发脚本程序;   
第11行: 本行是卸载后触发脚本程序的执行结果;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190613.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月17日 下午1:22
下一篇 2026年2月17日 下午2:01


相关推荐

  • 如何删除远程连接记录

    如何删除远程连接记录

    2021年11月17日
    57
  • GET和POST请求的区别(超详细)

    GET和POST请求的区别(超详细)GET 和 POST 请求的区别 超详细 相信很多小伙伴在面试的过程中 总会被面试官问道 请你回答一下 GET 请求和 POST 请求的区别 大家的回答一般都是如下图 对于有了 2 年以上开发经验的小伙伴来说 光回答这几点是不够滴 接下来 我就告诉大家可以补充以下几点 1 报文上的区别 GET 和 POST 只是 HTTP 协议中两种请求方式 所以在传输上 没有区别 因为 HTTP 协议是基于 TCP IP 的应用层协议报文格式上 不带参数时 最大区别仅仅是第一行方法名不同 一个是 GET 一个是 POST 带参

    2026年3月16日
    2
  • 几种常见GC算法介绍「建议收藏」

    几种常见GC算法介绍「建议收藏」本文主要是对常用的GC算法(引用计数法、标记-清除法、复制算法、标记-清除算法)作出相关的说明,并对相关知识做简单的介绍。一、什么是堆?    堆指用于动态(即执行程序时)存放对象的内存空间。而这个对象,在面向对象的编程中,它指“具有属性和行为的事物”,然而在GC的世界中,对象表示的是“通过应用程序利用的数据的集合”。具体到Java堆,它是所有线程共享的一块内存区域,在虚拟机启动时创…

    2022年6月16日
    29
  • RedFlag Linux 5.0桌面版安装oralce10[通俗易懂]

    RedFlag Linux 5.0桌面版安装oralce10[通俗易懂] 本文中描述的步骤可能有些不是必须的,但笔者没有进一步验证,故将安装过程中的所有步骤均列出在此。—www.bianceng.cn1.安装RedflagLinux5.0桌面版2.安装前得准备,打几个补丁1).redhatlinux9下第一张光盘下的RedHat/RPMS/compat-libstdc++-7.3-2.96.118.i386.rpm(安装方法rpm-ivh

    2022年8月20日
    8
  • harbor搭建详解(仓库阁楼搭建效果图)

    一、Harbor介绍Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的DockerRegistry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能二、环境准备Harbo…

    2022年4月18日
    51
  • OpenSSL心血漏洞分析「建议收藏」

    OpenSSL心血漏洞分析「建议收藏」SSL是一种理论,而其具体实现,就有好多了,firefox有自己的实现,旧版本的chrome有自己的实现,Openssl也属于实现的一种。   该漏洞并不是协议上的漏洞,而是针对某个实现的漏洞,说简单点就是:代码写的烂或者考虑不全面。 受影响的OpenSSL版本:OpenSSL1.0.2-betaOpenSSL1.0.1-OpenSSL1.0.1f 

    2022年7月17日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号