RPM/YUM/DNF PAKET YÖNETİMİ VE REPOSITORY KONFİGÜRASYONU

Kurumsal Linux sunucularında yazılım kurma, güncelleme, bağımlılıkları yönetme ve harici paket kaynaklarını (Repository) sisteme ekleme süreçleri.

Giriş: CentOS/RHEL tabanlı sistemlerde temel paket formatı **RPM** (Red Hat Package Manager)'dir. **YUM** (Yellowdog Updater, Modified) ve daha yeni olan **DNF** (Dandified YUM) ise RPM tabanlı paketleri otomatik olarak indirip kurarken, karmaşık bağımlılıkları çözen üst düzey yönetim araçlarıdır.

Bölüm 1: DNF (Dandified YUM) ile Temel Paket Yönetimi

RHEL 8/CentOS 8 ve üzeri sistemlerde DNF, varsayılan ve en çok önerilen paket yöneticisidir. Komut yapısı YUM ile neredeyse aynıdır.

Kritik DNF Komutları

  1. **Paket Kurulumu:** Yeni bir yazılım paketini (Örn: `nginx`) bağımlılıklarıyla birlikte kurar.
    sudo dnf install nginx -y
    **Açıklama:** `-y` parametresi, tüm sorulara otomatik olarak evet (`yes`) yanıtı verir.
  2. **Paket Güncellemesi:** Tüm sistemdeki güncel paketleri listeler ve ardından yükler. Sistem güvenliği için zorunludur.
    sudo dnf check-update
    sudo dnf update -y
  3. **Paket Arama:** Belirli bir anahtar kelimeye (`httpd`) sahip paketleri Repository'lerde arar.
    sudo dnf search httpd
  4. **Paket Hakkında Bilgi:** Bir paketin açıklamasını, sürümünü ve dosya boyutunu görüntüler.
    sudo dnf info mariadb-server
  5. **Paket Kaldırma:** Kurulan paketi ve gereksiz bağımlılıkları sistemden kaldırır.
    sudo dnf remove nginx -y
  6. **Gereksiz Bağımlılıkları Temizleme:** Artık hiçbir paket tarafından kullanılmayan bağımlılık paketlerini temizler.
    sudo dnf autoremove

Bölüm 2: RPM (Red Hat Package Manager) ile Yönetim

RPM, paketleri manuel olarak kurmak, sorgulamak ve kaldırmak için kullanılan temel düşük seviyeli araçtır. Bağımlılıkları otomatik çözmez.

Temel RPM Komutları

  1. **RPM Dosyasını Kurma (Manuel):** İnternetten indirilen bir `.rpm` dosyasını kurmak için. Bağımlılıklar manuel olarak çözülmelidir.
    sudo rpm -ivh /tmp/jdk-17.rpm
  2. **Hangi Pakete Ait Olduğunu Sorgulama:** Sistemdeki bir dosyanın hangi RPM paketine ait olduğunu bulur.
    rpm -qf /etc/ssh/sshd_config
  3. **Kurulu Paketleri Listeleme:** Sisteme kurulu olan tüm paketleri listeler (Genellikle `grep` ile kullanılır).
    rpm -qa | grep "kernel"

Bölüm 3: Repository (Paket Kaynağı) Yönetimi

YUM/DNF, paketleri **Repository** adı verilen merkezi sunuculardan indirir. Harici yazılımlar için yeni Repository'ler eklemek gerekebilir.

Repository Yapısı ve Ekleme

  1. **Mevcut Repository'leri Listeleme:** Aktif olan ve pasif olan tüm Repository'leri listeler.
    dnf repolist all
  2. **Harici Repository Eklemek (Örn: EPEL):** Kurumsal Linux'ta yaygın olarak kullanılan bir topluluk deposu olan **EPEL**'i (Extra Packages for Enterprise Linux) ekleyin.
    sudo dnf install epel-release -y
  3. **Manuel Repository Tanımlama:** Repository dosyaları **`/etc/yum.repos.d/`** dizininde bulunur. Bu dizine manuel olarak bir `.repo` dosyası oluşturarak harici bir kaynağı sisteme ekleyebilirsiniz. (Örn: `mariadb.repo` dosyası oluşturmak.)
    # vi ile yeni dosyayı açın
    sudo vi /etc/yum.repos.d/mariadb.repo
    **Örnek `mariadb.repo` İçeriği:**
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.5/centos7-amd64
    gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck = 1
    enabled = 1
  4. **Repository'yi Kontrol Etme:** Yeni eklenen kaynağın çalıştığını ve paketleri listelediğini doğrulayın.
    dnf repolist
Güvenlik Uyarısı (GPG Key): Yeni bir Repository eklerken, paketlerin kaynağının doğruluğunu teyit etmek için mutlaka **GPG Key**'inin doğru olduğundan emin olun (`gpgcheck=1`). Güvenilmeyen bir kaynaktan paket kurmak, sisteme zararlı yazılım bulaştırabilir.

← ÖNCEKİ: AĞ YÖNETİMİ | SONRAKİ: KULLANICI & SUDO →