Linux Paket Yöneticileri: apt, yum, pacman Karşılaştırması

apt, yum/dnf ve pacman komutlarını, depo yönetimi mantığını ve sık karşılaşılan paket yönetimi sorunlarının çözümünü örneklerle anlatan pratik rehber.

Linux
Linux Paket Yöneticileri: apt, yum, pacman Karşılaştırması

Windows'tan Linux'a geçenlerin çoğu, program kurma alışkanlığının burada tamamen farklı işlediğini fark ediyor. İndirilen bir kurulum dosyasını çalıştırmak yerine, yazılım paket yöneticisi denen bir sistem üzerinden, dağıtımın kendi deposundan gelir. Bu yöntem ilk bakışta kısıtlayıcı görünse de güvenlik ve düzen açısından önemli bir avantaj sağlar. Bu yazıda apt, yum/dnf ve pacman'ın nasıl çalıştığını, aralarındaki farkları ve günlük kullanımda işe yarayan komutları anlatıyorum.

Paket yöneticisi tam olarak ne yapar

Paket yöneticisi, yazılımın kurulmasını, güncellenmesini ve kaldırılmasını yöneten bir araçtır. Bir paket; programın dosyalarını, meta verisini ve bağımlılık listesini tek bir birimde toplar. Bu paketler, dağıtımın bakımcıları tarafından test edilen depolardan (repository) iner. Bu da rastgele bir siteden indirilen kurulum dosyasına göre çok daha güvenli bir modeldir.

Bağımlılık yönetimi, işin can alıcı kısmıdır. Bir program çalışmak için genelde başka kütüphanelere ihtiyaç duyar. Bunları elle bulup kurmak hem yorucu hem hataya açık bir iştir. Paket yöneticisi bu bağımlılık zincirini otomatik çözer, gerekli her şeyi sırayla indirip kurar. Windows'ta her programın kendi güncelleyicisini çalıştırmasına alışkın biri için bu merkezi model başta garip gelebilir. Ama tek bir komutla yüzlerce paketi güncelleyebilmek, alıştıktan sonra vazgeçilmez bir kolaylık hâline gelir.

Son yıllarda dağıtımdan bağımsız formatlar da güçlendi. Flathub üzerinden dağıtılan Flatpak uygulamaları hemen her dağıtımda aynı şekilde çalışıyor, Snap ve AppImage de benzer bir esneklik sunuyor. Bunlar klasik paket yöneticilerinin yerini almıyor, onları tamamlıyor. Masaüstü uygulamalarında sıkça tercih edilirken, sunucu tarafında hâlâ dağıtımın kendi paket yöneticisi ağırlıkta. Bir geliştirici aracını hem Ubuntu hem Fedora'da aynı sürümle çalıştırmak isteyenler için Flatpak genelde en az sürtünmeli yoldur.

APT: Debian ve Ubuntu'nun omurgası

APT (Advanced Package Tool), Debian, Ubuntu ve Linux Mint gibi türevlerin paket yöneticisidir. .deb uzantılı paketlerle çalışır ve Linux dünyasının en olgun, en geniş kullanıcı tabanına sahip sistemlerinden biridir. Günlük kullanımda ihtiyaç duyulan komutlar şunlardır:

APT paket yöneticisi komutlarını gösteren terminal penceresi
sudo apt update
sudo apt upgrade
sudo apt install paket-adi
sudo apt remove paket-adi
sudo apt autoremove
sudo apt search paket-adi

apt update depo listesini tazeler, upgrade kurulu paketleri yükseltir. install ve remove isimlerinden bellidir. autoremove ise artık hiçbir paketin bağımlılığı olmayan "yetim" paketleri temizler. search komutu, tam paket adı bilinmediğinde işe yarar; örneğin "pdf düzenleyici" aramak yerine apt search pdf yazıp listeye göz gezdirilebilir.

Debian ve Ubuntu depoları neredeyse her ihtiyaca hazır paket barındırır, bu yüzden aranan yazılımı bulmak genelde tek komutluk bir iştir. Bu geniş ekosistem ve kalabalık kullanıcı topluluğu, karşılaşılan hemen her hataya bir forum yanıtı bulmayı da kolaylaştırır. Yeni başlayanların APT'yi tercih etmesinin bir nedeni budur: hata mesajı arandığında genelde birileri aynı sorunu daha önce çözmüş oluyor.

YUM ve DNF: Red Hat ailesi

