Il problema
"Yum clean all" non cancella le informazioni della cache yum in /var/cache/yum per il server Linux orcle che utilizza il repository yum pubblico Oracle o il repository yum locale.
# 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
La soluzione
"yum clean" rimuove la cache dei repository che sono abilitati in /etc/yum.repos.d/*.repo. Dalla pagina man di 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.
Segui i passaggi seguenti per risolvere i problemi:
1. Abilita temporaneamente i repository per svuotare la cache yum.
# yum clean all --enablerepo="repository_label"
o
# vi /etc/yum.repos.d/[filename].repo ... enabled = 1 ### Add this for the respective repository.
Cosa succede se non ci sono informazioni sul repository nel file /etc/yum.repos.d/*.repo? In tale scenario, una voce temporanea nel file del repository con il nome dell'etichetta del repository aiuterà a svuotare la cache.
Debug
Nell'esempio seguente, sono abilitati solo due repository, ovvero "public_ol6_UEK_latest, public_ol6_latest", mentre le informazioni sulla yum cache sono disponibili per pochi repository aggiuntivi.
Supponiamo che il repository "public_ol6_UEKR3_latest" sia disabilitato e che "ol6_UEK_latest, ol6_latest" non abbia una voce nel file /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
Cancella le informazioni della cache del repository disabilitato che ha una voce nel file /etc/yum.repos.d/*.repo. ovvero 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
Per svuotare la cache di altri due repository che non hanno una voce in "/etc/yum.repos.d/*.repo", può essere rimosso manualmente o aggiungere una voce temporanea sul file di configurazione.
# rm -rf /var/cache/yum/x86_64/6Server/ol6_latest /var/cache/yum/x86_64/6Server/ol6_latest
Oppure
# 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