NixOS: Sistemi Bir Dosyadan Yönetmek (Nereden Nereye)
(Güncelleme - Haziran 2026: PC dünyasına gireli topu topu 14 ay oldu. Bu yazıyı ilk yazdığımda NixOS’un 25.11 sürümündeydim ve her şeyi tek bir configuration.nix dosyasında tutuyordum. Yakın zamanda 26.05 sürümüne Live ISO üzerinden sıfırdan ve temiz bir kurulumla geçiş yaptım. O ilk günkü “tek dosya”, artık modüler bir Flake yapısına evrildi.)
“Neden NixOS?” sorusunu kendime sorduğumda aldığım cevap şuydu: Sistemimin basit bir metin dosyası olması.
İlk başlarda sadece tek bir dosyaydı. O dosyayı kopyalayıp sakladığım sürece, sistemim bir daha asla kaybolmayacaktı.
Nasıl Çalışıyor?
Geleneksel Linux dağıtımlarında yazılım kurmak genellikle şöyledir:
sudo apt install firefox
# Ne zaman kuruldu? Hangi versiyon? Yanında neleri getirdi? Takip etmesi zordur.
NixOS’ta ise sadece listeye eklersiniz:
environment.systemPackages = with pkgs; [
firefox
git
neovim
];
Bu kodu git commit ettiğimde, o günkü sistem yapılandırmamın bir kopyasını almış oluyorum. Elbette işin mutfağında sadece konfigürasyon dosyası yetmiyor; flake.lock dosyasını da git’e eklediğimde, tüm paketlerin tam sürümleri (hash’leri) de kilitlenmiş oluyor. Böylece sistem gerçekten %100 reproducible (tekrarlanabilir) hale geliyor.
Öğrenme Süreci ve 26.05’e Geçiş
Bugün, o “tek dosya” devrini kendi çapımda aştım. Sistemi artık bir Flake (flake.nix) üzerinden parçalara bölerek yönetiyorum. Hatta yakın zamanda 26.05 sürümüne geçerken işleri biraz daha zorlaştırıp sıfırdan bir kurulum denedim.
Zor mu? Kesinlikle. Nix’in çok dik bir öğrenme eğrisi var. Ancak bozup yapmayı, sürekli yeni şeyler öğrenmeyi seven benim gibi biri için bu süreç inanılmaz keyifli. Hala her gün yeni bir şeyler öğreniyorum ve sanırım bu işin en güzel tarafı da bu.