Linux: Snap, Flatpak, AppImage… Aralarındaki Farklar ve Hangisi Sizin Kullanımınız İçin Daha Uygun?

Linux
Spread the love

Uygulamaları Snap, Flatpak ve AppImage olmak üzere üç farklı yoldan Linux dağıtımınıza yükleyebilirsiniz. Hangisinin kullanımınız için daha uygun olduğuna bakalım.

Son yıllarda, Linux sistemlerinde üç tane farklı, dağıtımdan bağımsız paket formatı yaygın kullanım alanı bulmaya başladı. Bu yeni paket biçimleri Snap, Flatpak ve AppImage’dır.

Paket yöneticileri, geliştiricilerin Linux sistemlerindeki uygulamaları paketlemesini, dağıtmasını, yüklemesini ve bakımını yapmasını sağlar. Dağıtımdan bağımsız paket yöneticileri ise, platforma bağlı olan “.deb” ve “.rpm” gibi geleneksel paket yöneticilerinden farklıdır.

Dağıtımdan Bağımsız Paket Biçimleri ve Geleneksel Paket Biçimleri

Geleneksel paket biçimlerinden farklı olarak, dağıtımdan bağımsız paket biçimleri, uygulamaları tek bir paket olarak yüklemek ve çalıştırmak için gerekli tüm bağımlılıkları bir araya getirir. Bu nedenle, bu paket biçimleri tarafından dağıtılan herhangi bir yazılım, söz konusu paket biçiminin destekleyen herhangi bir Linux sisteminde çalışır.

Geleneksel paket yöneticileri, belirli bir platform için oluşturulmuş uygulamaları barındırır ve kullanıcıların(veya paket yöneticisinin kendisinin) paketin sistem üzerinde çalışması için gerekli bağımlılıkları da yüklemeleri gerekir. Bu, geleneksel paket yöneticileri için önemli bir dezavantaj olarak görünebilir, ancak dağıtım bağımlı paket yöneticileri için dikkat edilmesi gereken bir husus vardır…

Bir geliştirici, çalışmalarını dağıtmak için dağıtımdan bağımsız paket yöneticilerini kullandığında, bağımlılıkların en son güvenlik önlemleriyle birlikte güncel olmasını sağlamaktan tam olarak sorumludur. Aksi taktirde, paket, sistem için bir güvenlik tehdidi oluşturur. Bunun tersine, geleneksel yazılım paketleri, geliştiricileri tarafından korunur ve bu geliştiriciler bağımlılıkların en son güvenlik güncellemeleriyle güncellenmesini sağlar.

Snap, Flatpak, AppImage

Bu makalede, dağıtımdan bağımsız üç paket biçimini ele alarak – Snap, Flatpak ve AppImage- farklılıklarına değineceğiz.

1. Snap

Snap, Canonical tarafından geliştirilen ve ilk olarak 2014 yılında piyasaya sürülen, dağıtımdan bağımsız bir paket biçimidir.

Bu paket biçiminin geliştirilmesinin arkasındaki temel amaç, yazılım paketlerinin çok çeşitli cihazlarda çalışabilmesi için tek bir birleşik biçim oluşturmaktı.

Snap ayrıca, kullanıcıların yazılım paketlerini bulabileceği ve yükleyebileceği bir çevrimiçi uygulama mağazası olan Snapcraft’ı da sunmaktadır. Kullanıcıların mevcut tüm paketleri bulabileceği büyük bir havuz oluşturur. Snapcraft, Canonical ekibi tarafından kontrol edilip korunur.

Snapcraft, uygulamanın kullanıcıları dışında  uygulama geliştiricilerine Snap paketleri yayınlama konusunda yönergeler sağlar. Ek olarak, Snapcraft hem açık hem de kapalı kaynak yazılımlarla birlikte gelir.

2. Flatpak

