INFORMATICS

The Best

Błąd: Problem: cannot install the best update candidate for package remi-release-8.3-1.el8.remi.noarch

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 

Błąd: Problem: cannot install the best update candidate for package remi-release-8.3-1.el8.remi.noarch - nothing provides redhat-release >= 8.10 needed by remi-release-8.10-2.el8.remi.noarch (dodanie „--skip-broken” pominie pakiety, których nie można zainstalować lub „--nobest” spowoduje użycie nie tylko najlepszych kandydatów)

 

Błąd, który napotkałeś podczas wykonywania yum update, wskazuje na problem z repozytorium REMI, które próbuje zaktualizować pakiet remi-release do wersji 8.10-2.el8.remi.noarch, ale wymaga zależności redhat-release >= 8.10, której nie ma w Twoim systemie CentOS 8. Jest to typowy problem, gdy repozytorium zewnętrzne (np. REMI) oczekuje nowszej wersji systemu, która nie jest dostępna w CentOS 8, szczególnie po jego EOL (End of Life) w grudniu 2021.

Poniżej znajdziesz kroki, jak rozwiązać ten problem:

Przyczyny błędu

  1. EOL CentOS 8: CentOS 8 nie otrzymuje już aktualizacji, a repozytoria zostały przeniesione do vault.centos.org. Nowsze wersje pakietów z repozytorium REMI mogą wymagać zależności, które nie są dostępne w zarchiwizowanych repozytoriach CentOS 8.
  2. Niezgodność wersji remi-release: Pakiet remi-release-8.10-2.el8.remi.noarch jest przeznaczony dla nowszej wersji systemu (np. CentOS Stream 8 lub RHEL 8.10), a Twój system nie spełnia wymagań.
  3. Konfliktujące repozytoria: Jeśli masz włączone dodatkowe repozytoria, mogą one powodować konflikty.

Rozwiązanie

Opcja 1: Użycie --nobest lub --skip-broken

Jak sugeruje komunikat błędu, możesz użyć opcji --nobest lub --skip-broken, aby pominąć problematyczne pakiety:

  1. Spróbuj z --nobest:
    bash
     
    sudo yum update --nobest -y
     
     
    Opcja --nobest pozwala na instalację niekoniecznie najnowszych wersji pakietów, co może ominąć problem z zależnościami.
  2. Spróbuj z --skip-broken:
    bash
     
    sudo yum update --skip-broken -y
     
     
    Opcja --skip-broken pomija pakiety, których nie można zainstalować z powodu brakujących zależności.

Uwaga: Te opcje są tymczasowym rozwiązaniem, ponieważ mogą pozostawić system z nieaktualnymi lub pominiętymi pakietami.

Opcja 2: Wyłączenie repozytorium REMI

Jeśli nie potrzebujesz pakietów z repozytorium REMI, możesz je tymczasowo wyłączyć podczas aktualizacji:

  1. Wyłącz repozytorium REMI:
    bash
     
    sudo yum update --disablerepo=remi -y
     
     
    To pozwoli zaktualizować system bez uwzględniania repozytorium REMI.
  2. Sprawdź, które repozytoria są włączone:
    bash
     
    yum repolist
     
     
    Upewnij się, że repozytoria CentOS (np. baseos, appstream) wskazują na vault.centos.org.

Opcja 3: Ręczna instalacja starszej wersji remi-release

Jeśli potrzebujesz repozytorium REMI, możesz zainstalować starszą wersję pakietu remi-release, która jest kompatybilna z CentOS 8:

  1. Usuń problematyczną wersję:
    bash
     
    sudo yum remove remi-release
     
     
  2. Pobierz i zainstaluj starszą wersję remi-release: Pobierz kompatybilną wersję, np. remi-release-8.3-1.el8.remi.noarch.rpm:
    bash
     
    sudo rpm -Uvh remi-release-8.3-1.el8.remi.noarch.rpm
     
     
  3. Wyczyść pamięć podręczną YUM:
    bash
     
    sudo yum clean all
    sudo rm -rf /var/cache/yum/*
     
     
  4. Spróbuj ponownie zaktualizować:
    bash
     
    sudo yum update -y
     
     

Opcja 4: Migracja do CentOS Stream 8

Ponieważ CentOS 8 jest już niewspierany, repozytorium REMI może wymagać nowszej wersji systemu, takiej jak CentOS Stream 8, która nadal otrzymuje aktualizacje. Możesz rozważyć migrację:

  1. Przeprowadź migrację do CentOS Stream:
    bash
     
    sudo dnf install centos-release-stream
    sudo dnf swap centos-linux-repos centos-stream-repos
    sudo dnf distro-sync -y
     
     
    Uwaga: Migracja do CentOS Stream zmienia system na wersję ciągłą (rolling release), co może wpłynąć na stabilność w środowiskach produkcyjnych.
  2. Po migracji zaktualizuj system:
    bash
     
    sudo dnf update -y
     
     

Opcja 5: Ręczna edycja plików repozytorium

Jeśli problem dotyczy konfliktów w plikach repozytorium REMI, możesz ręcznie dostosować konfigurację:

  1. Otwórz plik repozytorium REMI:
    bash
     
    sudo nano /etc/yum.repos.d/remi.repo
     
     
  2. Upewnij się, że repozytorium wskazuje na poprawną wersję: Sprawdź, czy baseurl w sekcji [remi] lub [remi-safe] wskazuje na odpowiednią wersję CentOS 8, np.:
    ini
     
    [remi]
    name=Remi's RPM repository for Enterprise Linux 8
    enabled=1
    gpgcheck=1
     
     
  3. Zapisz zmiany i wyczyść pamięć podręczną:
    bash
     
    sudo yum clean all
    sudo yum update -y
     
     

Dodatkowe uwagi

  • Kopia zapasowa: Przed wprowadzeniem jakichkolwiek zmian wykonaj kopię zapasową systemu lub przynajmniej katalogu /etc/yum.repos.d/:
    bash
     
    sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
     
     
  • Sprawdzenie DNS: Upewnij się, że Twój serwer może rozwiązywać nazwy domen (np. rpms.remirepo.net):
    bash
     
    ping rpms.remirepo.net
     
     
    Jeśli nie działa, dodaj serwery DNS do /etc/resolv.conf:
    ini
     
    nameserver 8.8.8.8
    nameserver 8.8.4.4
     
     
  • Alternatywa dla CentOS 8: Ze względu na EOL CentOS 8, rozważ przejście na Rocky Linux lub AlmaLinux, które są w pełni kompatybilne z RHEL 8 i wspierane przez społeczność.

Weryfikacja

Po wykonaniu jednego z powyższych rozwiązań sprawdź, czy aktualizacja działa:

bash
 
sudo yum repolist
sudo yum update -y
 
 

Jeśli błąd nadal występuje, podaj treść pliku /etc/yum.repos.d/remi.repo lub dokładny komunikat błędu, a pomogę go przeanalizować.

Search