Fedora, CentOS ve RHEL gibi dağıtımlar .rpm paketleriyle çalışır; buradaki araç YUM'un modern hâli olan DNF'dir. DNF, YUM'a göre daha hızlı bağımlılık çözümü ve daha temiz bir önbellek yönetimi sunar. Temel komutlar şöyledir:

sudo dnf check-update
sudo dnf upgrade
sudo dnf install paket-adi
sudo dnf remove paket-adi
sudo dnf autoremove
sudo dnf search paket-adi

Komut yapısı APT'ye oldukça yakındır. check-update mevcut güncellemeleri listeler ama hiçbir şey kurmaz; tam bir yükseltme için upgrade komutu gerekir. Grup kurulumları da DNF'nin güçlü yanlarından biridir: sudo dnf groupinstall "Development Tools" gibi bir komutla, tek tek paket aramak yerine önceden tanımlı bir yazılım demeti tek seferde kurulabilir.

Bu aile, kurumsal ortamlarda tercih edilir çünkü uzun vadeli destek ve kararlılığa öncelik verir. Sunucu tarafında bir paketin sürümünü aylarca sabit tutmak isteyen ekipler için RHEL tabanlı dağıtımlar hâlâ standart sayılır. CentOS'un yerini alan Rocky Linux ve AlmaLinux da bu ekosistemi sürdürüyor; DNF komutları bu iki dağıtımda da birebir aynı çalışır.

DNF'nin bağımlılık çözücüsü, eski YUM'a göre gözle görülür şekilde daha hızlıdır. Büyük paket listelerinde bile saniyeler içinde sonuç verir. Bu performans farkı, özellikle çok sayıda paketin kurulu olduğu üretim sunucularında fark yaratır.

Pacman: Arch'ın hız ve sadelik anlayışı

Pacman, Arch Linux'un paket yöneticisidir ve .pkg.tar.zst formatındaki paketlerle çalışır. Arch'ın "yuvarlanan sürüm" (rolling release) modelini destekler. Sistem tazelendikçe yazılımlar sürekli en güncel hâlde kalır; ayrı bir sürüm yükseltmesi beklenmez. Temel komutlar diğerlerinden biraz farklı görünse de mantık aynıdır:

Pacman paket yöneticisi komutlarını gösteren terminal penceresi
sudo pacman -Syu
sudo pacman -S paket-adi
sudo pacman -R paket-adi
sudo pacman -Rns paket-adi
pacman -Ss paket-adi

-Syu depo listesini günceller ve sistemi yükseltir, -S kurar, -R kaldırır. -Rns ise paketi bağımlılıklarıyla ve yapılandırma dosyalarıyla birlikte söker; sistemi temiz tutmak isteyenler genelde -R yerine bunu tercih eder. -Ss ise sudo gerektirmeden paket arar, hızlı bir kontrol için idealdir.

Arch Kullanıcı Deposu (AUR), resmi depoda olmayan binlerce ek paketi topluluk desteğiyle sunar. yay gibi bir AUR yardımcı aracıyla bu depoya da erişilebilir. AUR paketleri resmi olarak denetlenmediği için kurmadan önce PKGBUILD dosyasına göz atmak makul bir alışkanlıktır. Pacman'in kısa komut yapısı başta tuhaf görünse de, alıştıktan sonra APT'den bile hızlı hissettirir.

Depo yönetimi ve güven meselesi

Paket yöneticisinin gücü, bağlı olduğu depodan gelir. Resmi depolar test edilmiş, dağıtımla uyumluluğu doğrulanmış paketler barındırır; bu yüzden yazılım kurarken önce resmi depoya bakmak en güvenli yoldur. Bazen ihtiyaç duyulan paket resmi depoda bulunmaz ve üçüncü taraf bir depo eklemek gerekir.

Paket yöneticisi sorun giderme adımlarını gösteren infografik

Üçüncü taraf depo eklerken dikkatli olmak gerekir. Güvenilmeyen bir kaynak, sisteme kararsızlık veya kötü amaçlı yazılım bulaştırabilir. Ubuntu'da PPA eklerken, Fedora'da COPR kullanırken kaynağın kim tarafından sürdürüldüğüne bakmak beş dakikalık bir kontrolün ötesinde bir alışkanlık olmalıdır; bir PPA sahibinin GitHub geçmişine bakmak bile fikir verir.

Kaynak türüGüvenlikKullanım senaryosu
Resmi depoYüksek, test edilmişGünlük kullanım, sunucu
Topluluk deposu (AUR, COPR, PPA)Değişken, kaynağa bağlıResmi depoda olmayan yazılım
Bağımsız format (Flatpak, Snap)Yüksek, izole çalışırMasaüstü uygulamaları

