Buyukweb
Linux'ta Paket Yönetimi: yum/dnf ve apt Komutları

Linux'ta Paket Yönetimi: yum/dnf ve apt Komutları

Linux'ta yazılım nasıl kurulur ve güncellenir? CentOS/AlmaLinux için yum/dnf ve Ubuntu/Debian için apt komutları ile paket yönetimi rehberi.

Büyükweb Editör EkibiHosting, Sunucu ve Sistem Yönetimi Editörü12 dakika okuma

Linux'ta Paket Yönetimi: dnf, yum, apt Pratik Rehberi (2026)

Linux sunucusunda yazılım kurulumu, güncelleme ve kaldırma işlerinin tamamı paket yöneticisi üzerinden yapılır. RHEL ailesi (AlmaLinux, Rocky, CentOS Stream, Fedora) dnf kullanır; eski sürümlerde yum adıyla bilinen aynı araç. Debian ailesi (Ubuntu, Debian) apt kullanır. Bu rehberde Buyukweb VDS müşterilerimiz için günlük kullanılan komutları, gerçek yazılım kurulum senaryolarını, güvenlik güncellemesi otomasyonunu ve sık karşılaşılan sorunların çözümünü topluyoruz.

Buyukweb perspektifi: VDS planlarımızda AlmaLinux 9, Rocky Linux 9, Ubuntu 22.04 LTS ve Debian 12 template'leri standart. Müşteri kurulumda hangi dağıtımı seçerse, paket yöneticisi otomatik kurulu gelir. Tercih etmeyin: CentOS 7 veya Ubuntu 18.04 gibi EOL (End of Life) olmuş dağıtımları — güvenlik güncellemesi alamazsınız, kritik CVE'lere açık kalırsınız. Mevcut sunucunuz EOL'a yakınsa Buyukweb destek (0850 302 60 70) migration konusunda yardımcı olur. Genel kural: dnf veya apt komutlarını her zaman sudo ile çalıştırın; root login açıksa kapatın, sadece sudo üzerinden yetki kullanın.

Paket Yöneticisi Nedir, Neden Önemli?

