RHEL/CENTOS 8 : DNF Yeni Nesil Paket Yöneticisi

Merhabalar,

Bu makalemde, RedHat ve CentOS’un yeni versiyonlarında kullanılmaya başlanan ve YUM paket yöneticisinin yerini alması düşünülen, yeni nesil paket yöneticisi olan DNF hakkında bilgiler aktarmak istiyorum.

DNF ya da Dandified Yum; RPM tabanlı dağıtımlar için bir paket yöneticisidir. YUM’un yeni neslidir ve ileride YUM’un yerini alması planlanmaktadır. Fedora 18 ile birlikte tanıtılmıştır ve 22. sürümünden beri Fedora’nın varsayılan paket yöneticisidir. YUM’daki düşük verim, yüksek bellek kullanımı, bağımlılıkları çözümlemedeki yavaşlık gibi sorunları gidermek için yaratılmıştır.

DNF, güçlü bir paket yöneticisidir ve YUM’da bulacağınızdan daha güçlü özelliklere sahiptir. DNF paket yönetici, paket gruplarının bakımını kolaylaştırır ve bağımlılık sorunlarını otomatik olarak çözebilir.

libsolv adında bir harici bağımlılık çözümleyicisi kullanır.

RPM paket yönetimini, libsolv ve hawkey kütüphanelerini kullanarak yapar. Üst veriyi idare etmek ve paketleri indirmek için librepo’yu, comps verilerini etkili bir şekilde idare etmek ve işlemek için libcomps’u kullanır.

YUM’un, değiştirilmek istenmesinin bir diğer nedeni ise, kendi iteratif bağımlılık çözümleyici mekanizmasını kullanmasıdır. Bağımlılık çözümlemede kullanılan daha yeni (ve daha iyi işleyen) tasarılar mevcut olup, bunlardan biri libsolv’dur. libsolv’un kökeni openSUSE’nin zypper paket yöneticisine dayanır ve diğer birkaç proje tarafından da benimsenmiştir.

Selefi ile arasındaki farklar

  • –skip-broken anahtarının etkisi yoktur
  • Update Komutu karşılığı olarak upgrade kullanılır
  • Resolvedep komutu kullanılamıyor
  • Paket bağımlılığını bulmak için ‘deplist‘ komutu yoktur
  • Skip_if_unavailable seçeneği, varsayılan olarak AÇIK
  • Bağımlılık çözümleme işlemi Komut Satırı’nda görünmez
  • Paralel indirmeler
  • Undo History
  • Delta RPM
  • Bash tamamlama
  • Otomatik kaldırma vb.

RedHat/Centos 8 DNF Kullanımı

Kullanımı çok basit ve yum kullanımına oldukça benzemekte. Dolayısıyla öğrenmekte zorluk çekmeyeceğinizi düşünüyorum. Fakat kendi adıma konuşursam, o kadar uzun zamandır yum kullanıyorum ki, komut satırının başına oturduğumda, kas beceleri hep yum’dan yana galip geliyor. Kullanımı ve öğrenmesi kolay, fakat alışkanlıkları yıkmak açısından zor bir değişim 🙂

DNF, Centos 8 dağıtımında varsayılan olarak gelmektedir, fakat sisteminizde yüklü değilse aşağıdaki komutu kullanarak yükleyebilirsiniz. EPEL repository sisteminizde olmalıdır. Eğer yoksa, öncelikle epel yükleyerek bağlayabilirsiniz. -y parametresinin, kullanıcı müdahalesi beklenmeden, kurulumun otomatik yapılmasını sağlamak için kullanıldığını da hatırlatmak istiyorum.

yum install epel-release -y

yum install dnf -y

Yükleme işlemlerinden sonra artık bu komutu kullanabiliriz. Kullanılacak komutlara bazı örnekler verelim.

1. DNF versiyonunu nasıl kontrol ederiz?

dnf –version

2. Aktif olan DNF depolarını nasıl listeleriz?

Bu komut, sistemimizde var olan ve sadece enable durumda depoları gösterir.

dnf repolist

3. Hem aktif hem pasif olan DNF Depolarını nasıl listeleriz?

Bu komut, enable ve disable durumda olan tüm depoları listeler.

dnf repolist all

4. Kullanılabilir ve yüklü olan tüm Paketleri nasıl listeleriz?

Bu komut, Linux sisteminizdeki tüm depolardan ve kurulu paketlerden mevcut tüm paketleri listeleyecektir.

dnf list

5. Yüklenmiş tüm paketler nasıl listelenir?

Sistemde yüklü olan tüm paketleri, aşağıdaki komut ile görebiliriz.

dnf list installed

6. Kullanılabilir tüm paketler nasıl listelenir?

