Ekim 29, 2025

Siberle kalın, güvende kalın!

Linux’ta Paket Yöneticileri 

Hazırlayan:  Sedefnaz Durukan 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;  3. Depo(repository)  Depolar, paketlerin uzaktan indirildiği sunuculardır. Bir anlamda Linux’un “uygulama mağazaları”dır.  Özellikleri:  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 “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:  Genel Dezavantajlar  Bilindik ailelere göre avantaj/dezavantaj  APT (Debian, Ubuntu, Kali)  Avantajları:   Dezavatnajları:  DNF/YUM (Red Hat, Fedora, CentOS)  Avantajları:  Dezavantajları:  PACMAN (Arch, Manjaro)  Avantajları:  Dezavantajları:  Zypper (openSUSE)  Avantajları:  Dezavantajları:  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 

Read More