CentOS 8 / RHEL 8 eski kernel paketleri nasıl silinir?

Merhabalar,

Bu makalede, linux sistemlerde update yaptıkça yeni versiyon kernel paketlerinin yüklenmesi sebebiyle, artık ihtiyaç kalmayan eski kernel paketlerinin, sistemden nasıl silinebileceğine dair bilgiler aktarmayı hedefliyorum.

Bildiğiniz gibi CentOS ve RHEL sistemlerde, dnf veya yum komutlarıyla, sistemimizde yüklü bileşenlerin, update’lerini yapabilmekteyiz. Eğer kernel update de bulunmuşsa, doğal olarak bu paketler de update edilir ve en son versiyon kernel, default’ta başlangıçta yüklenecek şekilde otomatik olarak işaretlenir. Bahsettiğim bu durumu, sisteminiz açılırken herhangi bir tuşa bastığınızda görebilirsiniz.

Örneğin benim sistemimde, boot sırasında bir tuşa bastığımda, yüklenmiş olan kernel geçmişini görüyoruz. İlk sırada gördüğünüz, en son update edilmiş ve default’ta açılacak olan versiyon. Daha alttakiler de, kurulumdan itibaren yaptığım update’ler sonrasında gelen kernel update geçmişi.

Eğer update sonrası herhangi bir problem görünmüyorsa, geriye yönelik 1-2 versiyon tutmak mantıklı olacaktır. Aksi durumda, burada  çok daha uzun bir liste görebilirsiniz. Bu da disk alanınızda hem yer işgal edecek hem de farklı versiyon paketler sistemde var olacağı için, belki de çeşitli problemlere sebep olacak… Dolayısıyla eskiyen paketleri silmek isteyebilirsiniz.

Peki şu an kullanılan veya sistemde daha önceki versiyonları bulunan kernel paketlerini, boot sırası haricinde nasıl görebiliyoruz?

Bunun için uname komutunu ve parametrelerini kullanabiliriz. Aşağıdaki komut ile en sade şekilde görebilirsiniz.

uname -sr

Bunun dışında, rpm paket yönetim komutuyla da görebiliriz. Aşağıdaki komut ile “kernel” versiyonlarını sorgulamış oluyoruz. -q parametresi, query anlamındadır.

rpm -q kernel

Yeni nesil paket yönetim aracı olan dnf ile basit şekilde eski versiyonları silebilir veya geriye yönelik kaç versiyon tutulacağını belirleyebiliriz. Aşağıdaki komut ile son 2 versiyonu tutup geri kalanların silinmesini sağlamış olacağız. Eğer 1 değerini kullanırsak, sadece son versiyon tutulacak. Ama bunu önermiyorum. Update sonrası bir problem çıkarsa, bir önceki versiyon ile sisteminizi açmak için gerekli olacaktır. Dolayısıyla minimum 2 değerini kullanmanızı öneriyorum.

dnf remove $(dnf repoquery –installonly –latest-limit=-2 -q)

Şimdi yeniden sorgulayıp sonucu görelim.

rpm -q kernel

Diğer komutla da kontrol edebiliriz.

uname -sr

Buraya kadar yaptığımız işlem, kalıcı bir işlem değildi. Yani bir güncelleme sonrası otomatik olarak son 2 versiyon tutulmayacak. Biz bu silme komutunu kullanana kadar tüm versiyonlar tutulmaya devam edilecek. Dolayısıyla arada bir kontrol ihtiyacı var. Peki bu işi otomatik ve kalıcı hale nasıl getirebiliriz? Tabi ki ilgili konfigürasyon dosyasında bu değeri belirleyerek…

Bunun için CentOS, RHEL ve Fedora’da, /etc/yum.conf dosyasında installonly_limit değerini ayarlayacağız. Bir dahaki güncellemede, artık bu dosyaya bakarak eski versiyonları da otomatik olarak silecek ve her zaman son iki versiyonu tutacak.

Öncelikle default değerimizin ne olduğunu kontrol edelim.

cat /etc/yum.conf | grep installonly_limit

Bu çıktıda, her zaman son 3 versiyon tutulacağını görüyoruz.

Şimdi bunu 2 olarak değiştirelim.

nano /etc/yum.conf

3 yazan yeri 2 olarak değiştiriyoruz.

Dosyayı kaydedip çıkıyoruz.

Tekrar kontrol ettiğimizde, artık default değerin 2 olduğunu görüyoruz.

cat /etc/yum.conf | grep installonly_limit

Böylece, hem eski  kernel paketlerinin nasıl silineceğini hem de nasıl sınırlama getirileceğini öğrenmiş olduk.

Yararlı olması dileğiyle.

Yusuf İşleyen