dnf list available

7. Kurulmak istenen bir paket nasıl aranır?

dnf search paket_ismi

dnf search httpd

8. Dosya ve alt paketleri nasıl görülebilir?

dnf provides /bin/sh

9. Bir Paketin Ayrıntıları nasıl görülebilir?

Bir paketin sisteme yüklenmeden önce, detay bilgilerini görmek istediğinizi varsayalım, paket ismi de httpd olsun. Aşağıdaki gibi bir paket (httpd) hakkında ayrıntılı bilgi almak için “info” anahtarını kullanabilirsiniz.

dnf info paket_ismi

dnf info httpd

10. Bir paket nasıl kurulur?

dnf install paket_ismi

dnf install httpd

11. Bir paket nasıl güncellenir?

dnf update paket_ismi

dnf update systemd

12. Sistem Güncellemeleri nasıl kontrol edilir?

dnf check-update

13. Sistem Güncellemesi nasıl yapılır?

dnf update

Ya da

dnf upgrade

14. Bir Paketi Kaldırma / Silme

dnf remove paket_ismi

dnf remove httpd

Ya da

dnf erase httpd

15. Paket kalıntılarını sistemden temizleme/kaldırma

Bağımlılığı karşılamak için kurulan paketler, başka uygulamalar tarafından kullanılmazsa işe yaramayabilir. Bu paket kalıntılarını kaldırmak için aşağıdaki komutu kullanabilirsiniz..

dnf autoremove

16. Önbelleğe alınmış paketleri temizleme

Dnf komutu işletilirken, hataya neden olan, güncel olmayan üstbilgiler ve tamamlanmamış işlemlerle zaman zaman karşılaşırız. Uzak paket bilgileri içeren tüm önbelleğe alınmış paketleri ve başlıkları,aşağıdaki komut ile temizleyebiliriz.

dnf clean all

17. Belirli DNF komutu hakkında yardım alma

Aşağıdaki komutu uygulayarak, herhangi bir dnf komutu için yardım alabilirsiniz.

dnf help clean

18. Tüm DNF komutlarını ve seçeneklerini listeleme

dnf help

19. DNF komut geçmişini görüntüleme

Daha önce uygulanmış olan dnf komutlarının listesine bakmak için dnf geçmişini çağırabilirsiniz. Bu şekilde, zaman damgasıyla nelerin yüklendiğini / kaldırıldığını öğrenebilirsiniz.

dnf history

20. Tüm grup paketlerini listeleme

Aşağıdaki komut, mevcut veya kurulu tüm paketleri yazdıracaktır. Eğer hiçbir şey belirtilmiyorsa, bilinen tüm grupları listeleyecektir.

dnf grouplist

21. Bir grup paketi nasıl kurulur?

Yukarıdaki listeden, Available Environment ya da Available Groups altındaki herhangi bir grup paketini kurmak için aşağıdaki komut kullanılır.

dnf groupinstall “Grup_ismi”

dnf groupinstall “RPM Development Tools”

22. Grup paketi nasıl güncell enir?

dnf groupupdate “Grup_ismi”

dnf groupupdate “RPM Development Tools”

23. Grup paketi nasıl kaldırılır?

dnf groupremove “Grup_ismi”

dnf groupremove “RPM Development Tools”

24. Belirli Bir Depodan Paket Yükleme

DNF, herhangi bir depodan (epel), herhangi bir belirli paketi (ntfs-3g) yüklemeyi mümkün kılar.

dnf –enablerepo=epel install ntfs-3g

25. Kurulu paketleri, kararlı en son sürümle senkronize etme

Aşağıdaki komut, kurulu tüm paketleri, etkinleştirilmiş herhangi bir depoda bulunan en son kararlı sürüme senkronize etmek için gerekli seçenekleri sağlayacaktır. Hiçbir paket seçilmezse, kurulu tüm paketler senkronize edilir.

dnf distro-sync

26. Bir paketi yeniden yükleme

Aşağıdaki komut, önceden kurulmuş bir paketi yeniden kuracaktır.

dnf reinstall paket_ismi

dnf reinstall ntfs-3g

27. Güncellenmiş bir paketi eski sürüme downgrade etme

“Downgrade” seçeneği, adlandırılan paketi (ntfs-3g) mümkünse daha düşük sürüme indirecektir. Paket zaten ilk kurulumda üst versiyonla kurulmuşsa aşağıdaki gibi çıktı verecektir.

dnf downgrade ntfs-3g

Yenilenmiş komutlar da bu şekilde. YUM kullanıcılarının, bu komutlara kolayca uyum sağlayabileceğini düşünüyorum.

Yararlı olması dileğiyle.

Yusuf İşleyen