Spôsoby platby Abuse

Ako vytvoriť balík Snap Ubuntu 16

11.06.2021, 19:26

Snap je technológia vyvinutá spoločnosťou Canonical na uľahčenie inštalácie softvéru v distribúcii Ubuntu. Ide o relatívne nový vývoj. Vývoj Snapu prebiehal niekoľko rokov, ale až po vydaní Ubuntu 16.04 sa objavil v stave, v ktorom je pripravený na masové používanie.

Hlavnou výhodou Snapu je možnosť inštalovať programy bez závislostí. Všetky potrebné knižnice sú už v balíku s programom a na jeho spustenie nie je potrebné nič od systému vyžadovať. Pri aktualizácii musí používateľ aktualizovať jeden balík Snap bez toho, aby vykonal zmeny v systéme, a v prípade zlyhania a chýb môže vrátiť balík na predchádzajúcu verziu. Na webe sa často môžete stretnúť s hádkami používateľov o tom, či je technológia snap naozaj dobrá, alebo či by sa od nej malo upustiť v prospech balíkov deb. To však ukáže až čas a testovanie. V ďalšej časti tohto článku sa pozrieme na proces vytvárania balíkov snap. Ich vytváranie je o niečo jednoduchšie ako vytváranie rovnakých balíkov deb.

Vytváranie balíkov Snap v Ubuntu 16.04

Na vytvorenie snap balíkov použijeme špeciálny nástroj s názvom Snapcraft. Ide o oficiálny nástroj na vytváranie snap balíkov, ktorý umožňuje vývojárom vytvárať balíky programov s cieľom zostaviť potrebné súbory v celom systéme. Snapcraft umožňuje nielen kopírovať súbory, ale aj stiahnuť zdrojový kód a zostaviť program.

Ďalej si ukážeme, ako vytvárať snap balíky na príklade aplikácie Samplenote.

Najprv nainštalujte aplikáciu Snapcraft. Ak chcete získať najnovšiu verziu, pridajte do nášho systému PPA:

$ sudo add-apt-repository ppa:snappy-dev/tools

Teraz aktualizujte zoznam balíkov a nainštalujte program:

$ sudo apt-get update
$ sudo apt-get install snapcraft

Po dokončení inštalácie programu Snapcraft môžeme prejsť k získaniu zdrojového kódu programu. Najprv si stiahnite zdrojové kódy z GitHubu a rozbaľte ich:

$ wget https://github.com/Automattic/simplenote-electron/releases/download/v1.0.1/Simplenote-linux-x64.1.0.1.tar.gz
$ tar xvzf Simplenote-linux-x64.1.0.1.tar.gz

Keďže program nie je potrebné kompilovať, naša úloha je o niečo jednoduchšia. Prejdite do priečinka s programom a inicializujte v ňom prostredie pre zostavenie programu Snapcraft:

$ cd Simplenote-linux-x64
$ snapcraft init

Po vykonaní posledného príkazu sa v priečinku objaví súbor snapcraft.yml. Úpravou tohto súboru nakonfigurujeme proces vytvárania nášho balíka snap. Budeme potrebovať súbor s nasledujúcim obsahom:

name: simplenote
version: 1.0.1
summary: The simplest way to keep notes.
description: The simplest way to keep notes. Light, clean, and free.
apps:
simplenote:
command: usr/bin/wrapper
plugs:
- unity7
- opengl
- network
parts:
simplenote:
plugin: copy
stage-packages:
- libnss3
- fontconfig-config
- gnome-themes-standard
files:
Simplenote: Simplenote
wrapper: usr/bin/wrapper
icudtl.dat: icudtl.dat
snapshot_blob.bin: snapshot_blob.bin
natives_blob.bin: natives_blob.bin
resources*: resources
libnode.so: usr/lib/x86_64-linux-gnu/libnode.so
libffmpeg.so: usr/lib/x86_64-linux-gnu/libffmpeg.so

Prvé štyri riadky sú informácie o samotnom balíku, názov programu, verzia a krátky a úplný popis.

Príkaz - ide o príkaz na spustenie programu, ďalej použijeme skript warpper, pretože potrebujeme zadať ďalšie premenné prostredia.

Zásuvné moduly - ide o rozhrania, ktoré môže program používať. Ide o to, aby snap programy pracovali v izolovanom prostredí, odkiaľ sa nemôžu dostať k hardvéru a osobným údajom. Aby náš program správne fungoval, musí mať prístup k rozhraniam opengl, unity7 a sieťovým rozhraniam.

Dostupné rozhrania a programy, ktoré ich používajú, si môžete pozrieť po vykonaní príkazu:

$ snap interfaces

V časti parts je potrebné zadať súbory programu. Konkrétne to, čo potrebuje snapcraft urobiť pri vytváraní balíka. Keďže nepotrebujeme nič kompilovať, na kopírovanie súborov použijeme doplnok copy. Súbory, ktoré je potrebné skopírovať, sú uvedené v časti files (súbory). Nachádzajú sa tu nielen spustiteľné súbory, ale aj všetky potrebné knižnice, takže program získa všetky potrebné komponenty.

Formát záznamu je nasledujúci:

system_file: snap_package_file_path

Je tu jedna neštandardná položka:

resources*: resources

Zástupný znak * umožňuje skopírovať celý adresár. Aby sa zabránilo kopírovaniu všetkých súborov zo systému, v časti site-packages (balíky stránok) je možnosť, ktorá programu povie, ktoré balíky majú byť nainštalované v balíku snap, v našom prípade sú to libnss3, fontconfig-config-config a gnome-themes-standard.

Ak chcete zistiť, ktoré knižnice program používa, môžete použiť príkaz:

ldd Simplenote | grep Simplenote
libnode.so => /home/sergiy/test/Simplenote/Simplenote-linux-x64/./libnode.so (0x00007f05fb477000)
libffmpeg.so => /home/sergiy/test/Simplenote/Simplenote-linux-x64/./libffmpeg.so (0x00007f05f61ec000)

Dôležité je, že tieto knižnice sú dodávané spolu s programom, takže ich musíme uviesť v konfiguračnom súbore snapcraft.yaml. Všetky ostatné knižnice sú v systéme dostupné a program snapcraft ich rozpozná automaticky.

Ďalej vytvoríme obalový súbor:

!/bin/sh
export FONTCONFIG_PATH=$SNAP/etc/fonts
export FONTCONFIG_FILE=$SNAP/etc/fonts/fonts.conf
export XDG_DATA_HOME=$SNAP/usr/share
export LD_LIBRARY_PATH=$SNAP_LIBRARY_PATH:$SNAP/usr/lib/x86_64-linux-gnu/
exec "$SNAP/Simplenote" "$@"

Tu je to jednoduché - skript Bash. Nastavte cesty pre fonty a povedzte programu, kde má hľadať knižnice, aby sa úspešne našli libnote. so a libffmpeg.so. A posledný riadok spustí simplenote.

Ďalšia vec, ktorú treba urobiť, je zabezpečiť, aby bol tento súbor spustiteľný:

$ chmod +x wrapper

Ak chcete spustiť zostavovanie balíka, spustite:

$ snapcraft

Zostavovanie môže chvíľu trvať a po dokončení zostavovania môžete balík nainštalovať:

$ sudo snap install simplenote_1.0.1_amd64.snap

Na spustenie programu môžete použiť bežný príkaz:

$ simplenote

Teraz je program nainštalovaný. Na vytváranie balíkov aplikácií môžete použiť presne ten istý spôsob vytvárania balíkov snap.