[Yum-devel] [PATCH] Add a user_cachedir config. for people who don't want to use /var/tmp, yum#337
James Antill
james at and.org
Thu Apr 1 20:24:03 UTC 2010
---
docs/yum.conf.5 | 6 ++++++
yum/__init__.py | 5 ++++-
yum/config.py | 3 ++-
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index fe195af..241cf70 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -28,6 +28,12 @@ Directory where yum should store its cache and db files. The default is
`/var/cache/yum'.
.IP
+\fBuser_cachedir\fR
+Directory prefix where yum should store its cache and db files, if called as a
+non-root user. Note that <userid>-<rand>/$basearch/$releasever is added to this
+prefix, by the yum cli. The default is `/var/tmp'.
+
+.IP
\fBpersistdir\fR
Directory where yum should store information that should persist over multiple
runs. The default is `/var/lib/yum'.
diff --git a/yum/__init__.py b/yum/__init__.py
index f7dd8f2..50eac02 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -4358,13 +4358,16 @@ class YumBase(depsolve.Depsolve):
self.repos.enableRepo(newrepo.id)
return newrepo
- def setCacheDir(self, force=False, tmpdir='/var/tmp', reuse=True,
+ def setCacheDir(self, force=False, tmpdir=None, reuse=True,
suffix='/$basearch/$releasever'):
''' Set a new cache dir, using misc.getCacheDir() and var. replace
on suffix. '''
if not force and os.geteuid() == 0:
return True # We are root, not forced, so happy with the global dir.
+
+ if tmpdir is None:
+ tmpdir = self.conf.user_cachedir
try:
cachedir = misc.getCacheDir(tmpdir, reuse)
except (IOError, OSError), e:
diff --git a/yum/config.py b/yum/config.py
index e51e46f..8d026f6 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -615,6 +615,7 @@ class YumConf(StartupConf):
recent = IntOption(7, range_min=0)
cachedir = Option('/var/cache/yum')
+ user_cachedir = Option('/var/tmp')
keepcache = BoolOption(True)
logfile = Option('/var/log/yum.log')
@@ -863,7 +864,7 @@ def readMainConfig(startupconf):
yumconf.populate(startupconf._parser, 'main')
# Apply the installroot to directory options
- for option in ('cachedir', 'logfile', 'persistdir'):
+ for option in ('cachedir', 'logfile', 'persistdir', 'user_cachedir'):
path = getattr(yumconf, option)
ir_path = yumconf.installroot + path
ir_path = ir_path.replace('//', '/') # os.path.normpath won't fix this and
--
1.6.6.1
More information about the Yum-devel
mailing list