CentOS 8’in Aralık 2021’de Stream’e dönüştürülmesiyle birlikte sistem yöneticileri ciddi bir karar noktasıyla karşılaştı. Yıllardır güvendiğimiz, kurumsal ortamlarda stabil bir şekilde çalışan CentOS’un yerine ne geçecekti? İki güçlü rakip hızla sahneye çıktı: AlmaLinux ve Rocky Linux. Her ikisi de RHEL (Red Hat Enterprise Linux) tabanlı, ücretsiz ve topluluk destekli dağıtımlar. Ama hangisi senin ortamın için daha uygun? Bu yazıda her iki dağıtımı gerçek dünya senaryoları üzerinden karşılaştıracağız.
Kısa Tarihçe ve Arka Plan
AlmaLinux, CloudLinux şirketi tarafından Mart 2021’de duyuruldu. CloudLinux zaten yıllardır RHEL tabanlı bir hosting odaklı dağıtım üretiyordu. Yani bu insanlar işi biliyordu. AlmaLinux OS Foundation adında bağımsız bir kar amacı gütmeyen kuruluş aracılığıyla yönetiliyor.
Rocky Linux ise CentOS’un kurucusu Gregory Kurtzer tarafından başlatıldı. “Rocky McGaugh anısına” adlandırılan bu proje, topluluktan gelen muazzam bir heyecanla Mayıs 2021’de ilk stabil sürümünü yayınladı. Rocky Linux Association adında bağımsız bir yapı tarafından yönetiliyor.
Her iki dağıtım da RHEL’in birebir kopyasını hedefliyor. Ama pratikte aralarında önemli farklar var.
Kurulum Süreci
Her iki dağıtım da Anaconda installer kullanıyor, dolayısıyla CentOS’tan gelenler kendilerini hemen evlerinde hissedecek.
AlmaLinux ISO indirip başlatıldığında standart RHEL tarzı bir kurulum ekranı karşılıyor sizi. Rocky Linux’ta da durum aynı. Ancak bazı pratik farklılıklar mevcut.
AlmaLinux Minimal Kurulum Sonrası Temel Ayarlar
# Sistem güncellemesi
dnf update -y
# EPEL repo ekleme
dnf install -y epel-release
# Temel araçları yükleme
dnf install -y vim wget curl net-tools bind-utils
bash-completion htop
# Firewall durumu kontrol
systemctl status firewalld
# SELinux durumu
getenforce
Rocky Linux Minimal Kurulum Sonrası Temel Ayarlar
# Sistem güncellemesi
dnf update -y
# EPEL ve PowerTools/CRB repo
dnf install -y epel-release
dnf config-manager --set-enabled crb
# Temel araçlar
dnf install -y vim wget curl net-tools bind-utils
bash-completion htop
# Rocky Linux sürüm bilgisi
cat /etc/rocky-release
Burada dikkat etmen gereken bir nokta var. AlmaLinux 9 serisinde PowerTools reposu artık CRB (CodeReady Builder) adını aldı ve etkinleştirme komutu biraz farklı:
# AlmaLinux 9'da CRB etkinleştirme
dnf config-manager --set-enabled crb
# AlmaLinux 8'de PowerTools
dnf config-manager --set-enabled powertools
Rocky Linux 9’da da aynı şekilde CRB kullanılıyor. Bu noktada iki dağıtım arasında fark yok.
RHEL Uyumluluğu: ABI vs Birebir Kopya
İşte en önemli konu bu. Rocky Linux, RHEL’in birebir binary uyumlu bir kopyası olmayı hedefliyor. Yani RHEL için derlenen bir yazılım Rocky Linux’ta da sorunsuz çalışmalı.
AlmaLinux ise bir dönem “production-ready, community-owned enterprise Linux distro” olarak tanımlanıyordu. Ancak 2023 yılında Red Hat’in kaynak kodu politikasını değiştirmesinin ardından AlmaLinux ekibi kritik bir karar aldı: ABI uyumluluğunu hedeflemek, birebir kopya olmak yerine.
Bu ne anlama geliyor pratikte? ABI (Application Binary Interface) uyumluluğu, bir uygulamanın ikili seviyede çalışabileceğini garanti eder. Yani RHEL için derlenmiş bir yazılım AlmaLinux’ta da çalışır. Ama arka planda bazı yamalar veya güvenlik düzeltmeleri Red Hat’ten farklı zamanlarda veya farklı şekillerde uygulanmış olabilir.
Rocky Linux ise RHEL uyumlu kaynak kodu için CentOS Stream, Fedora ve diğer açık kaynaklara yöneldi. Bu süreç biraz daha karmaşık hale geldi ama Rocky ekibi bunu başarıyla yönetiyor.
Büyük kurumsal ortamlarda RHEL uygulamaları deploy eden biri olarak söyleyebilirim ki: Pratikte iki dağıtım arasında uyumluluk açısından ciddi bir sorun yaşamak çok nadir.
Paket Yönetimi ve Repo Yapısı
# AlmaLinux repo listesi görüntüleme
dnf repolist all
# Örnek çıktıda göreceğin repo'lar:
# almalinux-appstream
# almalinux-baseos
# almalinux-crb
# almalinux-extras
# almalinux-highavailability
# epel (eklendikten sonra)
# Rocky Linux repo listesi
dnf repolist all
# rocky-appstream
# rocky-baseos
# rocky-crb
# rocky-extras
# rocky-ha
Her iki dağıtımda da DNF paket yöneticisi kullanılıyor. DNF modülleri, gruplar ve repo öncelikleri konusunda davranışları neredeyse identik.
Üçüncü Parti Repo Uyumluluğu
Gerçek dünyada sıkça karşılaşılan bir senaryo: NGINX, MySQL, PostgreSQL gibi yazılımların resmi repolarını eklemek.
# MySQL repo ekleme (AlmaLinux/Rocky Linux her ikisinde aynı)
dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
# NGINX resmi repo
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
dnf install -y nginx
Bu noktada her iki dağıtım da aynı şekilde davranıyor. $releasever değişkeni her ikisinde de doğru şekilde işleniyor.
Güvenlik Güncellemeleri Hızı
Bu konu sysadminler için kritik. Bir CVE çıktığında ne kadar sürede patch geliyor?
Genel gözlemim şu: AlmaLinux kritik güvenlik yamalarını genellikle biraz daha hızlı yayınlıyor. Bunun arkasında CloudLinux’un kurumsal altyapısı ve deneyimi var. Rocky Linux ekibi de oldukça hızlı ama zaman zaman birkaç saatlik gecikme yaşanabiliyor.
Her iki dağıtım için güvenlik güncellemelerini takip etmenin en iyi yolu:
# Sadece güvenlik güncellemelerini listeleme
dnf updateinfo list security
# Kritik güvenlik yamalarını görme
dnf updateinfo list security --sec-severity=Critical
# Otomatik güvenlik güncellemeleri için dnf-automatic
dnf install -y dnf-automatic
# /etc/dnf/automatic.conf dosyasını düzenle
sed -i 's/apply_updates = no/apply_updates = yes/' /etc/dnf/automatic.conf
sed -i 's/upgrade_type = default/upgrade_type = security/' /etc/dnf/automatic.conf
systemctl enable --now dnf-automatic.timer
Kernel ve Sistem Bileşenleri
Her iki dağıtım da RHEL ile aynı kernel versiyonlarını takip ediyor. Burada dikkat etmen gereken bir fark var:
AlmaLinux, kendi AlmaLinux kernel yamalarını uyguluyor. Rocky Linux ise RHEL kernel’ına mümkün olduğunca yakın kalmaya çalışıyor.
# Kernel versiyonunu kontrol et
uname -r
# Yüklü kernel'ları listele
rpm -qa kernel | sort
# Kernel parametrelerini görüntüle
sysctl -a | grep vm.swappiness
# Kernel tune örneği (web sunucusu için)
cat >> /etc/sysctl.d/99-custom.conf << 'EOF'
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
vm.swappiness = 10
net.ipv4.ip_local_port_range = 1024 65535
EOF
sysctl -p /etc/sysctl.d/99-custom.conf
Topluluk ve Destek Yapısı
Bu konuda iki dağıtım arasında karakteristik bir fark var.
AlmaLinux tarafında:
- CloudLinux’un arkasındaki kurumsal destek
- Aktif Reddit topluluğu (r/AlmaLinux)
- Mattermost ve IRC kanalları
- Yılda birkaç kez düzenlenen AlmaLinux Day etkinlikleri
- Ticari destek seçenekleri (TuxCare aracılığıyla)
Rocky Linux tarafında:
- Güçlü topluluk odaklı yapı
- Mattermost, IRC ve Reddit (r/RockyLinux)
- Rocky Linux Association üyeliği
- Daha organik ve grassroots yaklaşım
Her ikisinin de aktif forum ve Mattermost kanalları var. Bir sorunla karşılaştığında cevap bulmak için her iki topluluk da oldukça yardımsever. Ancak AlmaLinux’un ticari destek seçeneği olan TuxCare, özellikle extended security support (livepatch dahil) sunmasıyla kurumsal ortamlar için avantaj sağlıyor.
Gerçek Dünya Senaryosu: CentOS 7’den Geçiş
CentOS 7 EOL’a girdi (Haziran 2024). Binlerce sunucu geçiş yapmak zorunda. İşte bu geçişi nasıl yapacağını gösteren pratik bir örnek:
CentOS 8 Stream’den AlmaLinux 8’e Geçiş
# Önce mevcut sistemi tamamen güncelle
dnf update -y
# AlmaLinux migration scriptini indir
curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
# Script'i doğrula
sha256sum almalinux-deploy.sh
# Geçişi başlat
bash almalinux-deploy.sh
# Sistem yeniden başlatıldıktan sonra kontrol
cat /etc/almalinux-release
rpm -q almalinux-release
CentOS 8 Stream’den Rocky Linux 8’e Geçiş
# migrate2rocky scriptini kullan
curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
# Execute izni ver
chmod +x migrate2rocky.sh
# Geçişi başlat (-r flag: rocky'e geçiş)
./migrate2rocky.sh -r
# Reboot sonrası kontrol
cat /etc/rocky-release
hostnamectl
Her iki migration scripti de oldukça olgun ve test edilmiş durumda. Ben onlarca sunucuda her iki geçişi de yaptım, ciddi bir sorunla karşılaşmadım. Tabii ki önce test ortamında dene, production’a geçmeden önce.
Konteyner ve Cloud Ortamları
Modern altyapılarda konteyner kullanımı kaçınılmaz. Her iki dağıtımın da resmi container image’ları mevcut.
# AlmaLinux container image çekme
podman pull almalinux:9
podman run -it almalinux:9 /bin/bash
# Rocky Linux container image
podman pull rockylinux:9
podman run -it rockylinux:9 /bin/bash
# Docker Hub'dan da mevcut
docker pull almalinux:9.3
docker pull rockylinux:9.3
# Image boyutlarını karşılaştır
docker images | grep -E "almalinux|rockylinux"
AWS, Azure ve GCP marketplace’lerinde her iki dağıtım da mevcut. Terraform veya Packer ile image oluşturuyorsan her ikisi için de kaynak bulmak kolay.
# AWS CLI ile AlmaLinux AMI arama
aws ec2 describe-images
--owners aws-marketplace
--filters "Name=name,Values=AlmaLinux OS 9*"
--query 'Images[*].[ImageId,Name,CreationDate]'
--output table
# Rocky Linux AMI arama
aws ec2 describe-images
--owners aws-marketplace
--filters "Name=name,Values=Rocky Linux 9*"
--query 'Images[*].[ImageId,Name,CreationDate]'
--output table
Ansible ile Yönetim
Eğer Ansible kullanıyorsan (kullanmıyorsan kullanmaya başla), her iki dağıtım için playbook’lar neredeyse identik. Ama dağıtımı tespit etmek için bazı durumlarda ansible_distribution değişkenini kullanman gerekebilir:
---
- name: AlmaLinux ve Rocky Linux için temel yapılandırma
hosts: all
become: yes
tasks:
- name: Dağıtım bilgisini göster
debug:
msg: "{{ ansible_distribution }} {{ ansible_distribution_version }}"
- name: EPEL repo yükle (her ikisi için)
dnf:
name: epel-release
state: present
when: ansible_os_family == "RedHat"
- name: AlmaLinux'a özel görev
dnf:
name: almalinux-logos
state: present
when: ansible_distribution == "AlmaLinux"
- name: Rocky Linux'a özel görev
dnf:
name: rocky-logos
state: present
when: ansible_distribution == "Rocky"
- name: Ortak paketleri yükle
dnf:
name:
- vim
- htop
- curl
- wget
state: present
Hangisini Seçmeliyim?
Bu sorunun tek bir doğru cevabı yok, ama senin durumuna göre bazı öneriler sunabilirim.
AlmaLinux’u tercih et eğer:
- Kurumsal ortamlarda ticari destek opsiyonu istiyorsan (TuxCare)
- Hızlı güvenlik yamaları kritik öneme sahipse
- CloudLinux tabanlı hosting altyapısı kullanıyorsan
- Daha konservatif ve şirket destekli bir yapı istiyorsan
- Live kernel patching (livepatch) ihtiyacın varsa
Rocky Linux’u tercih et eğer:
- Saf topluluk odaklı, organik bir projeyi desteklemek istiyorsan
- CentOS’un ruhuna en yakın dağıtımı arıyorsan
- RHEL birebir uyumluluğu önceliğindeyse
- Güçlü bir topluluk kültürüne değer veriyorsan
İkisi de kabul edilebilir eğer:
- Genel amaçlı web sunucuları kuruyorsan
- Veritabanı sunucusu yönetiyorsan
- Containerization altyapısı kuruyorsan
- Orta ölçekli işletme ortamlarında çalışıyorsan
Monitoring ve Performans Karşılaştırması
Her iki dağıtımda da standart RHEL araçları çalışıyor. Performans açısından anlamlı bir fark yok, ancak benchmark için şu araçları kullanabilirsin:
# sysbench CPU testi
dnf install -y sysbench
sysbench cpu --cpu-max-prime=20000 run
# Disk I/O testi
sysbench fileio --file-total-size=10G prepare
sysbench fileio --file-total-size=10G --file-test-mode=rndrw run
sysbench fileio --file-total-size=10G cleanup
# Memory bant genişliği testi
sysbench memory --memory-block-size=1K --memory-total-size=10G run
Yüzlerce sunucu üzerinde yaptığım testlerde her iki dağıtım arasında anlamlı bir performans farkı görmedim. Aynı donanımda, aynı workload altında sonuçlar pratikte identik çıkıyor.
Güncelleme Döngüleri ve Yaşam Döngüsü
Her iki dağıtım da RHEL’in yaşam döngüsünü takip ediyor:
- RHEL/AlmaLinux/Rocky Linux 8: 2029 Mayıs’a kadar destek
- RHEL/AlmaLinux/Rocky Linux 9: 2032’ye kadar tam destek
# Yaşam döngüsü bilgisi için
cat /etc/os-release
# End of life kontrolü için
dnf install -y subscription-manager
# (subscription-manager olmadan da os-release yeterli bilgi verir)
# Sistem yaşını kontrol et
rpm -qi basesystem | grep "Install Date"
AlmaLinux, RHEL 6 ve 7 için extended lifecycle support seçeneği sunuyor (ücretli TuxCare aracılığıyla). Rocky Linux’ta bu opsiyon henüz o kadar olgun değil.
Sonuç
İki dağıtım arasındaki rekabet aslında sektör için son derece sağlıklı. Hem AlmaLinux hem de Rocky Linux, CentOS’un bıraktığı boşluğu gerçek anlamda doldurdu ve her ikisi de üretim ortamlarında güvenle kullanılabilir seviyede.
Benim kişisel tercihim? AlmaLinux kurumsal ortamlar için biraz daha olgun ve kurumsal desteği var. Rocky Linux ise topluluk ruhu ve CentOS nostaljisi arayanlar için daha iyi bir seçim. Ancak şunu net söyleyeyim: Eğer ikisi arasında uzun süre kararsız kalıyorsan, bu süreyi başka şeylere harca. Her ikisi de seni memnun edecek.
Önemli olan şu: Test ortamında dene, yük testleri yap, ekibinin alışkanlıklarını göz önünde bulundur ve bir karar ver. Seçtiğin dağıtımla sorun yaşarsan migrate etmek düşündüğünden çok daha kolay.
Son bir not: Her iki dağıtımı da destekleyen açık kaynak topluluklerine katkıda bulunmayı unutma. Bug report, dokümantasyon katkısı veya forum’da başkalarına yardım etmek, bu projelerin yaşamasını sağlıyor.