Linux’ta Paket Yöneticileri 

Hazırlayan:  Sedefnaz Durukan

  • Paket yöneticileri Linux’ta uygulamaları yüklemek, yükseltmek ve kaldırmak için kullanılır. 

Temel Kavramlar 

1. Paket Yöneticisi (package manager) 

Paket yöneticisi, sistemdeki yazılımların ‘kurulumunu, kaldırılmasını, güncellenmesini ve yönetimini’ sağlayan araçtır. 

İşlevleri şu şekilde sıralanabilir: Uygun depolardan paket indirir, bağımlılıkları çözer, paketleri doğru dizinlere yerleştirir, kurulum sonrası yapılandırmaları yapar, güncelleme ve kaldırma işlemlerini yönetir. 

2. Paket (package) 

Bir “paket”, Linux’ta bir yazılımın (program, araç, kütüphane, sürücü vb.) tüm bileşenlerini içeren sıkıştırılmış bir dosyadır. 

İçeriği şunlardan oluşur; 

  • Yürütülebilir dosyalar: Programın çalıştırılabilir kısmı  
  • Kütüphaneler: Yazılımın ihtiyaç duyduğu “ .so “ dosyaları 
  • Yapılandırma dosyaları: “ /etc/ “ altında yer alan ayar dosyaları 
  • Dokümantasyon: Lisans bilgisi, sürüm notları 
  • Meta veriler: Paket adı, sürüm numarası, bağımlılıklar, mimari bilgisi.  

3. Depo(repository) 

Depolar, paketlerin uzaktan indirildiği sunuculardır. Bir anlamda Linux’un “uygulama mağazaları”dır. 

Özellikleri: 

  • Her dağıtımın kendine ait resmi depoları vardır. 
  • Depolarda binlerce yazılım paketi bulunur. 
  • Kaynak listesi genellikle konfigürasyon dosyalarında tanımlanır: 
  • Ubuntu/Debian → /etc/apt/sources.list 
  • Fedora/RedHat → /etc/yum.repos.d/ 
  • Arch → /etc/pacman.conf 

4. Bağımlılık (dependency) 

Bir yazılımın çalışması için gerekli olan başka yazılımlar veya kütüphanelerdir. Linux’ta çoğu yazılım, başka bir kütüphaneye bağlı olarak çalışır. 

!! Bağımlılık cehennemi (dependency hell):  Bağımlılıkların çakışması veya sürüm uyumsuzluğu nedeniyle sistemin bozulması anlamına gelir. 

5. Bağımlılık Çözümleyici (dependency resolver) 

Bir paketi kurarken veya kaldırırken, diğer paketlerin etkilenip etkilenmeyeceğini analiz eder. 

6. Konfigürasyon Dosyaları (configuration files) 

Paket yöneticisinin hangi depoları kullanacağını, nasıl davranacağını belirleyen dosyalardır. 

Kullanılan Paket Yöneticileri 

İşletim sistemi paket yöneticileri 

Yazılım paket yöneticileri 

En Çok Bilinen Paket Yöneticileri 

 “APT”, Debian tabanlı Linux dağıtımlarında kullanılan bir paket yönetim sistemidir. macOS için de “MacPorts”, “Homebrew” bilinen paket yöneticilerdir. JavaScript paketleri için “npmyarn, bower” en çok bilinen paketlerden birkaçıdır. 

Paket Yöneticilerinin Temel Özellikleri 

Bir paket yöneticisi öncelikle paket edinme sürecinde paketin doğruluğunu ve bütünlüğünü kontrol etmelidir. Bu süreç checksum kontrolü olarak ifade edilir. Sonrasında, paketin kaynağının kimlik doğrulamasını yapabilmelidir. Bu tür doğrulama süreçlerinde sayısal imzalar kullanılmaktadır. Güncelleme, güncelleme takibi ve güncellemelerin depo üzerinden gerçekleştirilmesi (yine kaynak doğrulama ve paket kontrolü ile birlikte). Paketin ihtiyacı olan uygulamalar ve/veya diğer paketler ile birlikte kurulduğundan emin olmak için bağımlılık yönetimi yapmak. Paketlerin hataya sebebiyet vermeyecek şekilde yapılandırılması / kaldırılması. Kullanılan tüm bağımlılıkları / paketleri çeşitli bilgilerle (metadata) birlikte (name, description, version number, vendor, checksum, dependencies…) kayıt altında tutarlar (örneğin package.json bir local package database’dir) ve yeri geldiğinde indirme-güncelleme-kaldırma işlemlerini tek bir komutla uygularlar. Bir başka alanda tüm bağımlılıklar yerine bu dosyaların kullanılması yeterli olacaktır. Gerisini paket yöneticisi kendisi halletmektedir. 

