Apa itu snap ?


Halo bertemu lagi setelah vakum hampir dua tahun lamanya, saya akan mencoba memulai lagi untuk menulis di blog ini. Kali ini saya akan mencoba membahas tentang snap. Apa itu snap? Snap adalah aplikasi paket manager mirip seperti apt. Secara fungsi sama yaitu sama sama aplikasi yang digunakan untuk mengelola aplikasi di dalam system (Ubuntu). Mengelola yang saya maksud ini adalah melakukan install uninstall aplikasi.  Lalu apa sih perbedaannya dengan apt? Snaps memungkinkan aplikasi yang diinstall tidak melibatkan dependency. 

Jadi ceritanya klo anda menginstall suatu aplikasi lewat apt, maka apt akan melihat apakah aplikasi yang akan diinstall memerlukan library (dependency) dari aplikasi lainnya, setelah mengumpulkan informasi tersebut, maka apt akan mengunduh berbagai library yang diperlukan dan menginstallnya berbarengan dengan aplikasi utama yang akan diinstall. 

Berikut contohnya:


Pada gambar di atas saya berusaha menginstall aplikasi apache2, maka apt akan melihat bahwa aplikasi apache2 membutuhkan dependency apache2-data, apache2-utils dan aplikasi ssl-cert yang harus diinstall ke dalam system. Sedangkan snap tidak begitu, snap memungkinkan aplikasi yang diinstall sudah sepaket, jadi klopun membutuhkan dependency ya sudah sebundle aplikasi tersebut terisolasi satu dengan aplikasi snap lainnya mirip konsep container pada Docker. 

Kelebihannya adalah, tidak akan ada bentrok dependency antara satu aplikasi dengan lainnya. Bentrok seperti apa? ya misalkan anda harus melakukan instalasi aplikasi tetapi aplikasi tersebut membutuhkan dependency dengan seri berbeda (misal versi 7) dari versi yang telah ada sebelumnya (misal versi 6), tetapi aplikasi lainnya masih membutuhkan dependency dengan versi yang lama (versi 6), pada akhirnya aplikasi yang membutuhkan versi 7 tidak dapat diinstall di dalam system. 

Ilustrasinya seperti ini:

Saya mau menginstall aplikasi xserver-org-input-all, aplikasi tersebut membutuhkan aplikasi gnome-control-center yang membutuhkan library libcheese-gtk23 versi minimal 3.4 dan lainnya. Hanya saja karena ada aplikasi yang sudah terinstall sebelumnya membutuhkan aplikasi libcheese-gtk23 versi dibawah 3.4, maka system menolak untuk mengupgrade library libcheese-gtk23 dan aplikasi xserver-xorg-input-all tidak bisa diinstall.

Itulah kenapa snap bisa menjadi solusi dari problem tersebut. Apakah hanya itu saja kelebihan snap? Tidak, ada beberapa kelebihan-kelebihan snap lainnya yang saya tahu, yaitu:

  • Otomatis terupdate, aplikasi yang diinstall menggunakan snap secara berkala akan diupdate otomatis tanpa kita melakukan update secara manual.
  • Kembali ke versi sebelumnya, dengan snap ini, kita bisa downgrade versi aplikasi yang kita install apabila dibutuhkan tanpa harus takut merusak aplikasi lainnya (dependency conflict).
  • Snap mempermudah developer untuk mendeliver aplikasi ke pengguna (lintas distro) tanpa harus menunggu distro linux untuk merilisnya ke dalam repository mereka.
  • Snap dapat sudah tersedia di berbagai distro terkenal seperti Ubuntu, OpenSuse, RedHat dll

Lalu bagaimana dengan kekurangannya?

  • Aplikasi snap lebih memakan space karena setiap aplikasi memiliki berbagai dependency nya sendiri dan tidak berbagi dependency satu dengan lainnya.
  • Aplikasi snap berjalan dibawah lisensi Canonical (perusahaan induk Ubuntu) mirip dengan Play Store di Android, jadi aplikasi yang dibuat harus ditaruh disana agar bisa di install ke dalam system yang menggunakan snap.
  • Proses instalasi lebih lambat dibanding installasi menggunakan paket manager bawaan distro seperti yum atau apt.
  • Tidak ada Community check pada aplikasi berbasis snap sehingga memungkinkan adanya resiko malware pada aplikasi-aplikasi yang dirilis oleh pengembang yang belum terkenal.

Untuk sementara hanya itu yang saya tahu kelebihan dan kekurangan paket aplikasi manager snap, apakah anda tertarik mencoba menggunakan snap? 


Comments