Bilmeyenler için yazmak istedim.
Linux'de uygulama yükleme mantığı Windows gibi değildir. Windows'ta exe içinde uygulamanın çalışması için gerekli tüm dosya ve DLL kütüphaneleri bulunur. Her exe ile belki de aynı DLL kütüphaneleri defalarca kurulur.
Linux'de ise öncelikle tek dosya formatı yoktur. Her Linux dağıtımı farklı paket formatları kullanır. APK, deb, snap, pkg, RPM, pisi gibi bir sürü dosya formatı vardır. Modern ve geleneksel formatlar olarak ikiye ayrılırlar. Özünde hepsi uygulama yüklemek için exe gibi çalışır.
KeçiOS'da pkg kullanır.
Modern olanlar: Snap, AppImage, flatpak.
Geleneksel olanlar: Yukarıdakiler haricidekiler.
Modern olanlar aynı exe gibi program için gerekli tüm dosyaları her seferinde sisteme exe gibi defalarca kurar.
Geleneksel olanlar ise, programı kurarken, program için gerekli dosya veya kütüphane sistemde var mı diye kontrol eder. Varsa tekrar kurmaz. Bu verimlilik açısından iyi ancak program daha eski bir kütüphaneye ihtiyaç duyduğunda, kütüphane güncellemelerinde eski özellikleri kaldırdığında, uygulama kaldırılırken diğer programların ihtiyaç duyacağı kütüphanenin kaldırılması durumu gibi sebeplerle çakışmalar yaşanır ve sistem hata verir veya bazı uygulamalar çalışmaz.
Bakınız:
Dependency hell nedir?
Linux'e hoş geldiniz, lütfen sinirlerinize hakim olunuz.