Paket Yöneticilerinin Avantaj Ve Dezavantajları 

Genel Avantajlar: 

  • Kolay yazılım kurulumu: Manuel olarak derleme (make,gcc) işlemi yerine tek komutla (apt install, dfn install) yazılım yüklenebilir. 
  • Otomatik bağımlılık çözümü: Gerekli tüm kitaplıklar ve yardımcı paketler otomatik indirilir, eksik kütüphane hataları azalır. 
  • Güvenli kaynak yönetimi: Paketler imzalı(signed) ve resmi depolardan gelir, kötü amaçlı yazılım riski düşer. 
  • Güncelleme kolaylığı: Tüm sistem veya belirli bir yazılım tek komutla güncellenebilir. 
  • Sürüm kontrolü: Paket yöneticileri hangi sürümmün yüklü olduğunu bilir, gerektiğinde eski sürüme dönme (rollback) imkanı verir. 
  • Tutarlılık ve sistem bütünlüğü: Sistemdeki dosyalar, konfigürasyonlar ve bağımlılıklar arasında çakışma daha az olur. 
  • Otomasyon ve betik desteği: Bash betikleriyle çokl kurulum ve bakım işlemleri kolayca otomatikleştirilebilir.   

Genel Dezavantajlar 

  • Dağıtım bağımlılığı: Her Linux dağıtımı farklı paket biçimi kullanır (.deb, .rpm, .pkg.tar.zst vb.), evrensel uyumluluk yoktur. 
  • Depo sınırlamaları: Resmî depolarda her zaman en güncel sürüm bulunmaz. Özellikle yeni yazılımlar için Flatpak/Snap gerekebilir. 
  • Bağımlılık çatışmaları(dependency hell): Farklı yazılımlar aynı kütüphanenin farklı sürümlerine ihtiyaç duyabilir, çakışma yaratabilir. 
  • Manuel yapılandırma gerekebilir: Bazı yazılımlar kurulduktan sonra elle ayar dosyası düzenlemeyi gerektirebilir. 
  • Farklı komut setleri: Her dağıtımın paket yöneticisi farklı komut sözdizimi kullanır (apt, dnf, pacman, zypper), öğrenme eğrisi artar. 
  • Offline kurulum zorluğu: İnternet bağlantısı olmadan bağımlılıkları manuel indirip kurmak zor olabilir. 
  • Evrensel standart eksikliği: Her paket yöneticisinin kendi meta-veri yapısı ve formatı vardır, bu da karmaşa yaratır 

Bilindik ailelere göre avantaj/dezavantaj 

APT (Debian, Ubuntu, Kali) 

Avantajları:  

  • Kullanımı çok basit, “insan dostu” sözdizimi.  
  • Geniş depo ekosistemi (Ubuntu ve Debian depoları zengin). 
  •  Otomatik bağımlılık çözümü çok kararlı. 
  • apt-get, apt-cache, dpkg gibi alt araçlarla esnek kontrol sağlar. 

Dezavatnajları: 

  • Sadece .deb tabanlı sistemlerde çalışır. 
  • Bağımlılık zinciri çok karmaşık olabilir. 
  • Eski paket sürümlerini temizlemezsen disk şişebilir. 
  • Bazen dpkg ile doğrudan çakışma yaşanabilir (örneğin yarım kalan kurulumlar). 

DNF/YUM (Red Hat, Fedora, CentOS) 

Avantajları: 

  • Gelişmiş bağımlılık yönetimi ve sürüm çözümü. 
  • Hızlı ve sağlam meta-veri önbellekleme. 
  • Komutlar script’lerle çok iyi entegre olur. 
  • DNF plugin sistemiyle özelleştirilebilir (örneğin dnf-automatic). 

Dezavantajları: 

  • Depo sayısı APT’ye göre az olabilir. 
  • RPM paketleri arasında çakışma yaşanabilir. 
  • Bazı eski sistemlerde yavaş çalışır. 
  • Kullanıcı arayüzü (CLI) karmaşık bulunabilir. 

PACMAN (Arch, Manjaro) 

Avantajları: 

  • Çok hızlı ve minimalist. 
  • Basit sözdizimi (pacman -S, pacman -R). 
  • Rolling-release (sürekli güncel sistem) modeline uygun. 
  • Kullanıcı deposu (AUR) ile topluluk katkıları güçlü. 

Dezavantajları: 

  • Paket bağımlılıklarını yanlış yönetirsen sistem bozulabilir. 
  • Resmî destek az, topluluk tabanlı yardım gerekebilir. 
  • AUR paketleri her zaman güvenli değildir. 
  • Rolling-release yapısı kararlılığı azaltabilir. 

Zypper (openSUSE) 

Avantajları: 

  • Akıllı bağımlılık çözümü (solver). 
  • Çoklu depo desteği gelişmiş. 
  • zypper dup ile tam sistem yükseltmesi yapılabilir. 
  • Gelişmiş loglama sistemi. 

Dezavantajları: 

  • Komutlar uzun ve karmaşık. 
  • Depo yöneticisi yavaş çalışabilir. 
  • Debian veya Arch kadar yaygın değildir → kaynak az. 

Paket Yöneticilerinin Uygun Kullanıcı Tipleri 

Paket Yöneticisi Kullanıldığı Dağıtımlar Uygun Kullanıcı Tipi Neden Uygun Olduğu 
APT (Advanced Package Tool) Ubuntu, Debian, Linux Mint, Kali  Yeni başlayan / ️ Orta seviye Kullanımı kolay, kararlı ve geniş depo desteği var. “apt install” ile her şey çözülür. 
DPKG (Debian Package Manager) Debian tabanlı sistemlerin çekirdeği  Geliştiriciler Manuel kontrol imkânı sağlar, sistem düzeyinde paket yönetimi için uygundur. 
DNF / YUM Fedora, CentOS, RHEL  Sistem yöneticileri / Orta seviye Kurumsal ortamlarda kararlıdır, güvenlik yamaları hızlı gelir. “Enterprise” odaklıdır. 
RPM (Red Hat Package Manager) Red Hat tabanlı tüm sistemler  Geliştirici /  Sistem yöneticisi Manuel kontrol sağlar, kurumsal üretim ortamlarında tercih edilir. 
PACMAN Arch Linux, Manjaro Deneysel kullanıcı /  Geliştirici Rolling-release (sürekli güncel) yapı sunar, performans odaklıdır. Hızlı ama dikkat ister. 
Zypper openSUSE ️ Orta seviye /  Sistem yöneticisi Güçlü bağımlılık çözümü, kararlılık ve yönetim araçlarıyla kurumsal sistemler için uygundur. 
Flatpak Tüm dağıtımlar Yeni başlayan / Geliştirici Her dağıtımda çalışır, güvenli (sandboxed) yapıdadır, yeni yazılım denemek için idealdir. 
Snap Ubuntu ve türevleri Yeni başlayan /  Geliştirici Otomatik güncellemeli, bağımsız çalışır, terminal bilgisi az olanlar için kolay. 
AppImage Tüm dağıtımlar  Yeni başlayan /  Deneysel Kurulum gerektirmez, taşınabilir. Ancak güncelleme manuel yapılır. 

Paket Yöneticilerinin Bağlı Olduğu Aile Ve Dağıtımlar 

Aile Dağıtımlar Paket Yöneticisi 
Debian Ubuntu, Kali, Mint apt, dpkg 
Red Hat Fedora, CentOS dnf, rpm 
Arch Manjaro, EndeavourOS pacman 
openSUSE openSUSE Leap, Tumbleweed zypper 
Evrensel Her dağıtım flatpak, snap, AppImage 

Bazı Paket Yöneticilerinin Özelliklerinin Tablosu 

Özellik APT DNF Pacman Zypper Flatpak 
Paket uzantısı .deb .rpm .pkg.tar.zst .rpm .flatpak 
Depo tipi /etc/apt/sources.list /etc/yum.repos.d/ /etc/pacman.conf /etc/zypp/repos.d/ Uygulama tabanlı 
Bağımlılık çözümü Otomatik Otomatik Otomatik Otomatik İzole 
GUI desteği Synaptic GNOME Software Pamac YaST GNOME Software 
Hız Orta Orta Hızlı Orta Değişken 

Kaynakça 

Son Yazılar

Bizi Takip Edin

Yazıyı Beğendin mi?

Yeni yazılarımızdan haberdar olmak için şimdi bize katılın.
İlgili yazılar

Okumaya Devam Edin