Nedávno jsem prozkoumal upgrade CentOS 7 na CentOS 8 a během procesu jsem narazil na chybu:Nepodařilo se synchronizovat mezipaměť pro repo ‘appstream’ . Níže je úplná chyba:
Failed to synchronize cache for repo 'baseos', ignoring this repo. Failed to synchronize cache for repo 'appstream', ignoring this repo.
Výstup z /var/log/dnf.log
pro více informací DEBUG:
2022-02-15T10:09:08Z DEBUG repo: downloading from remote: appstream 2022-02-15T10:09:08Z DEBUG Cannot download 'http://mirror.centos.org/centos/8/AppStream/x86_64/os/': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried. 2022-02-15T10:09:08Z DEBUG repo: downloading from remote: extras 2022-02-15T10:09:08Z DEBUG not found other for: CentOS Linux 8 - Extras 2022-02-15T10:09:08Z DEBUG not found modules for: CentOS Linux 8 - Extras 2022-02-15T10:09:08Z DEBUG not found deltainfo for: CentOS Linux 8 - Extras 2022-02-15T10:09:08Z DEBUG not found updateinfo for: CentOS Linux 8 - Extras 2022-02-15T10:09:08Z DEBUG extras: using metadata from Fri 10 Dec 2021 06:26:25 PM IST. 2022-02-15T10:09:08Z WARNING Failed to synchronize cache for repo 'baseos', ignoring this repo. 2022-02-15T10:09:08Z WARNING Failed to synchronize cache for repo 'appstream', ignoring this repo.
Při pohledu na chybovou zprávu jsem si myslel, že problém může být způsoben připojením k internetu. Internetové připojení a DNS však fungovaly dobře, jak je uvedeno níže.
[root@upgrade-centos log]# ping google.com PING google.com (172.217.166.206) 56(84) bytes of data. 64 bytes from del03s13-in-f14.1e100.net (172.217.166.206): icmp_seq=1 ttl=115 time=44.10 ms ^C --- google.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 44.971/44.971/44.971/0.000 ms
Jak jsem tedy problém vyřešil? Tady to je.
Jak opravit Selhala synchronizace mezipaměti pro repo appstream
Důvodů pro tento problém může být více. Nejběžnější jsou:
- Nesprávné nastavení data a času
- Staré
dnf
mezipaměť dostupná nebo vypršela - Základní adresa URL CentOS
Jak opravit nesprávné nastavení data a času
timedatectl
command je nový nástroj v CentOS 7/8. Je to náhrada za staré tradiční date
příkaz použitý v sysvinit
linuxové distribuce založené na démonech.
Najděte aktuální datum a čas vašeho systému. Ujistěte se, že je to správné se správným časovým pásmem.
[root@upgrade-centos ~]# timedatectl Local time: Tue 2022-02-15 11:24:25 UTC Universal time: Tue 2022-02-15 11:24:25 UTC RTC time: Tue 2022-02-15 11:24:25 Time zone: UTC (UTC, +0000) System clock synchronized: no NTP service: active RTC in local TZ: no
Nastavte své časové pásmo
[root@upgrade-centos ~]# timedatectl set-timezone "Asia/Kolkata" [root@upgrade-centos ~]# date Tue Feb 15 16:58:57 IST 2022
Jak vymazat starou/vypršenou mezipaměť dnf
Zde je článek o vyčištění každého druhu mezipaměti. Chcete-li to všechno vyčistit, spusťte níže uvedený příkaz:
[root@upgrade-centos ~]# dnf clean all [root@upgrade-centos ~]# rm -rf /var/cache/dnf
Jak změnit základní URL CentOS z mirror.centos.org na vault.centos.org
CentOS Linux 8 dosáhl konce životnosti (EOL) 31. prosince 2021. Znamená to, že CentOS 8 již nebude dostávat vývojové zdroje z oficiálního projektu CentOS. Pokud po 31. prosinci 2021 potřebujete aktualizovat svůj CentOS, musíte změnit zrcadla na vault.centos.org, kde budou trvale archivována. Případně můžete upgradovat na CentOS Stream nebo migrovat z CentOS na Rocky Linux.
Přejděte na /etc/yum.repos.d/
adresář.
[root@autocontroller ~]# cd /etc/yum.repos.d/
Spusťte níže uvedené příkazy
[root@autocontroller ~]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
[root@autocontroller ~]# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
Nyní spusťte dnf update
[root@autocontroller ~]# dnf update
To je ono!