Linux'ta Snap Paketleriyle Nasıl Çalışılır
Yayınlanan: 2022-01-29 Linux yazılım paketlerini snap
ile kurduğunuzda, bağımlılık cehennemine ve diğer çalışan uygulamaları kırmaya veda edebilirsiniz. Snap paketleri başlangıçta Ubuntu için tasarlandı, ancak şimdi çeşitli Linux dağıtımlarında mevcutlar.
Snap Paketleri Nelerdir?
Geçmişte, Linux'a uygulama yüklemek, potansiyel olarak sinir bozucu bir deneyimdi. Yalnızca belirli bir kitaplığı veya başka bir bağımlılığın eksik veya eski olduğunu bulmak için bir şey yüklersiniz. Ardından, eksik kaynağı bulup yüklersiniz, yalnızca değiştirdiğiniz kitaplığın sürümüne bağlı başka bir uygulama bulmak için. Birini düzelt, birini kır, tekrar et.
Bu, apt, dnf ve pacman gibi daha iyi paket yönetim sistemleriyle iyileştirildi. Ancak, aynı uygulamanın farklı sürümlerinin kurulu olmasına ihtiyacınız varsa yine de bir mücadele ile karşı karşıya kalırsınız. Veya bir kitaplığın belirli, ancak farklı sürümlerine bağlı oldukları için çakışan iki uygulama kullanıyorsanız.
Bu sorunlara bir çözüm, uygulama paketleme ve dağıtım sistemleridir. Snappy, bunların en popülerlerinden biridir. Ubuntu Touch girişimine geri dönen Click adlı bir paketleme ve dağıtım sistemine dayanmaktadır. AppImage ve FlatPack, karşılaşmış olabileceğiniz diğerleridir.
Bu sistemler, uygulamayı herhangi bir bağımlılık ve diğer gereksinimlerle birlikte tek bir sıkıştırılmış dosyada kapsar. Uygulama daha sonra bir tür mini kapsayıcıda çalışır. Korumalı alan ve diğer uygulamalardan ayrıdır. Uygulamanın paketlendiği veya gerektirdiği kitaplıklar ve diğer kaynaklar yalnızca uygulama tarafından kullanılabilir.
Geleneksel anlamda kurulmazlar, bu nedenle aynı kaynakların farklı sürümlerini gerektiren diğer uygulamalarda herhangi bir soruna neden olmazlar. Hatta her uygulama kendi sanal alanında olduğundan, çakışan kitaplık sürümlerine ihtiyaç duyan uygulamaları yükleyebilir ve çalıştırabilirsiniz.
Olağan şekilde kurulmamışlarsa, nasıl işlenirler? Tek paket dosyası indirilir, sıkıştırılır ve bir SquashFS
sanal dosya sistemi olarak monte edilir. Daha sonra size sanal bir ortam olarak sunulur. Bütün bunlar perde arkasında gerçekleşir. Tek bileceğiniz, bir uygulama yüklediğiniz ve artık ona erişiminiz olduğu.
Elbette, her paket dosyası uygulamanın ihtiyaç duyduğu her kaynağı içermesi gerektiğinden, paket dosyaları büyük olabilir. MySQL veya Apache gibi normalde yalnızca bir kez kuracağınız bir kaynağı çoğaltmak da kolaydır. İki farklı snap
uygulaması aynı kaynakları gerektiriyorsa, her biri kendi kopyasını getirir.
Bu, kurulumun basitliği ve kaynak çatışması baş ağrılarının ortadan kaldırılması için yapılan bir ödünleşimdir.
snapd yükleme
Snappy, Ubuntu 16.04 ile tanıtıldı, bu nedenle bu sürümü veya daha yenisini kullanıyorsanız, zaten hazırsınız. Bizim makinemizde Snappy, Manjaro 18.04 üzerine kurulmuştu ama biz onu Fedora 31 üzerine kurmak zorunda kaldık.
snap
, hem paket dosyalarının adı hem de bunlarla etkileşim kurmak için kullandığınız komuttur. Sahne arkasında, snapd
arka plan programı aynı zamanda bilgisayarınızda Snappy yoksa yüklemeniz gereken paketin adıdır.
snapd
kurmak için aşağıdaki komutu yazın:
sudo dnf snapd'yi yükle
Manjaro'ya yüklemeniz gerekiyorsa, şu komutları kullanın:
sudo pacman -Sy snapd
sudo systemctl etkinleştir --now snapd.socket
snap
istemcisinin, snapd
arka plan programının ve yazılım seri numarasının sürümünü görmek için snap version
komutunu kullanabilirsiniz. Linux dağıtımınızın adı ve sürümü ve çekirdek sürümü de sizin için görüntülenecektir.
Aşağıdakileri yazın:
ek sürüm
Snap Paketlerini Yükleme
Bir snap
paket yüklemek oldukça basit bir işlemdir. snap
paketlerini aramak için snap
kullanabilir ve ardından istediğinizi yükleyebilirsiniz.
Gimp görüntü düzenleyicisini aramak ve yüklemek için aşağıdakileri yazıyoruz:
hızlı bul gimp
snap
, "gimp" arama ipucuyla eşleşmeleri arar ve bulgularını döndürür. Arama terimiyle eşleşen veya ondan bahseden her şeyi bulur.
Paketlerden birini kurmak için, aşağıda gösterildiği gibi Name
sütunundaki değeri kullanırız:
sudo snap yükleme gimp
İndirirken, tamamlanan yüzde rakamı yükselir ve terminal penceresinin solunda bir ilerleme çubuğu sürünür. Kurulum tamamlandığında, paketin kurulduğunu bildiren bir mesaj (aşağıda gösterildiği gibi) görünür.
Linux bilgisayarınızda yapılandırılmış farklı dosya sistemlerinin kapasitesini ve kullanımını kontrol etmek için df
komutunu kullanabilirsiniz. grep
komutuna aktarırsak ve "gimp" için arama yaparsak, yeni kurduğumuz paketin girişini izole ederiz.
Aşağıdakileri yazıyoruz:
df | grep gimp
Bu bize snap paketinin bir dosya sistemiymiş gibi monte edildiğini gösterir. Bağlama noktası, buradaki snap
dizindedir: /snap/gimp/252
. "252", gimp
bu sürümünün sürüm numarasıdır.
İLGİLİ: Linux'ta grep Komutu Nasıl Kullanılır
Dosya sistemi şu şekilde listelenir: /dev/loop18
. Döngü aygıt dosyaları, normal dosyaları blok aygıtlar olarak erişilebilir kılmak için kullanılır. Genellikle dosya sistemlerini disk görüntülerine monte etmek için kullanılırlar. Bu durumda, SquashFS
dosya sistemini snap
paketinin içine yerleştiriyorlar. “18”, bunun bu Linux bilgisayarda kullanımda olan 18. /dev/loop
aygıt dosyası olduğu anlamına gelir.
Bunu hızlıca kontrol etmek için df
komutunu kullanabiliriz. Çıktıyı yalnızca SquashFS
dosya türleriyle sınırlamak için – t
(tür) seçeneğini kullanacağız.
Aşağıdakileri yazıyoruz:
df -t kabaklar
Monte edilmiş SquashFS
dosya sistemleri listelenir. Bir /dev/loop
aygıt dosyası her birini işler ve bunlardan 18 tane vardır.
Her dosya sistemi, /snap
dizini içindeki bir dizine bağlanır. Ancak bu, bu bilgisayarda kurulu 18 farklı snap
paket olduğu anlamına gelmez. Bu bir Ubuntu dağıtımıdır, bu nedenle bazı snap
paketler kutudan çıkar çıkmaz kurulur ve biz de yeni bir tane kurduk.
Ek olarak, snapd
yüklediğinizde, diğer snap
paketlerin gereksinimlerini karşılamak için bazı çekirdek snap
paketler kurar.
Kurulu snap
paketlerini listelemek için aşağıda gösterildiği gibi snap list
komutunu kullanabiliriz:
ek liste
Çıktı biraz geniş olduğundan listelerin sonu aşağıda gösterilmiştir.
İşte tüm liste:
Ad Versiyon Rev Takibi Yayıncı Notları çekirdek 16-2.43.3 8689 kararlı kurallı* çekirdek core18 20200124 1668 kararlı kurallı* taban gimp 2.10.18 252 kararlı snapcrafter - gnome-3-26-1604 3.26.0.20191114 98 kararlı/... kurallı* - gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 kararlı kurallı* - gnome-hesap makinesi 3.34.1+git1.d34dc842 544 kararlı/... kurallı* - gnome-karakterler v3.32.1+git3.b9120df 399 kararlı/... kurallı* - gnome-logs 3.34.0 81 kararlı/... kurallı* - gnome-system-monitor 3.32.1-3-g0ea89b4922 127 kararlı/... kurallı* - gtk-common-themes 0.1-28-g1503258 1440 kararlı/... standart* -
Gördüğünüz gibi, kurulu 18 değil, 10 snap paketi var. Ancak bu 10 paket, 18 SquashFS
dosya sistemini ortaya çıkardı. Tablo sütunları oldukça açıklayıcıdır, ancak işte bazı açıklamalar:
- Name :
snap
paketin adı. - Sürüm :
snap
paketindeki yazılımın sürüm numarası. - Rev :
snap
paketinin revizyon numarası. - İzleme : Bu
snap
paketin güncellemeleri izlediği kanal. Dört tane var:- Kararlı: Varsayılan kanal. Adından da anlaşılacağı gibi, bu kanal en kararlı paketleri içerir.
- Aday: Bu kanal daha az kararlıdır, ancak buna çok yakındır çünkü kod tamamlamalı sürüm adayı düzeyinde yazılım içerir. Kararlı kanala taşınmadan önce son testlerden geçer.
- Beta: Bu kanal, geç geliştirme döngüsü kalitesindedir, ancak kararlı olması garanti edilmez.
- Edge: Erken yapı test kullanıcıları için. Bu kanalı önemli işler için veya bir üretim bilgisayarında kullanmamalısınız. Burada ejderhalar olsun!
- Yayımcı :
snap
paketi yayınlayan kişi, şirket veya kuruluş. Doğrulanmış bir yayıncıysa (ve terminal pencereniz Unicode'u destekliyorsa), yayıncı adının yanında yeşil bir onay işareti görürsünüz. Onay işareti gösteremezse, bir yıldız işareti (*
) görürsünüz. - Notlar : Herhangi bir yorum veya ek bilgi burada görünecektir.
Hızlı Kanallar
Bir snap
paketin açıklamasını almak için info
seçeneğini kullanabilirsiniz.
Bunu yapmak için aşağıdakileri yazıyoruz:
ek bilgi gtk-ortak-temalar
Paketin hangi kanalı takip ettiğini ve yazılımın sürümünü dört kanalın her birinde snap
paketlerde görebiliriz. Çoğu durumda, kararlı kanalda kalmalısınız.
Bir snap
paket, izlediği veya "izlediği" kanalda yazılımın daha yeni bir sürümünün bulunup bulunmadığını görmek için günde dört kez kontrol eder. Bir snap
paketin izlediği kanalı değiştirmek istiyorsanız, refresh
ve --channel
seçeneklerini kullanabilirsiniz.
Bunu yapmak için aşağıdakileri yazıyoruz:
sudo snap yenileme gtk-common-themes --channel=beta
Yazılımın daha yeni bir sürümü mevcut olsaydı, yüklenirdi, ancak burada durum böyle değildi. Ancak, snap
paket şimdi beta kanalını izliyor. Yeni bir beta sürümü yayınlanır yayınlanmaz otomatik olarak indirilir ve yükseltilir.
Bilgisayarınızda kurulu olan herhangi bir snap
paket için güncelleme olup olmadığını kontrol etmek için --list
seçeneğini kullanabilirsiniz.
Bunu yapmak için aşağıdakileri yazıyoruz:
sudo snap yenileme --liste
Bilgisayarınızdaki snap
paketlerin izlediği kanallardan herhangi birinin daha yeni yazılım sürümleri içerip içermediği size söylenecektir.
Yazılımın daha yeni bir sürümü mevcutsa, yenilemeyi manuel olarak zorlamak için aşağıda gösterildiği gibi refresh
seçeneğini kullanabilirsiniz:
sudo snap yenileme gtk-ortak-temalar
Snap Paketini Kaldırma
Bir snap
paketi kaldırmak için aşağıda gösterildiği gibi kaldır seçeneğini kullanabilirsiniz:
sudo snap gimp'i kaldır
Hızlı Hile Sayfası
Snap paketlerini kullanmak oldukça basittir, ancak size yardımcı olacak bazı komutların bir listesini derledik:
- Bir paketi aramak için:
snap find package_name
- Bir paketi kurmak için:
sudo snap install package_name
- Kurulu tüm paketleri görmek için:
snap list
- Tek bir paket hakkında bilgi almak için:
snap info package_name
- Bir paketin güncellemeler için izlediği kanalı değiştirmek için:
sudo snap refresh package_name --channel=channel_name
- Güncellemelerin kurulu herhangi bir paket için hazır olup olmadığını görmek için:
sudo snap refresh --list
- Bir paketi manuel olarak güncellemek için:
sudo snap refresh package_name
- Bir paketi kaldırmak için:
sudo snap remove package_name
Linux Komutları | ||
Dosyalar | tar · pv · kedi · tac · chmod · grep · diff · sed · ar · adam · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · birleştirme · jq · katlama · uniq · dergictl · kuyruk · stat · ls · fstab · yankı · daha az · chgrp · chown · rev · bak · diziler · tür · yeniden adlandır · zip · unzip · mount · umount · yükle · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · yama · dönüştürmek · rclone · parçalamak · srm | |
süreçler | takma ad · ekran · üst · güzel · renice · ilerleme · strace · systemd · tmux · chsh · geçmiş · at · toplu · ücretsiz · hangi · dmesg · chfn · usermod · ps · chroot · xargs · tty · pembemsi · lsof · vmstat · zaman aşımı · duvar · evet · öldür · uyku · sudo · su · zaman · groupadd · usermod · gruplar · lshw · kapatma · yeniden başlatma · durdurma · güç kapatma · passwd · lscpu · crontab · tarih · bg · fg | |
ağ | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · kazmak · parmak · nmap · ftp · curl · wget · kim · whoami · w · iptables · ssh-keygen · ufw |
İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar