Opened 11 years ago
Closed 11 years ago
#98 closed defect (duplicate)
Unable to specify log location outside of %unixroot
| Reported by: | Lewis Rosenthal | Owned by: | |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | yum | Version: | |
| Severity: | Keywords: | ||
| Cc: | 
Description
On this machine, %unixroot is J:
Changing log location in yum.conf to systemwide log dir (c:/var/log) produces output from yum such as:
[j:\devel\yumie\yumie_preview7\scripts]yum info clamav
Loaded plugins: fastestmirror, remove-with-leaves
Traceback (most recent call last):
  File "J:\USR\BIN\YUM", line 29, in <module>
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/@unixroot/usr/share/yum-cli/yummain.py", line 254, in user_main
    errcode = main(args)
  File "/@unixroot/usr/share/yum-cli/yummain.py", line 88, in main
    base.getOptionsConfig(args)
  File "/@unixroot/usr/share/yum-cli/cli.py", line 191, in getOptionsConfig
    self.conf
  File "/@unixroot/usr/lib/python2.7/site-packages/yum/__init__.py", line 781, i
n <lambda>
    conf = property(fget=lambda self: self._getConfig(),
  File "/@unixroot/usr/lib/python2.7/site-packages/yum/__init__.py", line 311, i
n _getConfig
    self.doFileLogSetup(self.conf.uid, self.conf.logfile)
  File "/@unixroot/usr/lib/python2.7/site-packages/yum/__init__.py", line 331, i
n doFileLogSetup
    logginglevels.setFileLog(uid, logfile)
  File "/@unixroot/usr/lib/python2.7/site-packages/yum/logginglevels.py", line 1
91, in setFileLog
    os.makedirs(logdir, mode=0755)
  File "/@unixroot/usr/lib/python2.7/os.py", line 152, in makedirs
    makedirs(head, mode)
  File "/@unixroot/usr/lib/python2.7/os.py", line 152, in makedirs
    makedirs(head, mode)
  File "/@unixroot/usr/lib/python2.7/os.py", line 159, in makedirs
    mkdir(name, mode)
OSError: [Errno 2] No such file or directory: '/@unixrootc:'
I have not tried relocating the yum cache, but suspect similar difficulty.
Change History (5)
comment:1 by , 11 years ago
comment:3 by , 11 years ago
maybe you can try using
/@system_drive/var/log
instead, this does not expose a drive letter...
comment:4 by , 11 years ago
Unfortunately, Yuri, that gets me a nice, new directory in %unixroot%:
1-13-15 11:27 <DIR> 124 @system_drive
Entry in yum.conf says:
logfile=/@system_drive/var/log/yum.log
Looks like without some way of faking a mount under %unixroot%.
Path rewriter says:
/var/log = %LOGFILES%
Environment says:
LOGFILES=C:\var\log
Changing logfile directive to:
logfile=/var/log/yum.log
seems to ignore the path rewriter (as expected, I suppose).
Looks like we'll need to wait for a fix on this until the drive letter support is working. Thanks for the suggested workaround, though. It was worth trying.
comment:5 by , 11 years ago
| Resolution: | → duplicate | 
|---|---|
| Status: | new → closed | 
Moving unixroot tree away from the root directory, while seems to be working, is not tested and we don't have the (human) resources to test all possible situations.

Confirmed: yum cache path is also hardcoded to look at /@unixroot/<blah>. Thus, specifying cachedir=/@unixroot/somewhere-else yields an error that /@unixroot/@unixroot/somewhere-else cannot be found.