Snap gibi Flatpak da Linux sistemlerinde genel uygulama dağıtımını ve kullanımını basitleştirmeyi amaçlayan, dağıtımdan bağımsız bir başka paket biçimidir. Daha önce xdg-app olarak bilinen çerçeve, kök ayrıcalıkları gerektirmeden veya sistem için bir güvenlik tehdidi oluşturmadan uygulamaları güvenli bir sanal sanal alanda çalıştırma kavramına dayanıyordu.

Flatpak 2015 yılında Red Hat, Endless Computers ve Collabora tarafından LGPL lisansıyla resmi olarak piyasaya sürüldü.

Snap uygulamasının Snapcraft mağazası gibi, Flatpak da kullanıcıların tüm Flatpak paketlerini bulabileceği ve kurabileceği Flathub uygulama mağazasına sahiptir.

Yazılım paketlerini yüklemek ve güncellemek için, Canonical tarafından kontrol edilen tek bir depo olan Snap’in aksine, Flatpak çoklu depo kullanımını destekler.

3. AppImage

AppImage, 2004 yılında ilk kez Kik adıyla yayınlanan bir başka yaygın dağıtımdan bağımsız paket biçimidir. Taşınabilir bir paket biçimi olarak kabul edilen “Bir uygulama = bir dosya” kavramını izler.Bu da tek bir uygulama ve uygulamanın çalışması için gereken her şeyi içeren düzenli bir bağımsız dosya demektir. Uygulamayı çalıştırmak için kullanıcının yalnızca çalıştırılabilir yapması ve çalıştırmak için üzerine çift tıklaması yeterlidir.

Kullanıcılar paketleri AppImage web sitesinde bulabilirler. Burada dikkat edilmesi gereken diğer bir özellik, Snap ve Flatpak gibi paket güncellemelerini yüklemek için havuz kullanmamasıdır. Bunun yerine, AppImage paketi güncelleştirmelerin nasıl yükleneceği hakkında ek bilgilerle birlikte gelir. Bu güncelleme bilgileri olmayan paketler AppImageUpdate gibi bir araçla güncellenebilir.

İzin Kontrolleri

Çoğu uygulamanın, sorunsuz çalışması için farklı sistem özelliklerine erişmesi gerekir. Bu paket biçimlerinden bazıları kullanıcılara bu izinlerin bazılarını denetlemek için basit bir yol sağlar.

Snap, kullanıcı tarafından denetlenen izinler için hem grafik hem de komut satırı arabirimi sağlar. Snap ile uygulama izinlerini yönetmek için Ubuntu Yazılımını kullanabilirsiniz.

Flatpak ta kullanıcılara bir izin kontrol arabirimi sağlar. Flatpak uygulama izinlerini grafik olarak yönetmek için GNOME Yazılımını kullanabilirsiniz.

AppImage şu an için kullanıcı izni kontrolleri sunmamaktadır. Ancak, geliştiriciler bu özelliğin gelecekte uygulanabileceği konusunda ışık yakmışlardır.

Uygulama Taşınabilirliği

Bir AppImage uygulaması, Windows sistemindeki çalıştırılabilir ‘.exe.’ dosyasına benzer. Çalışması için gereken her şeyi içerir. Uygulamayı çalıştırmak için kullanıcının yalnızca çalıştırılabilir yapması ve başlatmak için üzerine çift tıklaması gerekir.

Snap ve Flatpak uygulamalarında durum böyle değil. Ancak, uygulamanın kendisi ve bağımlılıkları paketlenerek taşınabilir hale getirilebilir. Tüm bu süreç AppImage kadar kolay değildir ve birden fazla Terminal komutunun çalıştırılmasını gerektirir.

Sonuç

Yukarıda ele aldığımız, dağıtımdan bağımsız üç paket biçiminin her birinin avantaj ve dezavantajları vardır elbette. Farklı paket biçimlerindeki yazılımların keyfini çıkarabildiğiniz sürece belirli bir paket biçimine bağlı kalmanız gerekmez.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir