本文整理汇总了Python中yum.YumBase.doConfigSetup方法的典型用法代码示例。如果您正苦于以下问题:Python YumBase.doConfigSetup方法的具体用法?Python YumBase.doConfigSetup怎么用?Python YumBase.doConfigSetup使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yum.YumBase
的用法示例。
在下文中一共展示了YumBase.doConfigSetup方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testable
# 需要导入模块: from yum import YumBase [as 别名]
# 或者: from yum.YumBase import doConfigSetup [as 别名]
def testable(self):
""" Get a list of installed testing updates.
This method is a generate that yields packages that you currently
have installed that you have yet to test and provide feedback for.
"""
from yum import YumBase
yum = YumBase()
yum.doConfigSetup(init_plugins=False)
with open('/etc/fedora-release', 'r') as f:
fedora = f.readlines()[0].split()[2]
tag = 'f%s-updates-testing' % fedora
builds = self.get_koji_session(
login=False).listTagged(tag, latest=True)
for build in builds:
pkgs = yum.rpmdb.searchNevra(name=build['name'],
ver=build['version'],
rel=build['release'],
epoch=None,
arch=None)
if len(pkgs):
update_list = self.query(package=[build['nvr']])['updates']
for update in update_list:
yield update
示例2: get_yum_releasever
# 需要导入模块: from yum import YumBase [as 别名]
# 或者: from yum.YumBase import doConfigSetup [as 别名]
def get_yum_releasever(yumbase=None):
if not yumbase:
yumbase = YumBase()
yumbase.doConfigSetup(init_plugins=False)
yum_releaseversion = yumbase.conf.yumvar['releasever']
releasever = yum_releaseversion.lower().replace('server', '')
return releasever
示例3: YumDebugInfoDownload
# 需要导入模块: from yum import YumBase [as 别名]
# 或者: from yum.YumBase import doConfigSetup [as 别名]
class YumDebugInfoDownload(DebugInfoDownload):
def __init__(self, cache, tmp, repo_pattern="*debug*", keep_rpms=False,
noninteractive=True):
super(YumDebugInfoDownload, self).__init__(cache, tmp, repo_pattern, keep_rpms, noninteractive)
self.base = YumBase()
def initialize_progress(self, updater):
self.progress = YumDownloadCallback(updater)
self.base.repos.setProgressBar(self.progress)
self.base.repos.setMirrorFailureCallback(downloadErrorCallback)
def prepare(self):
self.mute_stdout()
#self.conf.cache = os.geteuid() != 0
# Setup yum (Ts, RPM db, Repo & Sack)
# doConfigSetup() takes some time, let user know what we are doing
try:
# Saw this exception here:
# cannot open Packages index using db3 - Permission denied (13)
# yum.Errors.YumBaseError: Error: rpmdb open failed
self.base.doConfigSetup()
except YumBaseError as ex:
self.unmute_stdout()
print(_("Error initializing yum (YumBase.doConfigSetup): '{0!s}'").format(str(ex)))
#return 1 - can't do this in constructor
exit(1)
self.unmute_stdout()
# make yumdownloader work as non root user
if not self.base.setCacheDir():
print(_("Error: can't make cachedir, exiting"))
return RETURN_FAILURE
# disable all not needed
for repo in self.base.repos.listEnabled():
try:
repo.close()
self.base.repos.disableRepo(repo.id)
except YumBaseError as ex:
print(_("Can't disable repository '{0!s}': {1!s}").format(repo.id, str(ex)))
def initialize_repositories(self):
# setting-up repos one-by-one, so we can skip the broken ones...
# this helps when users are using 3rd party repos like rpmfusion
# in rawhide it results in: Can't find valid base url...
for r in self.base.repos.findRepos(pattern=self.repo_pattern):
try:
rid = self.base.repos.enableRepo(r.id)
self.base.repos.doSetup(thisrepo=str(r.id))
log1("enabled repo %s", rid)
setattr(r, "skip_if_unavailable", True)
# yes, we want async download, otherwise our progressCallback
# is not called and the internal yum's one is used,
# which causes artifacts on output
try:
setattr(r, "_async", False)
except (NameError, AttributeError) as ex:
print(str(ex))
print(_("Can't disable async download, the output might contain artifacts!"))
except YumBaseError as ex:
print(_("Can't setup {0}: {1}, disabling").format(r.id, str(ex)))
self.base.repos.disableRepo(r.id)
# This is somewhat "magic", it unpacks the metadata making it usable.
# Looks like this is the moment when yum talks to remote servers,
# which takes time (sometimes minutes), let user know why
# we have "paused":
try:
self.base.repos.populateSack(mdtype='metadata', cacheonly=1)
except YumBaseError as ex:
print(_("Error retrieving metadata: '{0!s}'").format(str(ex)))
#we don't want to die here, some metadata might be already retrieved
# so there is a chance we already have what we need
#return 1
try:
# Saw this exception here:
# raise Errors.NoMoreMirrorsRepoError, errstr
# NoMoreMirrorsRepoError: failure:
# repodata/7e6632b82c91a2e88a66ad848e231f14c48259cbf3a1c3e992a77b1fc0e9d2f6-filelists.sqlite.bz2
# from fedora-debuginfo: [Errno 256] No more mirrors to try.
self.base.repos.populateSack(mdtype='filelists', cacheonly=1)
except YumBaseError as ex:
print(_("Error retrieving filelists: '{0!s}'").format(str(ex)))
# we don't want to die here, some repos might be already processed
# so there is a chance we already have what we need
#return 1
def triage(self, files):
not_found = []
package_files_dict = {}
todownload_size = 0
installed_size = 0
for debuginfo_path in files:
log2("yum whatprovides %s", debuginfo_path)
pkg = self.base.pkgSack.searchFiles(debuginfo_path)
# sometimes one file is provided by more rpms, we can use either of
# them, so let's use the first match
#.........这里部分代码省略.........