Linux'ta Snap Paketleriyle Nasıl Çalışılır

Yayınlanan: 2022-01-29
Ubuntu

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.

Reklamcılık

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 

Reklamcılık

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 

Reklamcılık

İ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.

Reklamcılık

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 

Reklamcılık

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.

Reklamcılık

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

İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar