centos下卸载rpm包
rpm -qa|grep sphinx
rpm -e sphinx.....
RPM卸载软件包,并不是简单地将原来安装的文件逐个删除,那样做的话,可能会出现这样或那样的问题。如,A软件包依靠B软件包做某些工作,若B软件包卸载了,则A软件包就不能正常运行了。RPM为用户安全考虑,会做某些检查,尽可能排除出错的情况。
RPM在卸载软件包时,分步骤进行如下操作:
1. 检查依赖(Denpendency)
检查依赖的目的,在于确保当前没有任何软件包依赖于当前要卸载的软件包。
2. 执行卸载前触发脚本程序(Triggerun)
3. 执行卸载前脚本程序(Preuninstall)
本程序为软件包制作者设定,完成卸载前的一些工作,具体如,要卸载的软件包中某个
程序当前正在运行时,脚本程序必须杀掉它,否则无法正确卸载。
4. 检查配置文件(Configfiles)
RPM卸载软件包前会检查包中的配置文件是否修改了,如果修改了,RPM要换个名字保存
该文件,文件名一般是“原文件名+.rpmsave”。(这是RPM软件包管理的特色之一)
5. 真正卸载
即按照软件包中的文件列表,将文件逐个删除。要注意的是,如果其中有文件属于别的
软件包(即两个软件包拥有一个名字相同的文件),则RPM并不删除。
6. 执行卸载后脚本程序(Postuninstall)
本程序主要是完成卸载的善后工作,如将系统配置文件inetd.conf修改一下,去掉安装
时添加的东西等等。
7. 更新RPM数据库
卸载后,RPM删除该软件包在数据库中的所有信息。
8. 执行卸载后触发脚本程序(Triggerpostun)
命令格式
<ccid_nobr>
<ccid_code>rpm -e [卸载选项1 卸载选项2...] [软件包标识1 软件包标识2...] |
注: 也可使用--erase代替-e,效果相同。
软件包标识
对于已安装的软件包,RPM使用如下格式来唯一标识它:
<ccid_nobr>
<ccid_code>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等等。
选项列表
通用选项的解释,请参见<<RPM应用之安装篇>>,本文不再赘述。
下面对指定用选项做些解释:
1. --test : 卸载测试
RPM的卸载测试做些什么?主要是检查依赖关系,确保系统中没有软件包依赖于要卸载的软件包。如果还有软件包依赖要卸载的软件包,则RPM会提示依赖关系将中断的错误,例如:
<ccid_nobr>
<ccid_code># rpm -e --test mktemp |
当然,我们通过浏览卸载测试时输出的调试信息就知道得更清楚了。
<ccid_nobr>
<ccid_code># rpm -e --test -vv file | nl |
注: 本例进行file包的卸载测试,输出信息送管道交nl列出行号,现逐行解释。(行号后以D:开始的行输出的为调试信息)
第1行: 打开/var/lib/rpm目录下的RPM数据库;
第2行: 取已安装文件系统列表;
第3行: 执行卸载前触发脚本程序;
第4行: 这一行是卸载前触发脚本程序的执行结果;
第5行: RPM提示将要删除文件,其中test=1表明为卸载测试,并非真正删除;
第6-9行: 显示各文件的执行操作--删除;
第10行: 执行卸载后触发脚本程序;
第11行: 本行是卸载后触发脚本程序的执行结果;
第12行: 删除软件包在数据库中的信息。
2. --nodeps : 不检查依赖
RPM管理软件包,不仅管理包中的所有文件,还同时管理着软件包之间的依赖关系。如A依赖于B运行,若B不存在了,则A也就运行不了了。RPM维护着这种关系,尽量避免破坏,以保证软件的正常运行。上例进行mktemp包的卸载测试时,RPM提示了中断依赖关系的错误。如果使用本选项,不检查依赖,则卸载测试会顺利完成。
<ccid_nobr>
<ccid_code># rpm -e --test --nodeps mktemp |
需要说明的是,除非用户对软件包有足够了解,否则不要使用本选项,最好让RPM自动维护软件间的依赖关系,确保其能正常运行。
3. --noscripts : 不执行脚本程序
一个RPM软件包中可包含五种脚本程序,即:安装前脚本程序,安装后脚本程序,卸载前脚本程序,卸载后脚本程序和校验脚本程序。卸载时使用--noscripts选项,可禁止卸载前与卸载后脚本程序的执行。
注意: 一般用户不要使用此选项。此选项主要提供给软件包制作者使用的。通过禁止执行脚本程序,可以防止因安装带有BUG的软件包而宕掉整个系统。当软件包去掉了BUG后,此选项就不必使用了。
4. --notriggers : 不执行触发程序
为了软件包间的交互控制,RPM设计了三种触发程序:安装时触发程序,卸载前触发程序和卸载后触发程序。为了防止因某一软件包的卸载而引发卸载前与卸载后触发程序的执行,可以使用--notriggers选项。通过比较下一例子与第1个选项介绍中的例子的输出,就可看到:选择--notriggers选项后,卸载前与卸载后触发程序都没有被触发执行。
<ccid_nobr>
<ccid_code># rpm -e --test -vv --notriggers file | nl |
RPM可将同一软件的不同版本安装到系统中,这样如果想全部卸载掉,这时仅简单输软件名是不行的,将出现错误,如:
<ccid_nobr>
<ccid_code># rpm -q foo |
注: 本例中先查询foo包,发现有6.0和7.0版两个版本,接着卸载foo包,出现错误: 有多个软件包的名字均为foo。
怎样才能全部卸载呢?
答案之一是一个一个卸载,卸载时输入软件包标识,因为软件名相同,所以最少再输个版本号,这种情况适用于软件版本少的时候。
<ccid_nobr>
<ccid_code># rpm -e --allmatches foo |
卸载过程没有出现错误,之后再查询foo包,RPM则提示软件包未安装。
6. --justdb : 仅修改数据库
使用本选项后,RPM将只更新其数据库,文件系统不更新,意即如果软件包安装有文件的话,卸载后这些文件照样存<ccid_nobr>
<ccid_code># rpm -ql file |
注: 本例先用rpm -ql查询得到file包的文件列表,再用ls命令列包中的一个文件/usr/bin/file,能列出信息,故文件存在。然后用rpm -e --justdb卸载file包但只更新数据库,而后再用ls命令列/usr/bin/file,可以看到该文件依然存在。
centos下卸载rpm包的更多相关文章
- CentOS 中卸载 RPM 包文件
CentOS 中卸载 RPM 包文件 一.原由 因为之前卸载 openvas 这个工具,使用了 find / -name "openvas"-exec rm -rf {} \ ; ...
- centos下查看rpm包安装位置
1.如何安装rpm软件包 rpm -ivh your-package.rpm其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下. 2.如何卸载rpm软件包使用命令 r ...
- CentOS下的RPM包制作教程收集(rpmbuild)
http://www.jinbuguo.com/redhat/rpmbuild.html(中文手册) https://www.linuxidc.com/Linux/2016-09/134955.htm ...
- linux下正确卸载rpm包
linux下正确卸载rpm包 rpm -qa | grep -i ntp 执行结果: [root@bogon elasticsearch-head]# rpm -qa | grep -i ntp fo ...
- 用centos光盘安装RPM包的方法
1.在虚拟机光盘选项中设置连接路径为centos安装光盘. 2.将光盘挂载到本地目录. #新建一个文件夹 mkdir cdrom #把光盘挂载到cdrom目录下 mount /dev/cdrom cd ...
- 插入光盘,创建挂载点,挂载设备,安装rpm包,升级rpm包,卸载rpm包,查询rpm包是否安装,查询rpm包信息、安装位置,查询系统文件名属于哪个安装包
插入光盘: 创建挂载点: 创建挂载点. 挂载设备:或者mount /dev/sr0 /mnt/cdrom 安装rpm包: [root@localhost Packages]# rpm -ivh mys ...
- centos下卸载OpenJDK 并安装sun的jdk
centos下卸载OpenJDK 并安装sun的jdk 第一步:查看并卸载CentOS自带的OpenJDK 安装好的CentOS会自带OpenJdk,用命令 java -version ,我这里显示下 ...
- CentOS系统制作RPM包
打包编译好的命令,即可直接安装使用 #使用yum可解决依赖问题 [root@localhost ~]# yum -y localinstall *.rpm 一.使用fpm工具直接打包. Fpm安装 f ...
- 在Linux下下载RPM包
在Linux下下载RPM包,但是不安装 在工作中经常会遇到离线安装RPM包的情况,下面是下载RPM包的方法 # 使用yum下载RPM包 yum -y install --downloadonly &l ...
随机推荐
- LeetCode292:Nim Game
You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...
- HDU 1520Anniversary party(树型DP)
HDU 1520 Anniversary party 题目是说有N个人参加party,每个人有一个rating值(可以理解为权值)和一个up(上司的编号),为了保证party的趣味性,每一个人不可 ...
- UVA 11983 Weird Advertisement(线段树求矩形并的面积)
UVA 11983 题目大意是说给你N个矩形,让你求被覆盖k次以上的点的总个数(x,y<1e9) 首先这个题有一个转化,吧每个矩形的x2,y2+1这样就转化为了求N个矩形被覆盖k次以上的区域的面 ...
- CodeForces 710C Magic Odd Square (n阶奇幻方)
题意:给它定一个n,让你输出一个n*n的矩阵,使得整个矩阵,每行,每列,对角线和都是奇数. 析:这个题可以用n阶奇幻方来解决,当然也可以不用,如果不懂,请看:http://www.cnblogs.co ...
- sql server中的decimal或者numeric的精度问题
何谓精度:最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数.该精度必须是从 1 到最大精度 38 之间的值.默认精度为 18. 小数位数:小数点右边可以存储的十进制数字的最大位数.小数位数 ...
- UVa 10004:Bicoloring
这道题要我们判断所给图是否可以用两种颜色进行染色,即"二染色“.已知所给图一定是强连通图. 分析之: 若图中无回路,则该图是一棵树,一定可以二染色. 若图中有回路,但回路有偶数个节点,仍然可 ...
- Notes on Probabilistic Latent Semantic Analysis (PLSA)
转自:http://www.hongliangjie.com/2010/01/04/notes-on-probabilistic-latent-semantic-analysis-plsa/ I hi ...
- 理解MFC 文档、视图、框架[转]
理解文档/视图框架 出处.雷神 了解文档和视图的相互作用关系是编写MFC程序的基本功.但是MFC的应用程序框架把文档和视图之间 ...
- perl学习笔记(4)——动态加载
在写perl的时候,如果要应用到各种平台的话,比如linux 和windows,会遇到各种问题,有时就是要根据系统类型来加载各种库,之前写的就是这样的, if($^O eq 'linux'){ use ...
- CSS 强制换行和禁止换行学习
强制换行 1.word-break: break-all; 只对英文起作用,以字母作为换行依据. 2.word-wrap: break-word; 只对英文起作 ...