CentOS 8 AppStream Meta Veri Hatası Nasıl Düzeltilir | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

CentOS 8'de AppStream depo meta veri hatası nasıl düzeltilir

Giriş

CentOS 8'de bir güncelleme çalıştırdığınızda veya bir paket yüklemeye çalıştığınızda, paket yöneticisi şu hatayla durabilir:

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

Bu bir ağ sorunu veya geçici bir yansı (mirror) sorunu değildir. CentOS 8'in ömrünün sonuna ulaşmasının beklenen bir sonucudur. Bu makale, hatanın neden oluştuğunu, doğru uzun vadeli çözümün ne olduğunu ve sisteme hâlâ erişmeniz gerekiyorsa onu geçici olarak nasıl tekrar çevrimiçi hale getireceğinizi açıklar.

Bu hata neden oluşur

CentOS Linux 8, ömrünün sonuna 31 Aralık 2021'de ulaştı. Bu tarihten sonra CentOS Linux 8 için yansı listesi hizmeti kullanımdan kaldırıldı ve paketler arşiv sunucusu vault.centos.org'a taşındı.

Sistemdeki depo (repository) dosyaları hâlâ mirrorlist.centos.org'u işaret ediyor. Bu hizmet artık herhangi bir URL döndürmediğinden, yansı listesi boş dönüyor ve paket yöneticisinin meta verileri indirebileceği bir adresi kalmıyor. Gördüğünüz mesaj budur.

Info

Paketler silinmedi. Bir arşiv sunucusuna, vault.centos.org'a taşındılar. Aşağıda açıklanan geçici çözümü mümkün kılan da budur.

Önerilen çözüm: AlmaLinux veya Rocky Linux'a geçiş yapın

CentOS 8 artık güvenlik güncellemeleri de dahil olmak üzere herhangi bir güncelleme almadığından, onu üretimde tutmak bir risktir. Doğru çözüm, zaten çalıştırdığınız sistemle ikili (binary) uyumlu bir dağıtıma geçmektir.

AlmaLinux ve Rocky Linux, Red Hat Enterprise Linux'un ücretsiz, topluluk tarafından desteklenen yeniden derlemeleridir. CentOS'un doğrudan yerine geçecek şekilde tasarlanmışlardır, bu nedenle mevcut yazılım ve yapılandırma çoğu durumda hiçbir değişiklik yapılmadan çalışmaya devam eder. Her iki proje de sunucuyu yeniden kurmadan CentOS 8'i dönüştüren yerinde (in place) bir geçiş betiği sunar.

Warning

Geçiş yapmadan önce her zaman tam bir yedekleme veya anlık görüntü alın. Yerinde dönüştürme, temel sistem paketlerini değiştirir; bir şeyler ters giderse geri dönebilmeniz önemlidir.

Her iki geçiş betiği de yeni paketleri indirmek için çalışan bir paket yöneticisine ihtiyaç duyar. Ömrünün sonuna ulaşmış bir CentOS 8 sisteminde depolar artık çalışmadığından, önce bir sonraki bölümdeki geçici çözümü uygulayın, ardından geçişi çalıştırın.

AlmaLinux 8'e geçmek için:

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

Rocky Linux 8'e geçmek için:

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

Betik tamamlandıktan sonra sunucuyu yeniden başlatın ve yeni sistemi şu komutlarla doğrulayın:

cat /etc/os-release dnf repolist


Tip

Sunucu yerinde geçirilemiyorsa veya sıfırdan başlamayı tercih ediyorsanız, AlmaLinux veya Rocky Linux'un zaten yüklü olduğu yeni bir VPS oluşturun ve verilerinizi oraya taşıyın. INTROSERV, bu dağıtımların sipariş anında hazır olduğu Linux VPS sunar.

Geçici çözüm: depoları arşive yönlendirme

