Errore nel caricamento dei metadati del repository "AppStream" [CentOS] su CentOS 8 | INTROSERV
EUR
european

EUR

usa

USD

Italy It
Ex. VAT Ex. VAT 0%

Errore nel caricamento dei metadati del repository "AppStream" [CentOS] su CentOS 8

Introduzione

Quando esegui un aggiornamento o provi a installare un pacchetto su CentOS 8, il gestore dei pacchetti potrebbe interrompersi con questo errore:

Failed to load metadata for 'AppStream' repo: Cannot prepare internal mirror list: No URLs in mirror list.

Non si tratta di un problema di rete né di un problema temporaneo dei mirror. È il risultato atteso del fatto che CentOS 8 ha raggiunto la fine del suo ciclo di vita. Questo articolo spiega perché si verifica l'errore, qual è la soluzione corretta a lungo termine e come riportare temporaneamente il sistema online se hai ancora bisogno di accedervi.

Perché si verifica questo errore

CentOS Linux 8 ha raggiunto la fine del suo ciclo di vita il 31 dicembre 2021. Dopo tale data, il servizio di mirrorlist per CentOS Linux 8 è stato dismesso e i pacchetti sono stati spostati sul server di archivio vault.centos.org.

I file dei repository sul sistema puntano ancora a mirrorlist.centos.org. Poiché quel servizio non restituisce più alcun URL, l'elenco dei mirror torna vuoto e il gestore dei pacchetti non ha alcun indirizzo da cui scaricare i metadati. Questo è il messaggio che vedi.

Info

I pacchetti non sono stati eliminati. Sono stati spostati su un server di archivio, vault.centos.org. Questo è ciò che rende possibile la soluzione temporanea descritta di seguito.

Soluzione consigliata: migrare ad AlmaLinux o Rocky Linux

Poiché CentOS 8 non riceve più alcun aggiornamento, inclusi quelli di sicurezza, mantenerlo in produzione rappresenta un rischio. La soluzione corretta è passare a una distribuzione compatibile a livello binario con il sistema già in uso.

AlmaLinux e Rocky Linux sono ricostruzioni gratuite di Red Hat Enterprise Linux, supportate dalla community. Sono progettate come sostituti diretti di CentOS, quindi il software e la configurazione esistenti continuano a funzionare senza modifiche nella maggior parte dei casi. Entrambi i progetti forniscono uno script di migrazione in place che converte CentOS 8 senza reinstallare il server.

Warning

Esegui sempre un backup completo o uno snapshot prima di migrare. Una conversione in place modifica pacchetti fondamentali del sistema, quindi è opportuno avere un modo per tornare indietro in caso di problemi.

Entrambi gli script di migrazione richiedono un gestore di pacchetti funzionante per scaricare i nuovi pacchetti. Su un sistema CentOS 8 che ha raggiunto la fine del ciclo di vita, i repository non sono più raggiungibili, quindi applica prima la soluzione temporanea descritta nella sezione successiva, quindi esegui la migrazione.

Per migrare ad AlmaLinux 8:

curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh bash almalinux-deploy.sh

Per migrare a Rocky Linux 8:

curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh bash migrate2rocky.sh -r

Al termine dello script, riavvia il server e conferma il nuovo sistema con:

cat /etc/os-release dnf repolist


Tip

Se il server non può essere migrato in place, o preferisci ripartire da zero, distribuisci un nuovo VPS con AlmaLinux o Rocky Linux già installati e trasferisci lì i tuoi dati. INTROSERV offre VPS Linux con queste distribuzioni già disponibili al momento dell'ordine.

Soluzione temporanea: reindirizzare i repository all'archivio

Usa questa soluzione solo quando hai bisogno che il sistema torni a funzionare per un breve periodo, ad esempio per eseguire un ultimo backup prima della migrazione, oppure per mantenere in funzione una macchina non critica fino al completamento della migrazione. Questo non rende nuovamente supportato CentOS 8 e non ripristina gli aggiornamenti.

Info

Prima di eseguire i comandi seguenti, verifica la versione esatta della tua installazione con cat /etc/centos-release. Questo articolo utilizza 8.5.2111 come esempio. Sostituiscilo con la versione indicata dal tuo sistema. Se specifichi la release archiviata sbagliata, DNF potrebbe restituire errori 404, poiché quella directory non esiste per la tua installazione.

I comandi seguenti disabilitano l'elenco dei mirror ormai inutilizzabile e fanno puntare i file dei repository al server di archivio vault.centos.org:

cd /etc/yum.repos.d/ sed -i 's/^mirrorlist/#mirrorlist/g' CentOS-* sed -i 's|^#baseurl=.*mirror.centos.org|baseurl=https://vault.centos.org|g' CentOS-* sed -i 's|/$contentdir/$releasever/|/8.5.2111/|g' CentOS-*

Warning

A differenza dei repository attivi, l'archivio è organizzato in directory di release fisse, ad esempio 8.5.2111. Di conseguenza, il percorso predefinito $releasever non punta più a contenuti validi e deve essere sostituito con la release archiviata esatta. Questo vale per tutti e tre i file di repository predefiniti, AppStream, BaseOS ed Extras, non solo per AppStream.

Dopo aver eseguito i comandi precedenti, verifica ogni file di repository singolarmente invece di fidarti ciecamente della modifica in blocco, poiché un sed applicato in blocco su tre file è un punto facile in cui un carattere errato o un separatore sbagliato può passare inosservato.

Controlla il file AppStream:

cat CentOS-Linux-AppStream.repo

La riga baseurl dovrebbe essere esattamente così, con la directory di release corrispondente alla tua versione:

baseurl=https://vault.centos.org/8.5.2111/AppStream/x86_64/os/

Controlla il file BaseOS allo stesso modo:

cat CentOS-Linux-BaseOS.repo

E il file Extras:

cat CentOS-Linux-Extras.repo

Una volta confermati tutti e tre i file, pulisci la cache e ricostruiscila:

dnf clean all dnf makecache dnf repolist

Se un repository è stato corretto correttamente, ora scarica i suoi metadati senza errori. Se un file presenta ancora un errore di battitura, dnf segnala lo specifico repository che ha fallito, rendendo semplice tornare indietro e controllare solo quel file.

Warning

L'archivio contiene gli ultimi pacchetti rilasciati prima della fine del ciclo di vita. Non riceverai versioni più recenti né patch di sicurezza. Considera questa soluzione come un modo per mantenere il sistema raggiungibile fino alla migrazione, non come uno stato permanente.

Per confermare che i pacchetti si installino correttamente e non solo che i metadati vengano caricati, esegui un test con un piccolo pacchetto qualsiasi:

dnf install -y wget


Una volta riuscito, esegui l'aggiornamento vero e proprio:

dnf update -y

Conclusione

L'errore sui metadati di AppStream su CentOS 8 è un segnale del fatto che la distribuzione ha raggiunto la fine del suo ciclo di vita. L'unica soluzione a lungo termine è migrare verso una distribuzione supportata e compatibile a livello binario, come AlmaLinux o Rocky Linux, idealmente dopo aver eseguito un backup completo. La soluzione alternativa con vault.centos.org resta utile, ma solo come ponte temporaneo che consente al server di funzionare abbastanza a lungo da abbandonare CentOS 8 in modo sicuro.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA