本文整理汇总了Python中yum.YumBase.runTransaction方法的典型用法代码示例。如果您正苦于以下问题:Python YumBase.runTransaction方法的具体用法?Python YumBase.runTransaction怎么用?Python YumBase.runTransaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yum.YumBase
的用法示例。
在下文中一共展示了YumBase.runTransaction方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _run_transaction
# 需要导入模块: from yum import YumBase [as 别名]
# 或者: from yum.YumBase import runTransaction [as 别名]
def _run_transaction(transaction_name, install_mode, remove_mode):
import os
from yum import YumBase
transaction = open(os.path.join(config.STACKDIR, transaction_name),
'r')
my_yum = YumBase()
for line in transaction:
line = line.strip()
parts = line.split(' ')
if parts[0] == install_mode:
fn = my_yum.install
elif parts[0] == remove_mode:
fn = my_yum.remove
else:
assert False, "corrupt transaction file"
if parts[2] == 'None':
parts[2] = None
fn(name=parts[1], epoch=parts[2], version=parts[3],
release=parts[4], arch=parts[5])
dlpkgs = map(lambda x: x.po, filter(lambda txmbr:
txmbr.ts_state in ("i", "u"),
my_yum.tsInfo.getMembers()))
my_yum.downloadPkgs(dlpkgs)
my_yum.initActionTs() # make a new, blank ts to populate
my_yum.populateTs(keepold=0)
my_yum.ts.check() #required for ordering
my_yum.ts.order() # order
# FIXME: is it really sane to use this from here?
import sys
sys.path.append('/usr/share/yum-cli')
import callback
cb = callback.RPMInstallCallback(output = 0)
cb.filelog = True
cb.tsInfo = my_yum.tsInfo
my_yum.runTransaction(cb)