Bunu yalnızca sistemin kısa bir süre için tekrar çalışması gerektiğinde kullanın; örneğin geçiş yapmadan önce son bir yedekleme almak veya geçiş tamamlanana kadar kritik olmayan bir makineyi çalışır durumda tutmak için. Bu, CentOS 8'i yeniden desteklenir hale getirmez ve güncellemeleri geri getirmez.

Info

Aşağıdaki komutları çalıştırmadan önce, kurulumunuzun tam sürümünü cat /etc/centos-release komutuyla kontrol edin. Bu makale örnek olarak 8.5.2111 sürümünü kullanmaktadır. Bunu kendi sisteminizde raporlanan sürümle değiştirin. Yanlış arşivlenmiş sürümü belirtirseniz, DNF 404 hataları döndürebilir çünkü bu dizin sizin kurulumunuz için mevcut değildir.

Aşağıdaki komutlar, artık çalışmayan yansı listesini devre dışı bırakır ve depo dosyalarını bunun yerine arşiv sunucusu vault.centos.org'a yönlendirir:

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

Aktif depoların aksine, arşiv sabit sürüm dizinleri altında düzenlenmiştir, örneğin 8.5.2111. Bunun sonucunda varsayılan $releasever yolu artık geçerli içeriğe işaret etmez ve tam olarak arşivlenmiş sürümle değiştirilmelidir. Bu, yalnızca AppStream için değil, üç varsayılan depo dosyasının tümü için, yani AppStream, BaseOS ve Extras için geçerlidir.

Yukarıdaki komutları çalıştırdıktan sonra, toplu düzenlemeye körü körüne güvenmek yerine her depo dosyasını ayrı ayrı doğrulayın; çünkü üç dosya üzerinde toplu olarak çalıştırılan bir sed komutunda yanlış bir karakterin veya yanlış bir ayırıcının fark edilmeden sızması kolaydır.

AppStream dosyasını kontrol edin:

cat CentOS-Linux-AppStream.repo

baseurl satırı, sürüm dizini kendi sürümünüzle eşleşecek şekilde tam olarak şu şekilde olmalıdır:

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

BaseOS dosyasını aynı şekilde kontrol edin:

cat CentOS-Linux-BaseOS.repo

Ve Extras dosyasını:

cat CentOS-Linux-Extras.repo

Üç dosya da doğrulandıktan sonra, önbelleği temizleyin ve yeniden oluşturun:

dnf clean all dnf makecache dnf repolist

Bir depo doğru şekilde düzeltildiyse, artık meta verilerini hatasız indirir. Bir dosyada hâlâ bir yazım hatası varsa, dnf başarısız olan belirli depoyu bildirir; bu da geri dönüp yalnızca o dosyayı kontrol etmeyi kolaylaştırır.

Warning

Arşiv, ömrünün sonundan önce yayınlanan son paketleri içerir. Daha yeni sürümler veya güvenlik yamaları almazsınız. Bunu, geçiş yapana kadar sistemi erişilebilir tutmanın bir yolu olarak düşünün, kalıcı bir durum olarak değil.

Paketlerin yalnızca meta verilerin yüklendiğini değil, doğru şekilde yüklendiğini de doğrulamak için herhangi bir küçük paketle test edin:

dnf install -y wget


Bu başarılı olduğunda, gerçek güncellemeyi çalıştırın:

dnf update -y

Sonuç

CentOS 8'deki AppStream meta veri hatası, dağıtımın ömrünün sonuna ulaştığının bir işaretidir. Tek uzun vadeli çözüm, tercihen tam bir yedeklemenin ardından AlmaLinux veya Rocky Linux gibi desteklenen, ikili uyumlu bir dağıtıma geçiş yapmaktır. vault.centos.org geçici çözümü hâlâ yararlıdır, ancak yalnızca sunucunun CentOS 8'den güvenli bir şekilde uzaklaşmak için yeterince uzun süre çalışmasını sağlayan kısa bir köprü olarak.

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