dnf komutu: Paket kurma, güncelleme, kaldırma ve yum farkı
dnf komutu, RHEL ailesinden Linux dağıtımlarında paket aramak, kurmak, güncellemek ve kaldırmak için kullanılan paket yönetimi komutudur. AlmaLinux 9'da yum yazsanız da aynı program çalışır. Bir AlmaLinux 9 sunucusunda search, info, provides ve history komutlarını gerçekten çalıştırdık ve paket bulan search, info ve provides komutlarının her birinin nereye baktığını ve history'de kalan işlem kayıtlarını çıktı üzerinden doğruladık.
Kurma, kaldırma ve güncelleme gibi sistemi değiştiren komutları çalıştırmadık. Bu davranışları resmi DNF belgeleri ve sunucuda kalmış işlem kayıtlarıyla doğruladık.
1️⃣ dnf komutu ile yum arasındaki ilişki
yum yazınca eski yum'un çalıştığını varsaymak kolaydır, ancak AlmaLinux 9'da yum ve dnf, aynı çalıştırılabilir dosya olan dnf-3'e giden bağlantılardır.
ls -l /usr/bin/yum /usr/bin/dnflrwxrwxrwx 1 root root 5 May 21 04:48 /usr/bin/dnf -> dnf-3
lrwxrwxrwx 1 root root 5 May 21 04:48 /usr/bin/yum -> dnf-3yum ile dnf arasındaki tek fark yazdığınız addır; hangisini yazarsanız yazın alt komutlar ve seçenekler aynıdır. search htop komutunu yum ve dnf ile ayrı ayrı çalıştırdığımızda da çıktı birebir aynıydı.
Resmi DNF belgesindeki [Changes in DNF CLI compared to YUM] bölümüne göre update ve upgrade aynı işlemi yapar ve belge upgrade kullanılmasını önerir.
dnf bulunmayan eski dağıtımlarda yum komutu olduğu gibi kullanılır. Bu yazıdaki install, search ve history gibi alt komut adları yum'da da aynıdır.
2️⃣ dnf komutuyla paket sorgulama: search, info, provides
Kurmak istediğiniz programın tam paket adını bilmiyorsanız search komutuna tek bir kelime vererek arayın. search, kelimeyi paket adlarında ve özetlerde (Summary) arar ve adı tam olarak eşleşen paketi en üste koyar.
dnf search htopLast metadata expiration check: 0:21:53 ago on Wed Oct 28 15:24:31 2026.
========================== Name Exactly Matched: htop ==========================
htop.x86_64 : Interactive process viewerhtop için adı tam olarak eşleşen yalnızca bir paket olduğundan sonuç [Name Exactly Matched] altında tek satırda kaldı.
dnf search wgetLast metadata expiration check: 0:22:35 ago on Wed Oct 28 15:24:31 2026.
========================== Name Exactly Matched: wget ==========================
wget.x86_64 : A utility for retrieving files using the HTTP or FTP protocols
========================= Name & Summary Matched: wget =========================
perl-HTTP-Tinyish-Wget.noarch : HTTP::Tinyish wget backend
wget2-devel.x86_64 : Libraries and header files needed for using wget2 libraries
wget2-libs.x86_64 : Runtime libraries for GNU Wget2
============================== Name Matched: wget ==============================
wget2.x86_64 : An advanced file and recursive website downloaderwget gibi birçok pakette geçen bir kelime; adı tam eşleşenler, hem adda hem özette geçenler ve yalnızca adda geçenler olmak üzere üç gruba ayrılarak listelendi.
search, açıklama (Description) metnine bakmadığından yalnızca açıklamada geçen bir kelimeyle aramaya uygun değildir. Bu durumda [--all] seçeneğini eklerseniz arama, açıklamayı ve URL'yi de kapsayacak şekilde genişler.
Paket adını öğrendiyseniz info ile sürümü, boyutu ve paketin hangi depodan geldiğini kontrol edin.
dnf info htopLast metadata expiration check: 0:22:37 ago on Wed Oct 28 15:24:31 2026.
Available Packages
Name : htop
Version : 3.3.0
Release : 1.el9
Architecture : x86_64
Size : 198 k
Source : htop-3.3.0-1.el9.src.rpm
Repository : epel
Summary : Interactive process viewer
URL : http://hisham.hm/htop/
License : GPLv2+
Description : htop is an interactive text-mode process viewer for Linux, similar to
: top(1).Henüz kurulmamış htop, info htop çıktısında [Available Packages] altında sürüm 3.3.0 ve depo epel olarak görünür. htop yalnızca epel deposunda bulunan bir paket olduğundan epel deposunu hariç tutup search komutunu yeniden çalıştırırsanız hiçbir sonuç çıkmaz.
dnf info wgetLast metadata expiration check: 0:22:38 ago on Wed Oct 28 15:24:31 2026.
Installed Packages
Name : wget
Version : 1.21.1
Release : 11.el9_8
Architecture : x86_64
Size : 3.1 M
Source : wget-1.21.1-11.el9_8.src.rpm
Repository : @System
From repo : appstream
Summary : A utility for retrieving files using the HTTP or FTP protocols
URL : http://www.gnu.org/software/wget/
License : GPLv3+
Description : GNU Wget is a file retrieval utility which can use either the HTTP or
: FTP protocols. Wget features include the ability to work in the
: background while you are logged out, recursive retrieval of
: directories, file name wildcard matching, remote file timestamp
: storage and comparison, use of Rest with FTP servers and Range with
: HTTP servers to retrieve files over slow or unstable connections,
: support for Proxy servers, and configurability.Zaten kurulu olan wget, [Installed Packages] altında göründü. Repository değeri @System idi ve kurulumda paketin alındığı depo [From repo] satırında appstream olarak yazıyordu.
Tersine, yalnızca dosya adını bilip dosyanın hangi pakette olduğunu bilmiyorsanız provides komutuna dosya yolunu verin.
dnf provides /usr/bin/treeLast metadata expiration check: 0:22:40 ago on Wed Oct 28 15:24:31 2026.
tree-1.8.0-10.el9.x86_64 : File system tree viewer
Repo : @System
Matched from:
Filename : /usr/bin/tree
tree-1.8.0-10.el9.x86_64 : File system tree viewer
Repo : baseos
Matched from:
Filename : /usr/bin/tree/usr/bin/tree ile yapılan aramanın sonucu, tree paketinin kurulu tarafı (@System) ve depo tarafı (baseos) olmak üzere iki gruptu. [Matched from] altındaki Filename, gerçekten eşleşen yoldur. Yol olmadan yalnızca dosya adı yazarsanız dnf başına /usr/bin/ ve /usr/sbin/ ekleyerek yeniden arar; yine bulamazsa aşağıdaki hatayla biter.
dnf provides nosuchfileLast metadata expiration check: 0:22:41 ago on Wed Oct 28 15:24:31 2026.
Error: No matches found. If searching for a file, try specifying the full path or using a wildcard prefix ("*/") at the beginning.Hata mesajı, tam yolu yazmanızı ya da başa [*/] joker karakterini eklemenizi önerir. Üç komutun girdi olarak ne aldığını ve nerede aradığını aşağıdaki diyagramda adım adım karşılaştırabilirsiniz.
3️⃣ Paket kurma, kaldırma ve güncelleme: install, remove, upgrade
Bulduğunuz paketi install ile kurarsınız. dnf yalnızca belirttiğiniz paketi değil, o paketin ihtiyaç duyduğu bağımlı paketleri de tek seferde kurar.
dnf install htopResmi belgelere göre dnf, kurulacak paketlerin listesini (işlem özeti) gösterdikten sonra devam edip etmeyeceğinizi sorar; [-y] eklerseniz sormadan devam eder.
Kurulumda birlikte gereken bağımlı paketleri repoquery [--requires] ile önceden kontrol edebilirsiniz.
dnf repoquery --requires htopLast metadata expiration check: 0:22:59 ago on Wed Oct 28 15:24:31 2026.
libc.so.6(GLIBC_2.34)(64bit)
libcap.so.2()(64bit)
libhwloc.so.15()(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6(GLIBC_2.29)(64bit)
libncursesw.so.6()(64bit)
libnl-3.so.200()(64bit)
libnl-3.so.200(libnl_3)(64bit)
libnl-genl-3.so.200()(64bit)
libnl-genl-3.so.200(libnl_3)(64bit)
libtinfo.so.6()(64bit)
rtld(GNU_HASH)Yalnızca [--requires] eklerseniz htop'un gerektirdiği kütüphanelerin adları çıkar. Bu kütüphanelerin hangi paketlerde bulunduğunu aşağıdaki komutla kontrol edersiniz.
dnf repoquery --requires --resolve htopLast metadata expiration check: 0:23:01 ago on Wed Oct 28 15:24:31 2026.
glibc-0:2.34-283.el9_8.i686
glibc-0:2.34-283.el9_8.x86_64
hwloc-libs-0:2.4.1-6.el9_7.x86_64
libcap-0:2.48-10.el9_8.1.x86_64
libnl3-0:3.11.0-1.el9.x86_64
ncurses-libs-0:6.2-12.20210508.el9.x86_64[--resolve] eklerseniz çıktı, bu kütüphaneleri sağlayan paketlerin adlarına dönüşür. Bunlardan hwloc-libs test sunucusunda yoktu; bu yüzden htop'u kurarsanız o da birlikte kurulur.
remove, belirttiğiniz paketi ve o pakete bağımlı paketleri birlikte kaldırır; varsayılan ayarda artık gerekmeyen bağımlı paketleri de kaldırır.
dnf remove htopYalnızca htop'u kaldırsanız bile htop için kurulmuş hwloc-libs gibi başka hiçbir paketin ihtiyaç duymadığı bağımlı paketler de birlikte kaldırılır.
Önceden bağımlı paket olarak kurulmuş ancak artık hiçbir paketin ihtiyaç duymadığı paketleri autoremove kaldırır. Kaldırılacakların listesini önce list [--autoremove] ile kontrol edin.
dnf list --autoremoveLast metadata expiration check: 0:23:09 ago on Wed Oct 28 15:24:31 2026.
Autoremove Packages
cmake-rpm-macros.noarch 3.31.8-3.el9 @appstream
grub2-tools-efi.x86_64 1:2.06-126.el9_8.alma.1 @baseos
grub2-tools-extra.x86_64 1:2.06-126.el9_8.alma.1 @baseos
libatomic.x86_64 11.5.0-14.el9.alma.1 @baseos
libvisual.x86_64 1:0.4.0-34.el9 @appstream
libwayland-server.x86_64 1.21.0-1.el9 @appstreamdnf autoremoveTest sunucusunda listede 6 paket çıktı ve autoremove bu 6 paketi tek seferde kaldırır.
Kurulu paketlerin yeni sürümünün çıkıp çıkmadığını check-update ile kontrol edersiniz. Paket adı eklerseniz yalnızca o paketi hedef alır.
dnf check-update libavif libdav1dLast metadata expiration check: 0:52:20 ago on Wed Oct 28 15:24:31 2026.
libavif.x86_64 1.1.1-3.el9 epel
libdav1d.x86_64 1.5.4-1.el9 epellibavif ve libdav1d paketlerini içeren yukarıdaki komut, ikisinin de yeni sürümü olduğu için 100 çıkış koduyla bitti. check-update güncelleme varsa 100, yoksa 0, hata olursa 1 ile bittiği için betiklerde koşul olarak kullanılabilir.
list komutuna paket adı eklerseniz kurulu sürüm ile depodaki yeni sürüm birlikte görünür. updateinfo list ile de bu güncellemenin hangi bildirime (advisory) karşılık geldiğini kontrol edersiniz.
dnf list libavifLast metadata expiration check: 0:52:21 ago on Wed Oct 28 15:24:31 2026.
Installed Packages
libavif.x86_64 0.11.1-5.el9 @epel
Available Packages
libavif.x86_64 1.1.1-3.el9 epellibavif için kurulu 0.11.1-5.el9 [Installed Packages] altında, depodaki 1.1.1-3.el9 ise [Available Packages] altında ayrı olarak göründü.
dnf updateinfo list libavifLast metadata expiration check: 0:52:24 ago on Wed Oct 28 15:24:31 2026.
FEDORA-EPEL-2026-d611eab94a bugfix libavif-1.1.1-3.el9.x86_64Bu yeni sürüm, FEDORA-EPEL-2026-d611eab94a numaralı bugfix bildirimine karşılık gelen bir güncellemeydi. Güvenlik güncellemelerinde aynı yerde [Moderate/Sec.] gibi önem derecesi ve Sec. ifadesi birlikte görünür.
Güncellemeyi upgrade ile yaparsınız. upgrade yalnızca bağımlılıkların uyduğu ölçüde yeni sürüm kurduğundan check-update çıktısında görünen sürüm olduğu gibi kurulmayabilir.
dnf upgrade libavifPaket adı eklerseniz yalnızca o paket ve gereken bağımlı paketler yeni sürüme yükseltilir.
dnf upgradeAdı yazmazsanız kurulu paketlerin tamamı hedef olur. İşlem özetini gösterip devam edip etmeyeceğinizi sorma akışı install ile aynıdır ve çalıştırılan işlem history'de bir numarayla kaydedilir.
4️⃣ dnf komutuyla depo listesi: repolist
search ve install komutlarının paketleri aradığı yer depolardır (repository). repolist, şu anda etkin olan depoların id değerini ve adını gösterir.
dnf repolistrepo id repo name
appstream AlmaLinux 9 - AppStream
baseos AlmaLinux 9 - BaseOS
epel Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras AlmaLinux 9 - Extras
nginx-stable nginx stable repo
remi-modular Remi's Modular repository for Enterprise Linux 9 - x86_64
remi-safe Safe Remi's RPM repository for Enterprise Linux 9 - x86_64Listede olmayan bir deponun sunucuda bulunmadığını varsaymak kolaydır, ancak repolist'in varsayılan çıktısında yalnızca etkin depolar görünür. [--all] eklerseniz devre dışı depolar da status sütunuyla birlikte gösterilir. Test sunucusunda AlmaLinux 9'un üç CRB deposunun hepsi disabled durumundaydı.
dnf repolist --all | grep -i crbcrb AlmaLinux 9 - CRB disabled
crb-debuginfo AlmaLinux 9 - CRB - Debug disabled
crb-source AlmaLinux 9 - CRB - Source disabledBir deponun paket sayısını, yansı adresini, meta verilerin geçerlilik süresini ve yapılandırma dosyasının yerini repoinfo ile kontrol edersiniz.
dnf repoinfo baseosLast metadata expiration check: 0:22:55 ago on Wed Oct 28 15:24:31 2026.
Repo-id : baseos
Repo-name : AlmaLinux 9 - BaseOS
Repo-status : enabled
Repo-revision : 1793090609
Repo-updated : Tue Oct 27 17:43:29 2026
Repo-pkgs : 3458
Repo-available-pkgs: 3458
Repo-size : 21 G
Repo-mirrors : https://mirrors.almalinux.org/mirrorlist/9/baseos
Repo-baseurl : http://aws.repo.almalinux.org/almalinux/9.8/BaseOS/x86_64/os/ (9 more)
Repo-expire : 86400 second(s) (last: Wed Oct 28 15:24:26 2026)
Repo-filename : /etc/yum.repos.d/almalinux-baseos.repo
Total packages: 3458repoinfo baseos çıktısında paket sayısı 3.458 olarak göründü ve meta verilerin her 86.400 saniyede (bir gün) bir yeniden kontrol edilmesi ayarlanmıştı. [Repo-filename] satırındaki .repo dosyası bu deponun yapılandırma dosyasıdır. Depoları etkinleştiren ve devre dışı bırakan [--set-enabled] ve [--set-disabled] seçenekleri, dnf-plugins-core paketindeki config-manager komutuyla birlikte kullanılır.
5️⃣ dnf komutuyla işlem geçmişi ve geri alma: history
Kurma ve kaldırma işlemlerini birçok kez yapınca neyi ne zaman değiştirdiğinizi takip etmek zorlaşır; dnf ise her işleme (transaction) bir numara verip history'ye kaydeder. Paket adı eklerseniz yalnızca o paketi değiştiren işlemler görünür.
dnf history list tmuxID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
51 | install -y tmux | 2026-10-15 20:40 | Install | 1tmux ile daraltılan çıktıda yalnızca tmux'un kurulduğu 51 numaralı işlemin satırı kaldı. Numara aralığı [50..51] gibi iki noktayla yazılır.
dnf history list 50..51ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
51 | install -y tmux | 2026-10-15 20:40 | Install | 1
50 | -y -q install mlocate | 2026-10-07 19:39 | Install | 1 EE[Altered] sütunundaki sayı, değişen paketlerin sayısıdır. 50 numaralı satırın sonunda [EE] göründü; bu, işlemin tamamlandığını ancak uyarı ya da hata çıktısı olduğunu gösterir.
Tek bir işlemin komut satırını, değişen paketlerini ve sonuç kodunu history info ile kontrol edersiniz.
dnf history info 51Transaction ID : 51
Begin time : Thu Oct 15 20:40:51 2026
Begin rpmdb : d3db9c92a9d0f6ef9a7a1404552bb76e9d56ba7602b1fce73fa5a62170d33c5c
End time : Thu Oct 15 20:40:51 2026 (0 seconds)
End rpmdb : a862c33ee6a2f2d0479e4dc2631907dee47591c5b6795551b755c6cd090ac1df
User : root <root>
Return-Code : Success
Releasever : 9
Command Line : install -y tmux
Persistence : Persist
Comment :
Packages Altered:
Install tmux-3.2a-5.el9.x86_64 @baseos51 numaralı işlemi açtığımızda [Command Line] satırında çalıştırılan install -y tmux komutu olduğu gibi duruyordu. [Packages Altered] altında kurulan tmux ile depo @baseos, [Return-Code] satırında ise Success yazıyordu. Numarayı yazmazsanız en son işlem görünür.
Yanlış bir şey kurduysanız history undo komutuna işlem numarasını vererek o işlemin tersini çalıştırırsınız. rollback ise paket durumunu belirtilen işlemin hemen sonrasına geri döndürür.
dnf history undo 5151 numaralı işlem tmux kurulumu olduğu için undo 51, tmux'u kaldıran ters bir işlem olur.
dnf history rollback 50rollback 50, 50'den sonra çalıştırılan işlemlerin sonuncusuna kadar hepsini geri aldığından, yalnızca tmux'u kaldıran undo 51 ile sonucu farklı olabilir.
Resmi belgelere göre geri alınamayan bir paket varsa undo ve rollback hiçbir şeyi değiştirmeden biter. rpm ile doğrudan yapılan değişiklikler kayıtta olmasa bile hata vererek durmazlar.
🔲 dnf komutu simülatörü
Aşağıdaki simülatörde search, info, provides, repolist ve history komutlarını kendiniz yazıp çıktıyı görebilirsiniz. yum ile yazsanız da aynı sonucu alırsınız.
🔢 SSS & önerilen içerikler



ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.