Das Problem
„Yum clean all“ löscht nicht die Yum-Cache-Informationen unter /var/cache/yum für Orcle-Linux-Server, die das öffentliche Yum-Repository von Oracle oder das lokale Yum-Repository verwenden.
# yum repolist Loaded plugins: refresh-packagekit, security, ulninfo public_ol6_UEK_latest | 1.2 kB 00:00 public_ol6_UEK_latest/primary | 26 MB 00:04 public_ol6_UEK_latest 554/554 public_ol6_latest | 1.4 kB 00:00 public_ol6_latest/primary | 58 MB 00:04 public_ol6_latest 36051/36051 repo id repo name status public_ol6_UEK_latest Latest Unbreakable Enterprise Kernel for Oracle Linux 6Ser 554 public_ol6_latest Oracle Linux 6Server Latest (x86_64) 36,051 repolist: 36,605
# du -sh /var/cache/yum/x86_64/6Server/* 864K /var/cache/yum/x86_64/6Server/ol6_addons 973M /var/cache/yum/x86_64/6Server/ol6_latest 367M /var/cache/yum/x86_64/6Server/ol6_UEK_latest 12K /var/cache/yum/x86_64/6Server/public_ol6_latest 8.0K /var/cache/yum/x86_64/6Server/public_ol6_UEK_latest 45MB /var/cache/yum/x86_64/6Server/public_ol6_UEKR3_latest
# yum clean all Loaded plugins: refresh-packagekit, security, ulninfo Cleaning repos: public_ol6_UEK_latest public_ol6_latest Cleaning up Everything
# du -sh /var/cache/yum/x86_64/6Server/* 864K /var/cache/yum/x86_64/6Server/ol6_addons 973M /var/cache/yum/x86_64/6Server/ol6_latest 367M /var/cache/yum/x86_64/6Server/ol6_UEK_latest 12K /var/cache/yum/x86_64/6Server/public_ol6_latest 8.0K /var/cache/yum/x86_64/6Server/public_ol6_UEK_latest 45MB /var/cache/yum/x86_64/6Server/public_ol6_UEKR3_latest
Die Lösung
„yum clean“ entfernt den Cache von Repositories, die in /etc/yum.repos.d/*.repo aktiviert sind. Aus der Manpage von yum:
# man yum .... CLEAN OPTIONS The following are the ways which you can invoke yum in clean mode. Note that "all files" in the commands below means "all files in currently enabled repositories". If you want to also clean any (temporarily) disabled repositories you need to use --enablerepo=’*’ option.
Führen Sie zur Fehlerbehebung die folgenden Schritte aus:
1. Aktivieren Sie die Repositorys vorübergehend, um den Yum-Cache zu löschen.
# yum clean all --enablerepo="repository_label"
oder
# vi /etc/yum.repos.d/[filename].repo ... enabled = 1 ### Add this for the respective repository.
Was ist, wenn in der Datei /etc/yum.repos.d/*.repo keine Informationen über das Repository vorhanden sind? In diesem Szenario hilft ein temporärer Eintrag in der Repository-Datei mit dem Namen des Repository-Labels, den Cache zu löschen.
Fehlerbehebung
Im folgenden Beispiel sind nur zwei Repositorys aktiviert, d. h. „public_ol6_UEK_latest, public_ol6_latest“, während die yum-Cache-Informationen für wenige zusätzliche Repositorys verfügbar sind.
Nehmen wir an, das Repository „public_ol6_UEKR3_latest“ ist deaktiviert und „ol6_UEK_latest, ol6_latest“ hat keinen Eintrag in der Datei /etc/yum.repos.d/*.repo.
# yum repolist Loaded plugins: refresh-packagekit, security, ulninfo public_ol6_UEK_latest | 1.2 kB 00:00 public_ol6_UEK_latest/primary | 26 MB 00:04 public_ol6_UEK_latest 554/554 public_ol6_latest | 1.4 kB 00:00 public_ol6_latest/primary | 58 MB 00:04 public_ol6_latest 36051/36051 repo id repo name status public_ol6_UEK_latest Latest Unbreakable Enterprise Kernel for Oracle Linux 6Ser 554 public_ol6_latest Oracle Linux 6Server Latest (x86_64) 36,051 repolist: 36,
# du -sh /var/cache/yum/x86_64/6Server/* 864K /var/cache/yum/x86_64/6Server/ol6_addons 973M /var/cache/yum/x86_64/6Server/ol6_latest 367M /var/cache/yum/x86_64/6Server/ol6_UEK_latest 12K /var/cache/yum/x86_64/6Server/public_ol6_latest 8.0K /var/cache/yum/x86_64/6Server/public_ol6_UEK_latest 45MB /var/cache/yum/x86_64/6Server/public_ol6_UEKR3_latest
Löschen Sie die Cache-Informationen des deaktivierten Repositorys, das einen Eintrag in der Datei /etc/yum.repos.d/*.repo hat. dh public_ol6_UEKR3_latest:
# yum clean all --enablerepo="public_ol6_UEKR3_latest"
# du -sh /var/cache/yum/x86_64/6Server/* 864K /var/cache/yum/x86_64/6Server/ol6_addons 973M /var/cache/yum/x86_64/6Server/ol6_latest 367M /var/cache/yum/x86_64/6Server/ol6_UEK_latest 12K /var/cache/yum/x86_64/6Server/public_ol6_latest 8.0K /var/cache/yum/x86_64/6Server/public_ol6_UEK_latest 12K /var/cache/yum/x86_64/6Server/public_ol6_UEKR3_latest
Um den Cache von zwei anderen Repositorys zu löschen, die keinen Eintrag in „/etc/yum.repos.d/*.repo“ haben, kann er manuell entfernt oder ein temporärer Eintrag in der Konfigurationsdatei hinzugefügt werden.
# rm -rf /var/cache/yum/x86_64/6Server/ol6_latest /var/cache/yum/x86_64/6Server/ol6_latest
Oder
# vi /etc/yum.repos.d/public.repo [ol6_latest] enabled = 1 [ol6_UEK_latest] enabled = 1
# yum clean all
# du -sh /var/cache/yum/x86_64/6Server/* 864K /var/cache/yum/x86_64/6Server/ol6_addons 12.0K /var/cache/yum/x86_64/6Server/ol6_latest 8.0K /var/cache/yum/x86_64/6Server/ol6_UEK_latest 12K /var/cache/yum/x86_64/6Server/public_ol6_latest 8.0K /var/cache/yum/x86_64/6Server/public_ol6_UEK_latest 12K /var/cache/yum/x86_64/6Server/public_ol6_UEKR3_latest