Il problema
L'esecuzione del comando 'dnf update' non riesce con il seguente errore:
# dnf update Error: Problem 1: package perl-4:5.26.3-419.el8.x86_64 requires perl-interpreter(x86-64) = 4:5.26.3-419.el8, but none of the providers can be installed - cannot install both perl-interpreter-4:5.26.3-419.el8_4.1.x86_64 and perl-interpreter-4:5.26.3-419.el8.x86_64 - cannot install the best update candidate for package perl-interpreter-4:5.26.3-419.el8.x86_64 - cannot install the best update candidate for package perl-4:5.26.3-419.el8.x86_64 Problem 2: package perl-devel-4:5.26.3-419.el8.x86_64 requires perl-libs(x86-64) = 4:5.26.3-419.el8, but none of the providers can be installed - cannot install both perl-libs-4:5.26.3-419.el8_4.1.x86_64 and perl-libs-4:5.26.3-419.el8.x86_64 - cannot install the best update candidate for package perl-libs-4:5.26.3-419.el8.x86_64 - cannot install the best update candidate for package perl-devel-4:5.26.3-419.el8.x86_64 Problem 3: perl-libs-4:5.26.3-419.el8.i686 has inferior architecture - package perl-utils-5.26.3-419.el8.noarch requires perl-libs = 4:5.26.3-419.el8, but none of the providers can be installed - cannot install both perl-libs-4:5.26.3-419.el8_4.1.x86_64 and perl-libs-4:5.26.3-419.el8.x86_64 - package perl-Errno-1.28-419.el8_4.1.x86_64 requires perl-libs(x86-64) = 4:5.26.3-419.el8_4.1, but none of the providers can be installed - cannot install the best update candidate for package perl-utils-5.26.3-419.el8.noarch - cannot install the best update candidate for package perl-Errno-1.28-419.el8.x86_64 (try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
Anche il tentativo di aggiornare singolarmente i pacchetti sopra riportati genera un errore simile.
# dnf update perl-interpreter Error: Problem: problem with installed package perl-4:5.26.3-419.el8.x86_64 - package perl-4:5.26.3-419.el8.x86_64 requires perl-interpreter(x86-64) = 4:5.26.3-419.el8, but none of the providers can be installed - cannot install both perl-interpreter-4:5.26.3-419.el8_4.1.x86_64 and perl-interpreter-4:5.26.3-419.el8.x86_64 - cannot install the best update candidate for package perl-interpreter-4:5.26.3-419.el8.x86_64 (try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
Cancellare la cache dnf "dnf clean all" non ha fatto alcuna differenza.
# dnf clean all
La soluzione
In questo caso, il pacchetto perl-interpreter e perl-libs sta causando un problema. Ciò potrebbe essere dovuto a qualche problema di metadati con questi pacchetti. Eseguire i seguenti comandi per risolvere il problema.
1. Eseguire il comando seguente e verificare se l'aggiornamento procede. Se ancora non si aggiorna, questo ci aiuta a identificare il pacchetto che non è in grado di rimuovere con l'opzione "-best -allowerasing". In questo caso, è il pacchetto perl-libs che sta ancora bloccando l'aggiornamento.
# dnf update --best --allowerasing Error: Problem: cannot install the best update candidate for package perl-4:5.26.3-419.el8.x86_64 - problem with installed package perl-4:5.26.3-419.el8.x86_64 - package perl-4:5.26.3-419.el8.x86_64 requires perl-libs(x86-64) = 4:5.26.3-419.el8, but none of the providers can be installed - cannot install the best update candidate for package perl-libs-4:5.26.3-419.el8.x86_64 - cannot install both perl-libs-4:5.26.3-419.el8_4.1.x86_64 and perl-libs-4:5.26.3-419.el8.x86_64 (try to add '--skip-broken' to skip uninstallable packages)
2. Eseguire l'aggiornamento per il pacchetto dall'output del comando del passaggio 1. In questo caso è perl-libs.
# dnf update perl-libs.x86_64 --best --allowerasing
3. Quindi prova il normale aggiornamento:
# dnf update