Python 要降级的yum插件
我已经为yum编写了一个插件,用于在降级期间删除特定的rpm。但是我想在yum更新其他rpm之前删除rpm。(希望使用yum插件而不是在spec文件中限制订单) 我们能否在yum插件中的yum降级/升级/安装过程中限制更新/安装/删除/清除/擦除的顺序 yum插件的内容:Python 要降级的yum插件,python,linux,redhat,yum,Python,Linux,Redhat,Yum,我已经为yum编写了一个插件,用于在降级期间删除特定的rpm。但是我想在yum更新其他rpm之前删除rpm。(希望使用yum插件而不是在spec文件中限制订单) 我们能否在yum插件中的yum降级/升级/安装过程中限制更新/安装/删除/清除/擦除的顺序 yum插件的内容: def postresolve_hook(conduit): tsInfo = conduit.getTsInfo() rpmdb = conduit.getRpmDB() ol
def postresolve_hook(conduit):
tsInfo = conduit.getTsInfo()
rpmdb = conduit.getRpmDB()
oldlen = 0
while oldlen != len(tsInfo):
oldlen = len(tsInfo)
opts , commands = conduit.getCmdLine()
conduit.info(2, commands[0])
# If the command line input is 'update'/'upgrade'/'install' and 'sde rpm state is UPDATE' then remove these five rpms.
if ( commands[0] == ‘downgrade' ) and ( commands[1] == 'sde' ):
for txmbr in tsInfo.getMembersWithState(output_states=[TS_INSTALL]):
if txmbr.name == 'sde' and txmbr.version < '7.30':
conduit._base.remove(name='tclkit', arch='x86_64')
conduit._base.downgrade(name='svpermissions', arch='x86_64')
conduit._base.downgrade(name='svsde', arch='x86_64')
def后分解_挂钩(导管):
tsInfo=conductor.getTsInfo()
rpmdb=conductor.getRpmDB()
奥尔德伦=0
而奥德伦len(青佛):
oldlen=len(东京)
opts,commands=conductor.getCmdLine()
conductor.info(2,命令[0])
#如果命令行输入为“更新”/“升级”/“安装”且“sde rpm状态为更新”,则删除这五个rpm。
如果(命令[0]=“降级”)和(命令[1]=“sde”):
对于tsInfo.getMembersWithState中的txmbr(输出状态=[TS\u安装]):
如果txmbr.name=='sde'和txmbr.version<'7.30':
导管。_底座。移除(名称='tclkit',arch='x86_64')
导管。_基础。降级(name='svpermissions',arch='x86_64')
导管。_基础。降级(名称='svsde',拱='x86_64')
注意:我想限制突出显示部分的顺序。首先删除,然后降级其他RPM。但是,与擦除/删除相比,百胜内部会先更新/安装。百胜现有的降级功能有什么问题?即使我先提到了删除“tclkit”语句,然后再降级“svpermissions and svsde”,百胜也会先更新svsde和svpermissions,然后再删除tclkit。所以我希望它能限制订单。“先删除后更新”如果您觉得yum的行为有缺陷,那么应该向开发人员报告。我认为,在rpm下载后和运行事务之前,yum-python代码有一个特定的顺序,如1。更新2。安装3。拆下4。独立RPM的清理,正因为如此,它以一种特殊的方式运行,不像我在插件中提到的那样。