Depo yapılandırması sürüm tercihini de belirler. Bazı depolar en güncel sürümü sunarken, bazıları kararlılığı önceleyip biraz daha eski ama test edilmiş paketleri tutar. Sunucu yönetenler için kararlı depo, masaüstünde en yeni özellikleri denemek isteyenler için güncel depo mantıklı bir tercihtir.

Sık karşılaşılan sorunlar ve çözümleri

Bağımlılık çakışması en sık görülen sorunlardan biridir; iki paket aynı kütüphanenin farklı sürümlerini istediğinde ortaya çıkar. Modern paket yöneticileri bu çakışmaları çoğunlukla otomatik çözer, ama bazen elle müdahale gerekir. APT'de aşağıdaki komutlar yarım kalan bağımlılıkları tamamlamaya çalışır:

sudo apt --fix-broken install
sudo dpkg --configure -a

Kesintiye uğramış kurulumlar da başka bir klasik sorundur. Güç kesintisi ya da terminalin kapanması yüzünden yarıda kalan bir işlem, paket veritabanını tutarsız bırakabilir. Yukarıdaki dpkg --configure -a komutu tam olarak bunu onarmak için vardır. Pacman'de ise sudo pacman -Syyu ile önbelleği zorla tazelemek çoğu zaman işe yarar.

Depo erişim hataları da zaman zaman çıkar; bir aynanın (mirror) geçici olarak çökmesi ya da anahtar (GPG key) sorunları buna örnektir. Bu durumda depo listesini güncellemek veya sorunlu aynayı listeden çıkarmak genelde yeterlidir. Sorunun kaynağını anlamak çözüme giden en kısa yoldur; hata mesajını olduğu gibi arama motoruna yapıştırmak bile çoğu zaman işe yarar.

Disk alanı da unutulmaması gereken bir konudur. Zamanla biriken paket önbellekleri gigabaytlarca yer kaplayabilir. APT'de sudo apt clean, pacman'de sudo pacman -Sc komutu bu önbelleği temizler. Aylık bir bakım rutini olarak eklemeye değer.

Hangi paket yöneticisini öğrenmeli

Kullanılan dağıtım bu kararı zaten belirliyor: Ubuntu ya da Debian tabanlı bir sistemde APT, Fedora veya RHEL ailesinde DNF, Arch'ta pacman. Mantık üçünde de aynıdır: depo tazele, kur, kaldır, temizle. Birini iyi öğrendikten sonra diğerine geçiş, birkaç komut ismini ezberlemekten ibaret kalır.

Yeni bir dağıtım denerken paket yöneticisinin komutlarını bir kenara not almak zaman kazandırır. Aşağıdaki gibi kısa bir referans tablosu, dağıtımlar arası geçişte işi kolaylaştırır:

İşlemAPTDNFPacman
Depo güncelleapt updatednf check-updatepacman -Sy
Sistemi yükseltapt upgradednf upgradepacman -Syu
Paket kurapt installdnf installpacman -S
Paket kaldırapt removednf removepacman -R

Sistemi düzenli güncellemek, güvenlik açıklarını kapatmanın en pratik yoludur. apt update && apt upgrade, dnf upgrade ya da pacman -Syu komutlarını haftalık bir alışkanlık hâline getirmek, çoğu güvenlik sorununu ortaya çıkmadan önler. Resmi belgeler için Debian paket yönetimi dokümantasyonu ve Arch Wiki pacman sayfası güvenilir referanslardır.

Celil Uyanikoglu

Yazan Celil Uyanikoglu

Bilgisayar mühendisiyim; 25 yılı aşkın süredir bilgi işlem sektörünün içindeyim. Bu blogu 2020'de, işimde her gün karşılaştığım sorunların çözümlerini bir yere yazmak için açtım: Linux, güvenlik, tarayıcılar, yapay zeka araçları. Yazdığım her rehberi önce kendi bilgisayarımda ya da sunucumda deniyorum; çalıştığını görmediğim adımı yayınlamam. Hatalı ya da eskimiş bir şey görürsen iletişim sayfasından yaz — düzeltirim.

Yorum

Henüz yorum yok.

Sohbete katıl. Yorumlar yayınlanmadan önce moderasyondan geçer.

Yorum yap

E-posta adresin yayınlanmaz. Yorumlar moderasyondan sonra yayınlanır.

Sırada

İlgili notlar

jekcms 61602b0e6293b42004a1