Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 要降级的yum插件_Python_Linux_Redhat_Yum - Fatal编程技术网

Python 要降级的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

我已经为yum编写了一个插件,用于在降级期间删除特定的rpm。但是我想在yum更新其他rpm之前删除rpm。(希望使用yum插件而不是在spec文件中限制订单)

我们能否在yum插件中的yum降级/升级/安装过程中限制更新/安装/删除/清除/擦除的顺序

yum插件的内容:

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的清理,正因为如此,它以一种特殊的方式运行,不像我在插件中提到的那样。