rpm -e 做了什么

rpm -e(等同于 rpm --erase)这个命令能够卸载或擦除一个或多个安装包,当RPM卸载一个RPM包时,做了以下几件事:

确保数据库中没有其它包引用了要卸载的包。

执行卸载前的脚本(如果有的话)

检查配置文件是否已经被修改过,如果是,则保留它们的一个备份。

查询数据库,找到这个包安装的所有文件,如果该些文件不属于别的包,则将它们删除。

执行卸载后的脚本(如果有的话)

从数据库中删除包的所有追踪信息。

卸载一个包

# rpm -e eject

这样,eject包就被无声无息地卸载了,显然我们会想要得到更多的反馈信息,加上-v选项试试:

# rpm -ev eject

依然是没有任何东西输出,但是还有一个选项我们可以用。见下文。

使用-vv得到更多反馈信息

通过加上-vv选项,我们可以得到RPM卸载过程中的更多反馈信息:

# rpm -evv eject

D: uninstalling record number 286040

D: running preuninstall script (if any)

D: removing files test = 0

D: /usr/man/man1/eject.1 - removing

D: /usr/bin/eject - removing

D: running postuninstall script (if any)

D: removing database entry

D: removing name index

D: removing group index

D: removing file index for /usr/bin/eject

D: removing file index for /usr/man/man1/eject.1

虽然-v无法告诉我们什么东西,但是-vv却告诉我们很多东西,不过,它究竟告诉了我们什么呢?

首先,RPM打印出了软件包的记录号,这个记录号只对于那些写RPM数据库代码的人才有意义。

接着,RPM执行卸载前脚本,如果有脚本的话。

"removes files test = 0"这一行标识RPM将会卸载整个软件包,如果这个数字不为0的话,RPM只是进行了卸载环境的检测而已。当加上--test选项时,不为0的情况才会发生。

接下来的两行显示出了卸载过程中删除的文件,如果一个包中包含了很多文件,那么使用-vv参数将会导致大量的输出。

紧接着,RPM执行卸载后脚本,如果存在的话。这个脚本在所有文件删除后才执行。

最后,最后5行显示出RPM删除了数据库中的跟踪信息。

其他选项

--test:做卸载环境检测,但并不真正卸载软件。

--nodeps:在卸载之前,不检查依赖关系

--noscripts:不执行卸载前或卸载后的脚本

--rcfile :使用作为备选的rcfile

--root:使用作为备选的root

--dbpath :使用来访问数据库

rpm -e 与配置文件

如果你修改了软件安装时的配置文件,那么即使你卸载了软件,配置信息依然不会丢失。例如,你修改了/etc/skel/.bashrc(一个配置文件),这个配置文件是作为etcskel包的一部分被安装的。接下来,我们删除etcskel:

# rpm -e etcskel

我们去/etc/skel目录下看看:

# ls -al

total 5

drwxr-xr-x 3 root root 1024 Jun 17 22:01 .

drwxr-xr-x 8 root root 2048 Jun 17 19:01 ..

-rw-r--r-- 1 root root 152 Jun 17 21:54 .bashrc.rpmsave

drwxr-xr-x 2 root root 1024 May 13 13:18 .xfm

很显然,.bashrc.rpmsave这个文件就是你修改的配置的一个备份,然而你也应当要知道的是,这只是对配置文件RPM才会保留一个备份。

请注意

RPM卸载软件时几乎替你在操作系统上做了所有的事,这很棒。但是,这也意味着RPM在卸载你系统上的重要软件时,也一样铁面无私。例如:

RPM: RPM能卸载它自己吗,答案当然是可以。

Bash: 当心卸载掉了你机子上的Bash。

大多数情况下,RPM的依赖检测能检测到你所需要卸载的软件与其他软件的依赖关系,这会提醒你不要误删了软件。如果你是在不确定有何依赖关系,可以使用rpm -q来查询你想要卸载的软件。

参考资料