Bir Linux dağıtımının resmi (veya 3. parti güvenli) deposunda imzalı, test edilmiş paketler bulunur. Paket yöneticisi şu işleri otomatik yapar:

  • Bağımlılık çözümü: Bir paketin gerektirdiği diğer paketleri otomatik kurar (örn. Apache + libapr + libapr-util)
  • GPG imza doğrulama: Paketin gerçekten depo tarafından imzalanmış olduğunu kontrol eder; ortada-adam saldırısına karşı koruma
  • Sürüm takibi: Hangi paketin hangi sürümü kurulu, neyin güncellenebilir olduğunu kayıtta tutar
  • Atomik kurulum: Kurulum yarıda kalırsa rollback (özellikle dnf'de daha güçlü)
  • Güvenlik güncellemesi ayrımı: Sadece security CVE fixleri güncellemek mümkün

Tercih etmeyin: Internetten doğrudan .tar.gz indirip ./configure && make install ile derleme — paket yöneticisi haritalandıramaz, güncelleme alamaz, güvenlik patch'lerinden yoksun kalırsınız. Kaçınılmaz değilse paket yöneticisini kullanın.

dnf / yum (RHEL Ailesi: AlmaLinux, Rocky, Fedora)

dnf, RHEL 8 ve sonrasında default; RHEL 7'de yum. yum komutları RHEL 8+ üzerinde de çalışır (compat alias).

Temel Komutlar

# Kurulum
sudo dnf install nginx
sudo dnf install -y nginx              # onay sormadan kur (script için)
sudo dnf install nginx php-fpm mariadb # birden fazla paket aynı anda

# Güncelleme
sudo dnf check-update                  # nelerin güncellenebileceğini listele
sudo dnf update                        # tümünü güncelle
sudo dnf update nginx                  # tek paket
sudo dnf upgrade                       # update ile aynı (modern alias)
sudo dnf upgrade --refresh             # cache yenileyerek

# Kaldırma
sudo dnf remove nginx                  # paketi sil
sudo dnf autoremove                    # gereksiz bağımlılıkları temizle

# Arama ve bilgi
dnf search nginx
dnf info nginx                         # paket detayı
dnf list installed                     # kurulu tüm paketler
dnf list installed | grep php          # filtre

# Bağımlılık ve dosya
dnf provides /usr/sbin/nginx           # bu dosyayı hangi paket sağlıyor?
dnf repoquery --requires nginx         # nginx neye bağımlı?
dnf repoquery --whatrequires libapr    # libapr'i kim kullanıyor?

# Cache yönetimi
sudo dnf clean all                     # tüm cache'i temizle
sudo dnf makecache                     # cache yeniden oluştur

# History (atomik rollback)
sudo dnf history                       # geçmiş işlemler
sudo dnf history undo 23               # 23 numaralı transaction'ı geri al
sudo dnf history rollback 20           # 20'ye kadar her şeyi geri al

Modular Streams (RHEL 8+)

dnf 4'te yeni: aynı paketin farklı versiyonlarını "modular streams" olarak yönetir.

# Mevcut PHP stream'leri
sudo dnf module list php

# PHP 8.2 stream'ini etkinleştir ve kur
sudo dnf module enable php:8.2 -y
sudo dnf module install php:8.2/common -y

# Stream'i değiştir (örn. 7.4 → 8.2)
sudo dnf module reset php
sudo dnf module enable php:8.2
sudo dnf distro-sync

EPEL Repository

EPEL (Extra Packages for Enterprise Linux) RHEL'de olmayan birçok yararlı paket sağlar (htop, ncdu, fail2ban, certbot vs.):

# AlmaLinux 9 / Rocky 9
sudo dnf install epel-release -y

# Repository listesi
dnf repolist

# EPEL'den kurulum
sudo dnf install htop fail2ban certbot

Remi Repository (Modern PHP)

PHP 8.x güncel sürümleri için Remi (RHEL ailesi):

sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
sudo dnf module reset php
sudo dnf module enable php:remi-8.3 -y
sudo dnf install php php-fpm php-mysqlnd php-gd php-curl php-mbstring -y

apt (Debian / Ubuntu Ailesi)

apt, Debian 8 ve Ubuntu 16.04+ ile eski apt-get/apt-cache ikilisinin modern halefi.

Temel Komutlar

# Cache güncelleme (her install öncesi şart)
sudo apt update

# Kurulum
sudo apt install nginx
sudo apt install -y nginx              # onaysız
sudo apt install nginx php-fpm mariadb-server

# Güncelleme
sudo apt list --upgradable             # nelerin güncellenebileceği
sudo apt upgrade                       # paketleri güncelle
sudo apt full-upgrade                  # bağımlılık çatışmasında bile güncelle (ek paket silebilir)
sudo apt dist-upgrade                  # full-upgrade ile aynı (eski isim)

# Kaldırma
sudo apt remove nginx                  # paketi sil (config'i bırakır)
sudo apt purge nginx                   # paketi + config'i sil
sudo apt autoremove                    # gereksiz bağımlılıkları temizle

# Arama ve bilgi
apt search nginx
apt show nginx                         # paket detayı
apt list --installed                   # kurulu paketler
dpkg -l | grep php                     # daha düşük seviye listeleme

# Hangi paket bu dosyayı sağlıyor?
sudo apt install apt-file -y
sudo apt-file update
apt-file search /usr/sbin/nginx

# Cache yönetimi
sudo apt clean                         # /var/cache/apt/archives temizle
sudo apt autoclean                     # eski sürümleri temizle

PPA (Personal Package Archive)

Ubuntu için 3. parti depolar PPA olarak eklenir:

# Modern PHP için Ondrej PPA (Ubuntu)
sudo apt install software-properties-common -y
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update

# PHP 8.3 kurulum
sudo apt install php8.3 php8.3-fpm php8.3-mysql php8.3-gd php8.3-mbstring php8.3-curl php8.3-zip php8.3-intl php8.3-xml -y

# PPA kaldırma
sudo add-apt-repository -r ppa:ondrej/php

Üçüncü-Taraf APT Repo Ekleme

Modern güvenli yöntem (signed-by ile):

# NodeSource (Node.js 20.x örneği)
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | \
  sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | \
  sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt update
sudo apt install nodejs -y

# Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y

Eski yöntem uyarısı: apt-key add artık deprecated. Yukarıdaki signed-by yöntemi daha güvenli; her repo kendi anahtarıyla bağlı.

Sık Yapılan Görevler: Paralel Kıyaslama

Görev dnf (AlmaLinux/Rocky) apt (Ubuntu/Debian)
Tüm paketleri güncelle sudo dnf update -y sudo apt update && sudo apt upgrade -y
Sadece security update sudo dnf update --security unattended-upgrade -d
Reboot gerekiyor mu? sudo dnf needs-restarting -r /var/run/reboot-required dosyası varsa
Servisleri yeniden başlat sudo dnf needs-restarting -s sudo needrestart
Paket arama dnf search KEYWORD apt search KEYWORD
Hangi pakette bu dosya dnf provides /path apt-file search /path
Bağımlılıklar dnf repoquery --requires X apt depends X
Kullanılabilir sürümler dnf list X --showduplicates apt-cache madison X

LAMP / LEMP Stack Kurulumu

Web sunucusu + veritabanı + PHP:

LAMP (Apache) — AlmaLinux 9

sudo dnf install httpd mariadb-server -y
sudo dnf module enable php:8.2 -y
sudo dnf install php php-fpm php-mysqlnd php-gd php-curl php-mbstring php-xml php-intl -y
sudo systemctl enable --now httpd mariadb php-fpm
sudo firewall-cmd --permanent --add-service={http,https}
sudo firewall-cmd --reload
sudo mysql_secure_installation

LEMP (Nginx) — Ubuntu 22.04

sudo apt update
sudo apt install nginx mariadb-server -y
sudo apt install software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt install php8.3-fpm php8.3-mysql php8.3-gd php8.3-curl php8.3-mbstring php8.3-xml php8.3-intl -y
sudo systemctl enable --now nginx mariadb php8.3-fpm
sudo ufw allow 'Nginx Full'
sudo mysql_secure_installation

Otomatik Güvenlik Güncellemeleri

Production sunucu manuel güncellemeyi atlamak istemez. Otomatik security update:

dnf-automatic (RHEL ailesi)

sudo dnf install dnf-automatic -y
sudo nano /etc/dnf/automatic.conf
[commands]
upgrade_type = security        # sadece security CVE
random_sleep = 0
download_updates = yes
apply_updates = yes            # otomatik kurulum yap
[emitters]
emit_via = stdio,email
[email]
email_to = [email protected]
sudo systemctl enable --now dnf-automatic.timer
sudo systemctl list-timers | grep dnf

unattended-upgrades (Debian/Ubuntu)

sudo apt install unattended-upgrades apt-listchanges -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
# /etc/apt/apt.conf.d/50unattended-upgrades düzenle
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Önemli ayarlar:

Unattended-Upgrade::Allowed-Origins {
  "${distro_id}:${distro_codename}-security";
  "${distro_id}ESMApps:${distro_codename}-apps-security";
  "${distro_id}ESM:${distro_codename}-infra-security";
};
Unattended-Upgrade::Mail "[email protected]";
Unattended-Upgrade::Automatic-Reboot "false";   // canlı sistemde manuel kontrolle reboot

Sürüm Sabitleme (Version Pinning)

Bir paketin güncellemesini geçici durdurmak (örn. üretim test edilmeden):

dnf

sudo dnf install dnf-plugin-versionlock -y
sudo dnf versionlock add nginx
sudo dnf versionlock list
sudo dnf versionlock delete nginx

apt

sudo apt-mark hold nginx
apt-mark showhold
sudo apt-mark unhold nginx

Sorun Giderme: Sık Karşılaşılan Hatalar

Hata 1: "Failed to download metadata for repo"

# DNS / network sorunu mu?
ping -c 3 8.8.8.8
curl -I https://download.almalinux.org

# Repo URL'leri kontrol
sudo dnf repolist
cat /etc/yum.repos.d/*.repo

# Cache temizle
sudo dnf clean all
sudo dnf makecache

Hata 2: "E: Could not get lock /var/lib/dpkg/lock"

# Başka bir apt süreci çalışıyor mu?
ps aux | grep -i apt
sudo lsof /var/lib/dpkg/lock-frontend

# Otomatik update servisi mi?
sudo systemctl status unattended-upgrades

# Aşırı durum: lock kaldır (DİKKAT, çalışan apt'i kesmeyin)
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a

Hata 3: "Dependency Resolution Failed" (dnf)

# Çatışan paket bul
sudo dnf install ÇAKISAN_PAKET --best --allowerasing

# Veya skip-broken
sudo dnf update --skip-broken

Hata 4: "Public key for X.rpm is not installed"

# GPG anahtar import et
sudo rpm --import https://www.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux

Buyukweb VDS'de Pratik Senaryolar

Yeni VDS aldıktan sonra typical güvenlik + minimal stack kurulumu:

# AlmaLinux 9 VDS — ilk 10 dakika
sudo dnf update -y
sudo dnf install epel-release -y
sudo dnf install vim htop ncdu wget curl git tmux fail2ban firewalld -y
sudo systemctl enable --now firewalld fail2ban

# Otomatik security update
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer

# Reboot test
sudo reboot

# Ubuntu 22.04 VDS — ilk 10 dakika
sudo apt update && sudo apt upgrade -y
sudo apt install vim htop ncdu wget curl git tmux fail2ban ufw unattended-upgrades -y
sudo ufw allow OpenSSH
sudo ufw enable
sudo dpkg-reconfigure --priority=low unattended-upgrades

Sık Sorulan Sorular

Buyukweb VDS hangi dağıtımları sunuyor?

AlmaLinux 9, Rocky Linux 9, Ubuntu 22.04 LTS, Debian 12, CentOS 7 (eski müşteriler için, yeni kurulumda önerilmiyor). Yeni kurulumda AlmaLinux 9 veya Ubuntu 22.04 tavsiye ediyoruz; ikisinin de uzun destek süresi var.

CentOS 7 hâlâ kullanılabilir mi?

CentOS 7 30 Haziran 2024'te EOL oldu. Sadece kritik durumda paid extended-support var; yeni kurulum yapmayın. Mevcut CentOS 7 sunucunuzu AlmaLinux 9'a migrate etmek için migrate2alma aracı var; Buyukweb destek yardımcı olur.

dnf vs yum farkı nedir?

yum Python 2 tabanlıydı, RHEL 7 default. dnf Python 3 tabanlı, modern, daha hızlı, modular streams desteğiyle RHEL 8'de default. RHEL 8+ üzerinde yum komutları dnf'e symlink; ikisi de çalışır.

apt-get yerine apt kullanmam gerekir mi?

apt modern interactive komut, apt-get script-friendly. Her ikisi de aynı işi yapar. Manuel kullanımda apt, otomasyon scriptlerinde apt-get veya apt-get -y tercih edilir (apt'nin uyarıları dağılır).

Hangi paketler "minimal kurulum"a dahil olmalı?

Yeni VDS'de minimum: vim, htop, ncdu, wget, curl, git, tmux veya screen, fail2ban, firewall (firewalld veya ufw), bir text-editör, log viewer (lnav opsiyonel). 30 saniyede kurulur, 10 yıl iş görür.

apt update ve apt upgrade arasındaki fark?

apt update paket listesini günceller (cache yenileme); kurulu paketleri değiştirmez. apt upgrade listede güncelleme olan paketleri kurar. İlk önce update, sonra upgrade. Sadece upgrade çalıştırırsanız eski cache üzerinden eski sürüm gelir.

Bir paketi kurdum ama servis başlamadı, ne yapayım?

Modern dnf/apt paketlerinde servis otomatik başlamaz; manuel:

sudo systemctl status nginx           # mevcut durum
sudo systemctl start nginx            # şimdi başlat
sudo systemctl enable nginx           # boot'ta otomatik başlasın
sudo systemctl enable --now nginx     # ikisi birden
sudo journalctl -u nginx --no-pager   # log

Otomatik security update reboot gerektiriyorsa ne olur?

Default'ta otomatik reboot yapmaz (production'da güvenli). Manuel kontrol için:

# AlmaLinux/Rocky
sudo dnf needs-restarting -r          # exit 1 → reboot gerek

# Ubuntu/Debian
ls /var/run/reboot-required           # dosya varsa reboot gerek
cat /var/run/reboot-required.pkgs     # hangi paket için

Reboot'u uygun pencerede manuel sudo reboot ile yapın.

Bir yazılımı resmi depoda yok; nereden kuracağım?

Sırasıyla tercih:

  1. EPEL / PPA — yarı-resmi topluluk depoları, GPG imzalı
  2. Yazılımın resmi APT/RPM repo'su — Docker, NodeSource, MongoDB gibi
  3. Snap / Flatpak — Ubuntu/Linux genel
  4. Doğrudan binary indir — son tercih, güvenli imza doğrula
  5. Kaynaktan derleme (./configure && make) — sadece zorunluluk

Buyukweb destek ekibi paket kurulumunda yardımcı olur mu?

VDS müşterilerimize temel kurulum desteği veriyoruz: LAMP/LEMP stack, web server, panel kurulumu, fail2ban gibi standart işler. Özel uygulama (kendi PHP projeniz, custom Python pipeline) müşteri sorumluluğunda. Net olmayan durumda 0850 302 60 70 numaralı destek hattımıza yazıp danışın.

Sonuç

Linux paket yönetimi sunucu hayatınızın temel becerisidir. dnf veya apt, bir komutla yüzlerce paket arasındaki bağımlılıkları çözer; otomatik güvenlik güncellemesiyle CVE'lere karşı koruma sağlar. Buyukweb VDS müşterilerimize tavsiyemiz: AlmaLinux 9 veya Ubuntu 22.04 LTS seçin, ilk 10 dakikada minimal araçları kurun, dnf-automatic veya unattended-upgrades aktif edin. Bu yapıyla 5+ yıl güvenli bir sunucu deneyimi elde edersiniz.

Soru ve teknik destek için: 0850 302 60 70.


İlgili Büyükweb Hizmetleri

Linux VDS sunucu paketlerimiz:

Sorularınız için 0850 302 60 70 numaralı destek hattımıza veya iletişim sayfamıza yazabilirsiniz.

Linux & Komut Satırı İlgili Hizmetlerimiz

Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin

Etiketler:

#paket yönetimi#linux#komut satırı#terminal#sunucu yönetimi

Bu yazıyı paylaş