Komut satırı paket yöneticilerinin zorlu öğrenme eğrisinden bunaldınız mı? Snap ve Snap Store’u bugün kullanmaya başlayın.
Paket yöneticisi, bir bilgisayara paketlerin/programların yüklenmesini, güncellenmesini, kaldırılmasını ve yapılandırılmasını kolaylaştıran bir dizi entegre hizmettir.
Özellikle Linux işletim sistemi hakkında konuşursak, APT, YUM, RPM ve Pacman gibi çok çeşitli paket yöneticileri arasından seçim yapabilirsiniz. Bu paket yöneticilerinin her birinin, onları diğerinden ayıran bazı farklı özellikleri vardır.
Ancak nispeten yeni bir paket yöneticisi olan Snap, geleneksel paket yöneticilerine uygun bir alternatif olarak ortaya çıktı. Snap’i, avantajlarını ve dezavantajlarını ve Linux’ta nasıl kurulacağını ve kullanılacağını inceleyelim.
Snap Nedir?
Snap, Ubuntu’nun yapımcıları Canonical tarafından Linux platformu için geliştirilen, platformlar arası bir paketleme ve dağıtım sistemidir. Ubuntu, Debian, Arch Linux, Fedora, CentOS ve Manjaro dahil olmak üzere çoğu büyük Linux dağıtımıyla uyumludur.
Snap üç temel bileşenden oluşur:
1. Snaps
Tıpkı diğer paket yöneticileri gibi Snap de snaps adı verilen paketler içerir. Bu paketler, geleneksel paket yöneticilerindeki benzerlerinden farklı olarak bağımlılık içermez ve kurulumu kolaydır.
Snap’ler, esas olarak SquashFS formatını kullanan ve uygulama, bağımlı kütüphaneler ve ek meta veriler de dahil olmak üzere tüm paket modülünü içeren sıkıştırılmış bir dosya sistemi olan .snap uzantısıyla sona erer.
2. Snapd
Snapd (veya snap arka plan programı), sisteminizdeki uygulamalar için güvenli bir sanal alan oluşturmak amacıyla snap meta verilerini kullanır. Bu bir arka plan programı olduğundan, snap ortamını koruma ve yönetme görevinin tamamı arka planda gerçekleşir.
3. Snap Store
Snap’ler Snap Store’da bulunur ve tıpkı diğer paket yöneticilerinde yaptığınız gibi bunları keşfedip indirebilirsiniz. Ek olarak, geleneksel paket yöneticileriyle mümkün olmayan, kendi ek paketlerinizi doğrudan Snap Store’da yayınlama seçeneğine de sahip olursunuz.
Snap’in bu unsurların yanı sıra kanal olarak bilinen başka bir temel bileşeni daha vardır. Bir kanal, sisteminizde hangi snap sürümünün yüklü olduğunu ve güncellemeler için izlendiğini tanımlamaktan sorumludur. Sonuç olarak, snaps’leri yüklediğinizde veya güncellediğinizde, bu işlemlerin her biri için ilerlemek istediğiniz kanalı belirleme olanağına sahip olursunuz.
Özetlemek gerekirse:
- Snap: Hem uygulama paketi formatına hem de komut satırı arayüzüne atıfta bulunmak için kullanılır.
- Snapd: Snaplerin yönetilmesine ve bakımına yardımcı olan bir Snap arka plan programı.
- Snap Store: Tüm enstantanelere ev sahipliği yapın; kendi anlık görüntülerinizi yüklemenize ve yeni anlık görüntülerini keşfedip yüklemenize olanak tanır.
- Snapcraft: Kendi snap’lerinizi oluşturmanıza yardımcı olan bir çerçeve.
Snap: İyi ve kötü
Canonical, Snap’i duyurduğundan beri, Linux topluluğunda Snap’in Linux’ta paket dağıtımını iyileştirmek için doğru yaklaşım olup olmadığı konusunda bir heyecan var. Bu durum iki karşıt kampın oluşmasına yol açtı: Biri Snap’i destekliyor, diğeri ise uzun vadede onun yaklaşımını eleştiriyor.
İşte Snap ile ilgili iyi ve kötü olan her şeyin bir dökümü.
Snap Kullanmanın Avantajları
- Snap’ler, bir programa anında erişimi kolaylaştıran bağımlılıklarla (kütüphaneler) birlikte gelir; çünkü artık sisteminizde çalışmasını sağlamak için eksik bağımlılıkları manuel olarak yüklemeniz gerekmez.
- Her snap, diğer sistem paketleriyle etkileşimi önlemek için kendi konteynerli sanal alanında çalışır. Sonuç olarak, bir snap’i kaldırdığınızda sistem, diğer paketleri etkilemeden bağımlılıklar da dahil olmak üzere tüm verilerini kaldırır. Bir paketin diğerinin bilgilerine erişememesi nedeniyle bunun aynı zamanda daha güvenli bir ortam sunduğunu söylemeye gerek yok.
- Güncellemeleri anlık olarak belirlenen aralıklarla otomatik olarak yakalar. Bu nedenle sisteminizde her zaman bir programın en son sürümünü çalıştırırsınız.
- Snap, geliştiricilerin yazılımlarını doğrudan kullanıcılara dağıtmalarını kolaylaştırır, böylece Linux dağıtımlarının bunları kullanıma sunmasını beklemek zorunda kalmazlar.
- Önceki noktaya ek olarak, geliştiricileri yazılımlarının paketlenmesi ve dağıtılmasından sorumlu tutmanın bir başka avantajı da, gerekli bağımlılıklarla birlikte geldiğinden dağıtıma özel paketler oluşturmak zorunda olmamalarıdır.
Snap’in Dezavantajları
- Snap’ler bağımlılıklarla birlikte geldiğinden boyutları daha büyüktür ve diğer paket yöneticilerindeki benzerlerine göre daha fazla disk alanı kaplarlar.
- Paketlenmiş bağımlılıkların bir sonucu olarak, anlık görüntüler sıkıştırılmış dosya sistemi görüntüleri olarak dağıtılır ve kurulumdan önce bunları bağlamanız gerekir. Bu nedenle snap’lerin çalıştırılması geleneksel paketlere göre daha yavaştır.
- Snap, geliştiricilerin anlık görüntülerini doğrudan kullanıcılara dağıtmasına olanak tanısa da dağıtım hattı, onların Canonical’da bir hesap oluşturmasını ve anlık görüntülerini bu hesapta barındırmasını gerektirir. Bu, açık kaynak metodolojisinin gerçek doğasına aykırıdır çünkü yazılım hala açık kaynak olmasına rağmen paket yönetim sistemi bir kuruluş tarafından kontrol edilmektedir.
- Geliştiricilerin paketleri dağıtmasına izin vermenin bir diğer dezavantajı, paketlerin topluluk tarafından sıkı kontrollerden ve incelemelerden geçmemesi ve bu nedenle, birkaç yıl önce görüldüğü gibi, kötü amaçlı yazılım içerme riskini taşımasıdır.
- Snap’in arka ucunun hala kapalı kaynak olması ve Canonical tarafından kontrol edilmesi nedeniyle, birçok büyük Linux dağıtımı, Snap’i sistemlerinde varsayılan paket yöneticisi olarak kullanma fikrine katılmıyor.
Kötü amaçlı yazılım riskiyle ilgili olarak Snap, artık kullanıcı tarafından yüklenen paketleri Snap Store’da dağıtılmadan önce kötü amaçlı kodlara karşı taramak için otomatik kötü amaçlı yazılım testini kullanıyor.
Linux’ta snapd nasıl kurulur
Snapd, Snap’in önemli bir bileşeni olduğundan, sisteminize yüklemeniz gereken ilk şeydir. Aşağıdaki Linux dağıtımlarından herhangi birini çalıştırıyorsanız, snapd zaten sisteminize önceden yüklenmiştir: KDE Neon, Manjaro, Ubuntu (16.04/4 LTS ve 20.04 LTS), Zorin OS.
Başka bir Linux dağıtımı durumunda, snapd’i manuel olarak yüklemeniz gerekecektir.
Debian/Ubuntu’da:
sudo apt update
sudo apt install snapd
Snapd’ı CentOS ve diğer RHEL tabanlı dağıtımlara yüklemek kolaydır:
yum install epel-release
yum install snapd
Snapd’ı Fedora’ya yüklemek için:
sudo dnf install snapd
Arch Linux’ta:
git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -si
Snapd’i Manjaro Linux’a yüklemek için:
sudo pacman -S snapd
Kurulduktan sonra, Snap’i kullanmadan önce (bazı) Linux dağıtımlarında Snap iletişimlerini yönetmekten sorumlu olan systemd birimini etkinleştirmeniz gerekir.
Ubuntu ve türevleri dışında bir Linux dağıtımı kullanıyorsanız snapd systemd birimini etkinleştirmek için aşağıdaki komutu çalıştırın:
sudo systemctl enable --now snapd.socket
Son olarak sisteminizi şu şekilde yeniden başlatın:
sudo reboot
Linux’ta Snap Nasıl Kullanılır
Snap’i kullanmak diğer paket yöneticilerini kullanmaya oldukça benzer. Önceki adımda sisteminize snapd yüklediğiniz için artık snap aracına erişebilir ve Snap Store’dan snap’lerle kolayca etkileşime geçebilirsiniz.
Snap Paketi Bulma
Snap ile Snap Store’u keşfedebilir ve farklı kategorilerdeki paketleri bulabilirsiniz. Dolayısıyla, belirli bir kategorideki anlık görüntüleri aramak istiyorsanız aşağıdaki komut sözdizimini kullanın:
snap find package_category
Örneğin:
snap find development
Bir paketle karşılaşırsanız ve onun hakkında daha fazla bilgi edinmek isterseniz, varsayılan komutla birlikte info yöntemini kullanın.
snap info package_name
For example, to extract information about the GIMP snap:
snap info gimp
Snap Paket Kurulumu
Son olarak, gereksinimlerinizi karşılayan bir snap bulduğunuzda, onu aşağıdakileri çalıştırarak yükleyebilirsiniz:
sudo snap install package_name
Kurulduktan sonra programı Linux dağıtımınızın Uygulamalar menüsünde bulabilirsiniz. Daha sonra doğrudan menüden veya adını girerek terminal aracılığıyla çalıştırabilirsiniz.
Yüklü Snap Paketlerini Listeleme
Sisteminizde kurulu tüm snaplerin bir listesini almak için:
snap list
Bir Snap’in Sürüm Bilgisini Görüntüleme
Bir snap’in geçerli sürümünü öğrenmek için şunu çalıştırın:
snap list package_name
Snap Paketlerini Güncelleme
Snap, sisteminizde yüklü olan paketleri otomatik olarak günceller. Bunu kolaylaştırmak için snapd, varsayılan olarak güncellemeleri günde dört kez kontrol edecek şekilde ayarlanmıştır. Ancak isterseniz bu yenileme sıklığını tercihinize göre değiştirebilirsiniz.
Ayrıca gerekirse aşağıdakileri çalıştırarak anında yenileme gerçekleştirebilirsiniz:
snap refresh
Benzer şekilde, bir anlık güncelleme olup olmadığını aşağıdakilerle de kontrol edebilirsiniz:
sudo snap refresh package_name
Bunu yaptığınızda Snap, snap tarafından takip edilen kanalı daha yeni bir sürüm için kontrol eder. Bir güncelleme varsa otomatik olarak indirir ve yükler.
Snap’in Daha Önce Kullanılan Sürümüne Dönme
Bir snap’i güncelledikten sonra sorun yaşıyorsanız aşağıdakileri çalıştırarak önceki sürümüne geri dönebilirsiniz:
sudo snap revert package_name
Snap Paketini Devre Dışı Bırakma ve Etkinleştirme
Snap kullanmadığınız ancak gelecekte ihtiyacınız olabileceği zamanlar için, onu geçici olarak devre dışı bırakabilir ve gerektiğinde tekrar açabilirsiniz. Bu şekilde, snap’i kaldırıp yeniden yüklemek gibi sıkıcı bir süreçten geçmek zorunda kalmazsınız.
Bir snap paketini devre dışı bırakmak için şunu yazın:
sudo snap disable package_name
Etkinleştirmek istediğinizde şunu çalıştırmanız yeterlidir:
sudo snap enable package_name
Bir Snap Paketinin Kaldırılması
Son olarak, sisteminizde muhtemelen gelecekte ihtiyaç duymayacağınız, kullanılmayan snap’leri kaldırmak için:
sudo snap remove package_name
Yazının orijinalini buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.