Poslední aktualizace yum v CentOS 7 mi způsobila jeho nefunkčnost na všech serverech. Nepotěšilo mě to. Většina serverů a dokonce i cloudových instancí mi o nefunkčnosti modulu yum-cron snaživě referovala do emailu každou hodinu. Řešení naštěstí, není obtížné.
Po aktualizaci serverů s distribucí CentOS 7 jsem zažil nepříjemné překvapení. Začala mi chodit spousta hlášení modulu yum-cron.
/etc/cron.hourly/0yum-hourly.cron: Traceback (most recent call last): File "/usr/sbin/yum-cron", line 729, in <module> main() File "/usr/sbin/yum-cron", line 726, in main base.updatesCheck() File "/usr/sbin/yum-cron", line 618, in updatesCheck self.populateUpdateMetadata() File "/usr/sbin/yum-cron", line 422, in populateUpdateMetadata self.pkgSack # honor skip_if_unavailable File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 1074, in <lambda> pkgSack = property(fget=lambda self: self._getSacks(), File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 778, in _getSacks self.repos.populateSack(which=repos) File "/usr/lib/python2.7/site-packages/yum/repos.py", line 347, in populateSack self.doSetup() File "/usr/lib/python2.7/site-packages/yum/repos.py", line 122, in doSetup self.ayum.plugins.run('prereposetup') File "/usr/lib/python2.7/site-packages/yum/plugins.py", line 188, in run func(conduitcls(self, self.base, conf, **kwargs)) File "/usr/lib/yum-plugins/axelget.py", line 393, in prereposetup_hook os.utime(localMDFile, None) OSError: [Errno 2] No such file or directory: '/var/cache/yum/x86_64/7/_local/repomd.xml'
Stejnou chybou mi odpovídal i samotný yum na příkazy
# yum update
nebo
# yum check-update
Řešením je zakázat lokální repozitář. V souboru
/etc/yum.repos.d/_local.repo
je třeba upravit řádek na
enabled=0
Kdo používáte ansible, můžete si stáhnout playbook, který mi pomohl opravit soubor na všech instancích serverů s CentOS 7. Snad vám pomůže. 🙂