
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.
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
sudoile çalıştırın; root login açıksa kapatın, sadecesudoü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.gzindirip./configure && make installile 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 addartı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:
- EPEL / PPA — yarı-resmi topluluk depoları, GPG imzalı
- Yazılımın resmi APT/RPM repo'su — Docker, NodeSource, MongoDB gibi
- Snap / Flatpak — Ubuntu/Linux genel
- Doğrudan binary indir — son tercih, güvenli imza doğrula
- 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:
- VDS Sunucu — root yetki, dilediğiniz dağıtım
- E5 v4 VDS — Xeon E5 v4 + NVMe + RAM
- Türkiye VDS — Bursa Tier 3 datacenter
- Linux Hosting — paylaşımlı, paket yönetimi sağlayıcıda
- Linux Web Hosting — cPanel + LiteSpeed
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:

