1. Anasayfa
  2. Linux

CentOS 7’den CentOS Stream 9’a Yükseltme


Linux dünyasında uzun süre CentOS 7 en popüler ve güvenilir dağıtımlardan biri oldu. Ancak zaman ilerledikçe CentOS 7’nin resmi desteği sona erdi ve yeni projelerde artık daha güncel platformlara geçiş yapmak bir zorunluluk haline geldi.

Benim için bu süreç eski bir CentOS 7 jump host VM’i yeni bir proje (Red Hat OpenShift Virtualization kurulumu) için tekrar kullanma ihtiyacıyla başladı. Sistemi sil baştan kurmak yerine in-place upgrade yani yerinde yükseltme yöntemini denemek istedim.

Resmi olarak CentOS 7’den doğrudan CentOS Stream 9’a yükseltme desteklenmese de topluluk araçları sayesinde bu işlemi iki aşamada yapmak mümkün:

  1. CentOS 7 → CentOS Stream 8 (ELevate ile)
  2. CentOS Stream 8 → CentOS Stream 9 (dnf system-upgrade ile)

Bu makalemde yaşadığım süreci hiç hata yapmadan en temiz ve güvenli adımlarla aktaracağım.

Ön Gereksinimler ve Hazırlıklar

Yükseltmeye başlamadan önce bazı noktaları netleştirelim:

  • Bu işlem production ortamında tavsiye edilmez. Benim uygulamam tamamen test amaçlı bir VM üzerinde yapıldı.
  • Sisteminizin internet bağlantısı olmalı ve paketler için yeterli disk alanı bulunmalı.
  • Tüm komutlar root yetkileriyle çalıştırılmalıdır (gerekirse sudo).
  • İşlem sırasında birkaç kez yeniden başlatma (reboot) gerekebilir.

AŞAMA 1: CentOS 7’den CentOS Stream 8’e Geçiş

CentOS 7 artık eski kaldığı için ilk adımda onu CentOS Stream 8’e taşımamız gerekiyor.

Bunun için topluluk tarafından geliştirilen ELevate aracını kullanıyoruz.

Sistemi Güncelleyin

Önce CentOS 7’nin tüm güncel yamalarını yükleyelim:

yum update -y
reboot

Neden?
Eski paketlerle yükseltme yapmak çoğu zaman hatalara yol açar.

En güncel sürümle başlamak en güvenli yoldur.

Gerekli Depoları ve ELevate Araçlarını Kurun

yum install -y epel-release
yum install -y leapp-upgrade leapp-data-centos
  • EPEL (Extra Packages for Enterprise Linux): Ek paketlere erişim sağlar.
  • ELevate: CentOS sürümleri arasında yükseltme yapabilen tek araçtır.

Bilinen Engelleri (Blocker) Temizleyin

Bazı eski sürücüler (ör. pata_acpi) yükseltmeyi engeller. Onları kaldırıyoruz:

modprobe -r pata_acpi

Ayrıca yanıt dosyası oluşturarak ELevate’in soracağı soruları önceden cevaplıyoruz:

# /var/log/leapp/answerfile
[remove_pam_pkcs11_module_check]
confirm = True
[driver_allowlist]
allow_drivers = pata_acpi

Ön Yükseltme Kontrolü

leapp preupgrade

Bu komut, sistemi simüle ederek yükseltme sırasında çıkabilecek sorunları raporlar.
Raporları şu dosyalardan kontrol edin:

  • /var/log/leapp/leapp-report.txt
  • /var/log/leapp/answerfile

Yükseltmeyi Başlatın

leapp upgrade --target 8.9
reboot

Yeniden başlattığınızda sistem otomatik olarak CentOS Stream 8’e yükseltilmiş olacaktır.
Kernel artık 4.18.x sürümünde çalışıyor olmalı.

AŞAMA 2: CentOS Stream 8’den CentOS Stream 9’a Geçiş

Şimdi sıra en güncel sürüm olan CentOS Stream 9’a geçmeye geldi.

Vault Depolarına Geçin

Çünkü CentOS Stream 8 artık EOL (End of Life) oldu ve normal depolar 404 hatası verebilir.

/etc/yum.repos.d/ içindeki BaseOS ve AppStream repo dosyalarını şu şekilde değiştirin:

baseurl=https://vault.centos.org/8-stream/BaseOS/x86_64/os/
baseurl=https://vault.centos.org/8-stream/AppStream/x86_64/os/

Ardından önbelleği yenileyin:

dnf clean all
dnf makecache

Yükseltme Eklentisini Kurun

dnf install -y dnf-plugin-system-upgrade

Bu eklenti sayesinde dnf ile sistem yükseltmesi yapılabiliyor.

EPEL Modular’ı Devre Dışı Bırakın

dnf config-manager --set-disabled epel-modular

Çünkü bu repo yükseltme sırasında 404 hatası verebiliyor.

Yükseltme Paketlerini İndirin

dnf system-upgrade download --releasever=9 --allowerasing
  • Eğer çakışan paketler çıkarsa (ör. iptables-ebtables, make-devel) bunları kaldırın:
dnf remove iptables-ebtables make-devel

Sonra komutu yeniden çalıştırın.

Yükseltmeyi Başlatın

dnf system-upgrade reboot

Bu noktada sistem yeniden başlar ve yükseltme işlemi otomatik yapılır.
Artık CentOS Stream 9 çalışıyor olmalı (kernel 5.14.x).

Yükseltme tamamlandıktan sonra sistemi düzenli hale getirmek için birkaç adım daha gerekiyor:

  1. Gereksiz araçları kaldırın:
dnf remove leapp* python2-* -y
  1. RPM veritabanını onarın:
rpm --rebuilddb
  1. Önbelleği temizleyin:
dnf clean all
dnf autoremove -y
  1. Geçici repo dosyalarını silin:
rm -f /etc/yum.repos.d/CentOS-Vault.repo /etc/yum.repos.d/CentOS-Stream-Extras-common.repo
  1. EPEL’i tekrar aktif edin (opsiyonel):
dnf config-manager --set-enabled epel

EPEL GPG Key Sorunlarını Çözme

CentOS 9’a geçtikten sonra EPEL güncellemelerinde GPG hatası alabilirsiniz. Bunun nedeni sistemin hâlâ EPEL 8 anahtarını kullanıyor olmasıdır.

Çözüm:

  1. Yeni anahtarı indirin ve içe aktarın:
sudo curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9 https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-9
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9
  1. Repo dosyalarını güncelleyin:
sudo sed -i 's|RPM-GPG-KEY-EPEL-8|RPM-GPG-KEY-EPEL-9|g' /etc/yum.repos.d/epel*.repo
  1. Önbelleği temizleyin ve güncelleyin:
sudo dnf clean all
sudo dnf makecache
sudo dnf update -y

Artık güncellemeler sorunsuz çalışacaktır.