java rpm卸载_使用RPM卸载软件相关推荐

  1. edptrayicon怎么卸载_怎么彻底卸载北信源监控软件?(2)

    @echo off echo ************************************************** echo * 北信源内网桌面监控客户端 清理批处理 echo * B ...

  2. ant压缩在哪卸载_如何彻底卸载流氓软件?一篇教你彻底解决!

    之前有一篇,小懒写了关于不用所谓的"软件管家"下载软件的文章 但咱们不会总是能碰到好的软件呀,总有遇人不淑的时候 这时候,都已经安装过了,进也不是,退也不是 用只会越用电脑越卡顿, ...

  3. java mvp开发_如何从没有软件开发技能的想法变成现实的市场MVP?️?

    java mvp开发 by Mike Williams 由Mike Williams 如何从没有软件开发技能的想法变成现实的市场MVP?️? (How to go from idea to live ...

  4. uniaccess安全助手卸载_如何彻底卸载360

    今天,小编为小伙伴分享:彻底卸载360安全卫士的方法. 相信许多小伙伴都遇到过卸载完360安全卫士,它又会重新自动安装的情况? 那是为什么呢? 可以在360自动安装的时候,稍微关注一下. 它通过的是哪 ...

  5. mysql odbc怎么卸载_如何完全卸载数据库

    卸载步骤如下: 1. 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务. 2. 开始->程序->Oracle - OraHome81-> ...

  6. 网上报修系统java源码_网上报修系统管理软件

    网上报修系统管理软件适合于学校.企业的网上报修系统.没有复杂的操作,普通人员都很容易上手实践.并且在软件上不需要投入很多的人力培训进行操作. 网上报修系统管理平台,采用了BS架构开发,利用.NET技术 ...

  7. Linux软件安装卸载(yum+rpm)

    文章目录 软件包概念 yum ping命令 查看所有软件包 使用yum搜索要安装的软件 yum更新软件 yum软件安装 yum软件卸载 配置阿里yum源 lrzsz 从windows上传文件到Linu ...

  8. java rpm卸载_rpm包的卸载与安装

    1. rpm包的管理介绍:一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有RPM扩展名的文件,RPM是RedHat Package Manager(RedHat软件包管 ...

  9. linux卸载java rpm_Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数

    一.查看jdk安装目录 [root@node001 ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [root@node0 ...

最新文章

  1. 大型网站架构系列:缓存在分布式系统中的应用(一)
  2. .net MySql
  3. 【译】在Android中保护数据-加密大数据
  4. VTK:图片之ImageNonMaximumSuppression
  5. mac系统 PDO连接数据库报错处理
  6. 如何利用python将mp4文件转换为gif文件 + 代码分享 另附在线转换网址
  7. Spring Boot工作笔记-RabbitMQ中Unsupported major.minor version 52.0问题
  8. 我的世界python俄罗斯方块手机版下载_欢乐俄罗斯方块
  9. 杂谈---如果你是面试官,你希望你未来的同事具有哪些能力呢?
  10. python利用pandas存数据并且展示csv
  11. 复利计算1.0-2.0-3.0
  12. Jsonp 原理简述
  13. 用过企业微信APP 后,微信接收不到消息,解决方案
  14. 屏幕绘画 V1.1 - 一念(VB 绘制 图形)
  15. 静态库,动态库是啥,有啥区别(静态函数库/动态函数库)
  16. [转] 评 WOW技能天赋设计
  17. keil 工程编译后出现 file has been changed outside the editor, reload?
  18. 计算机与地震论文,地震数据论文,关于地震处理技术新进展相关参考文献资料-免费论文范文...
  19. SEO实战干货:网页建库与未建库的标准规则!
  20. 3.go mod的依赖文件所在位置

热门文章

  1. oracle9i档案文件创建,Oracle9i数据库系统管理 哪里有档案管理软件啊?
  2. 中移动为何惧怕Nokia和iPhone
  3. 计算机二级考试word没做完,计算机二级ms office是的Excel没做完会扣几分,太心急了,求求哪个告诉我???...
  4. Oracle添加字段备注以及查询
  5. 名字转换(java)
  6. 安卓手机怎么设置蓝牙耳机弹窗动画_安卓AndPods v1.5.9内购版 安卓使用AirPods蓝牙耳机...
  7. 医药行业数字化建设,箭在弦上
  8. Xlog加密使用指引
  9. python制作英汉词典_python如何制作英文字典
  10. 乐高机器人走进图书馆活动方案_综合实践活动——走进图书馆