Deb, Yum vb paket yöneticilerinde kurulan yazılıma ilişkin bağımlılıklar cihazda kurulu değil ise yazılımla beraber cihaza kurulur. Bu tür sistemlerde yaşanan en büyük problem aynı bağımlılığı kullanan yazılımlarda yaşanır. Çünkü yazılımların ihtiyaç duyduğu bağımlılıklara ilişkin versiyon farkları uygulamalarda çeşitli problemelere neden olabilmektedir.
Snap paketleri, Linux platformu kullanıcıları için evrensel paketlerdir. Aynı uygulama, Snap paketi ile farklı platformlarda herhangi bir kod değişikliği yapmadan kullanılabilir.
Snap isimli bu sistemde ise bağımlılıklar, uygulamaya özgü bir paket olarak ele alınmıştır. Yazılımın ihtiyaç duyduğu tüm kütüphaneler aynı paket içerisinde yüklenerek sadece o program ile ilişkilendirilir. Program kaldırıldığında ilişkilendirilen bağımlılıklarda onunla beraber kaldırılır. Bu şekilde yazılımın bağımlılıklar sebebiyle çalıştırılamama sorunu ortadan kaldırılmış olur. Benzer durum program güncellemeleri için de geçerlidir.
Bu paket yöneticisinin web sayfasına https://snapcraft.io/ adresinden ulaşabilirsiniz. Güncel birçok program bu sistem içerisinde yerine almaya başlamıştır. Snap yazılımına ait ayarlar yazılmın belirlemiş olduğu lokasyonlar içerisinde tutulmaktadır (kullanıcı erişimli veya erişimsiz)
Cihaza Snap kurmak için
Yazılım Kurmak İçin
Snap ile program kurmak oldukça basittir. Mesela Eclipse yazılımını kurmak için
https://snapcraft.io/eclipse
Bilgisayara kurulu olan snap yazılımlarını listelemek için
Snap kataloğu içerisinde arama yapmak için
Snapten program kaldırmak için
sudo snap remove eclipse –revision=”384″
Snap içerisinde yapılan değişiklikleri görmek için
Snap programlarını güncellemek için
Snap güncellemesi sonrası önceki yüklemeler otomatik olarak kaldırılamamaktadır. list sorgusu sonucunda vermiş olduğumuz çıktıda yer alan Notes alanında disabled ibaresinin yer alıyor olması önceki versiyonun pasif edildiği anlamına gelmektedir (kendiniz pasif etmediyseniz)
!/bin/sh
set -eu
snap list –all | awk ‘/disabled/{print , }’ |
while read snapname revision; do
snap remove “$snapname” –revision=”$revision”
done