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
- Pisi Linux için: PiSi
- Arch Linux ve Manjaro için: pacman
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 “npm, yarn, 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 |





