卸载参数
RPM卸载软件包不简单地删除原始文件一个接一个。在这种情况下,可能会出现这样的问题。
RPM卸载参数测试:卸载测试nodeps:不检查依赖——noscripts:不执行的脚本程序,notriggers:不执行触发程序——justdb:修改数据库--力。
RPM卸载软件包不简单地删除原始文件一个接一个。在这种情况下,可能会有这样的问题。例如,一个软件包依赖的B计划的一些工作,如果B包卸下,一个包将不会运行,为用户的安全考虑properly.rpm,会做一些检查,尽可能消除误差的情况。
当转速卸载一个软件包,执行以下步骤:
1。检查依赖(依赖)
检查依赖关系的目的是确保目前没有软件包依赖于当前卸载的软件包。
2。执行预卸载触发器脚本(triggerun)
三.该预卸载脚本执行(preuninstall)
这个程序是由软件包生成程序完成的,在卸载之前完成一些工作,比如卸载一个软件包。
当程序当前运行时,脚本必须杀死它,否则它不能被正确卸载。
4。检查配置文件(其配置文件)
RPM卸载软件包将检查包中的配置文件已被修改,如果RPM被修改,名称将通过更改名称保存。
文件名一般是原文件名+。rpmsave。(这是一个RPM软件包管理的特点)
5。真正的卸载
也就是说,按照软件包中的文件列表一个接一个地删除这个文件,重要的是要注意,如果有一个文件属于另一个文件。
一个软件包(即,两个软件包具有相同名称的文件)不会被RPM删除。
6。的后卸载脚本执行(postuninstall)
这个程序主要是完成卸载后,如系统配置文件中修改、删除安装
当你添加一些东西,等等。
7。更新RPM数据库
卸载后,转从数据库中删除所有软件包的信息。
8。执行卸载触发器脚本(Triggerpostun)
命令格式
RPM -卸载选项1卸载选项2…}软件包标识1软件包标识2…}
注意:擦除也可以代替E,效果相同。
软件包的识别
对于已安装的软件包,RPM使用以下格式来唯一地标识它:
名称{ -子名字}版本发布
其中:姓名:指软件的名称;
子名字:该选项是指包的包的名称。
版本:指软件版本号。注:一个不能包含减号(-)字符;
发布:指软件发布日期。
例如,在安装包文件file-3.26-6.i386.rpm,其软件包被确定为file-3.26-6.you可以使用该识别卸载、查询和检查软件包。当你进入一个包装标志的命令行,你可以写它的全部,你可以用它在很短的方式。例如,file-3.26-6,只有文件,或file-3.26,或完整。也喜欢:一子包标识xfree86-devel-3.3.6-6包,只能进入xfree86-devel-3.3.6 XFree86开发,或者,也可以完全投入。
注:软件包识别区分,即大写字母不同小写字母。如果bash-2.03-10标志不能失去作为一个bash-2.03-10,不能失去作为一个bash-2.03-10等等。
下面是对指定选项的一些解释:
1。-测试:卸载测试
RPM的卸载测试主要是检查依赖关系,确保系统中的软件包不依赖于卸载的包。如果有软件包依赖于卸载的软件包,RPM将促使依赖项被中断,例如:
转- E -测试mktemp #
错误:删除这些包会破坏依赖关系:
mktemp需要autoconf-2.13-5
mktemp需要dev-2.7.7-4bp
mktemp需要groff-1.11a-10bp
mktemp需要gzip-1.2.4-15bp
mktemp需要initscripts-4.16-3bp
mktemp需要metamail-2.7-21bp
mktemp需要rpm-3.0.3-4bp
mktemp需要autofs-3.1.3-2
/斌/ mktemp需要apache-1.3.12-5bp
/斌/ mktemp需要linuxconf-1.16r1.3-4bp
#
当然,通过从卸载测试中浏览调试信息,我们会更清楚地知道。
转- E -测试- VV文件# | NL
1天:打开数据库模式 / / 0x0功 / lib /转/
2:要安装的文件系统列表
3 +回声triggeruninstall
4 triggeruninstall
5 D:将删除文件测试= 1
6 D:file: /usr/share/magic action: remove
7天:文件: / usr /人/男4 /魔法。4行动:删除
8天:文件: / usr /人/必须/文件。1行动:删除
9天:文件: / usr /斌/文件操作:删除
10 +回声triggerpostuninstall
11 triggerpostuninstall
12 D:删除数据库条目
注意:这个示例执行文件包的卸载测试,输出信息被发送到管道,行号由NL列出,现在它是一行一行地解释。(在行号之后,以D开头的行是调试信息)
第一行:打开RPM目录下的RPM数据库;
第二行:获取已安装文件系统的列表;
第三行:在执行卸载之前触发脚本;
第四行:此行是在卸载之前执行触发器脚本的结果;
第五行:RPM提示将删除该文件,其中测试= 1显示卸载测试,而不是真正删除;
线6-9显示每个文件的执行--删除;
第十行:在卸载完成后触发脚本;
第十一行:银行是卸载后触发脚本执行的结果;
点评:RPM卸载参数测试:卸载测试nodeps:不检查依赖——noscripts:不执行的脚本程序,notriggers:不执行触发程序——justdb:修改数据库--力。
RPM卸载软件包不简单地删除原始文件一个接一个。在这种情况下,可能会出现这样的问题。
第十二行:从数据库中的软件包中删除信息。
2。——nodeps:不检查依赖
RPM管理软件不仅可以管理所有的文件包中,也是管理之间的依赖关系的软件包。如果取决于B,如果B不存在,那么将不run.rpm保持这种关系,尽可能避免确保软件正常运行的伤害。这mktemp包卸试验表明,转速的误差依赖中断。如果使用此选项并且依赖不检查,卸载试验将顺利完成。
#转- E -测试- nodeps mktemp
#
需要解释的是,除非用户对软件包有足够的了解,否则不要使用此选项。RPM能更好地维护软件之间的依赖关系,确保软件正常运行。
三.——noscripts:不执行脚本
一个RPM软件包可以包含五种脚本程序:安装脚本安装前,安装后安装脚本,脚本之前卸载,卸载和验证脚本程序在脚本程序,noscripts选项时使用的卸载,禁止卸载后卸载脚本的执行。
注意:此选项不被一般用户使用。此选项主要由软件包生产商使用。通过禁止脚本程序的执行,可以防止安装错误软件包和整个系统。当软件包从bug中删除时,不需要使用此选项。
4。——notriggers:没有触发不执行程序
为了控制软件包之间的相互作用,转了三触发器:在安装程序的触发,触发程序之前卸载,卸载后触发。-- notriggers选项可以用来防止执行卸载,卸载之前,由于软件包卸载触发器。比较下面的例子输出的第一个选项,我们可以看到,在选择-- notriggers选项,卸载前和卸载后不触发的触发程序。
转- E -测试- VV——notriggers文件# | NL
1天:打开数据库模式 / / 0x0功 / lib /转/
2:要安装的文件系统列表
3 D:将删除文件测试= 1
4天:文件: / usr /分享/魔法作用:去除
5天:文件: / usr /人/男4 /魔法。4行动:删除
6天:文件: / usr /人/必须/文件。1行动:删除
7天:文件: / usr /斌/文件操作:删除
8 D:删除数据库条目
5。——allmatches:卸载所有匹配的数据包
RPM可以将相同软件的不同版本安装到系统中,这样,如果您想卸载所有的软件,那么简单地丢失软件的名称是不好的,并且会出现错误,例如:
# RPM -q foo
foo-6.0-1
foo-7.0-1
# RPM -E Foo
错误:指定多个包
#
注意:在这种情况下,食品包查询第一和6版和7版两个版本,然后foo包卸载。有一个错误:多个软件包的名称都是。
你怎么能卸下所有的钱呢
其中一个关键是卸载一个一个,并在软件卸载时输入软件包标识符,因为软件名称相同,所以至少会丢失一个版本号,它适用于较少的软件版本。
转- E - allmatches foo #
# RPM -q foo
未安装包富
#
在卸载过程中没有错误,然后查询包,rpm表示没有安装包。
6。——justdb:只有修改数据库
使用此选项,RPM将更新其数据库,文件系统不更新,这意味着如果软件的安装文件,这些文件仍然存在卸载#转- QL文件后
/ usr /斌/文件
/ usr /人/必须/文件。1
/ usr /人/男4 / 4魔法。
/ usr /分享/魔法
# ls - L / usr /斌/文件
- rwxr-xr-x 1根root23948损坏231999 / usr /斌/文件
转- E - justdb文件#
# ls - L / usr /斌/文件
- rwxr-xr-x 1根root23948损坏231999 / usr /斌/文件
#
注:本例首先使用rpm查询得到的文件包中的文件列表,然后在ls命令使用文件包中的文件列表, / usr /斌/文件,列出信息,所以文件存在。然后你卸载文件包转- E - justdb只更新数据库,然后ls命令列/ usr /斌/文件,您可以看到文件仍然存在。