Всім привіт.
Давно вже планував написати пару статей на тему збирання самодостатніх пакетів snap.
Якщо хтось не в курсі, то технологія snapcraft це складання пакету на зразок .deb * або .rpm * . Але за невеликою відмінністю, snap пакет є повністю самодостатнім. Тобто йому від системи нічого взагалі не потрібне. На даний момент пакети snap підтримують такі дистрибутиви як Arch , Debian, Fedora , Gentoo і само собою сам родоначальник даної технології Ubuntu . Є ще близько 5-6 дистрибутивів, які підтримують, але я їх не перевіряв. На форумах пишуть, що працює)).
У цій статті я трохи опишу конфігураційний файл для збирання.
Для того щоб зібрати snap пакет потрібно мати встановлені в системі snapd і snapcraft.
- snapd - утиліта для роботи з установкою та керування готових пакетів.
- snapcraft - утиліта для збирання своїх додатків у пакет snap.
Після того як ви встановите все потрібно для роботи, створимо каталог для нашої роботи і в ньому файл snapcraft.yaml або в консолі snapcraft init і тоді отримаємо дефолтний файл у каталозі snap , який виглядатиме так:
name: my-snap-name # you probably want to 'snapcraft register <name>' version: '0.1' # just for humans, typically '1.2+git' or '1.3.2' summary: Single-line elevator pitch for your amazing snap # 79 char long summary description: | This is my-snap's description. You have a paragraph or two to tell the most important story about your snap. Keep it under 100 words though, we live in tweetspace and your description wants to look good in the snap store. grade: devel # must be 'stable' to release into candidate/stable channels confinement: devmode # use 'strict' once you have the right plugs and slots parts: my-part: # See 'snapcraft plugins' plugin: nil
Опишу в кратці деякі пункти файлу:
- Name - Ім'я пакето, яке буде присвоєно йому після створення
- ersion - Після назви пакету йде версія, потрібно буде якщо ви плануєте оновлювати вашу програму
- Description - Опис вашої програми, що буде показуватися в консолі
- Confinement - Механізм обмеження для роботи пакету
- Architectures - тут усе зрозуміло. Пакет архітектури. так само вказуватиметься у назві пакету
- Apps - Це може бути програма графічека, або консольна команда і запуск демона(сервіс).
- Parts - Це частина конфігу що оброблятиме snapcraft
Тепер набираємо в консолі команду snapcraft ми на основі даного конфігураційного файлу отримаємо наш перший пакет з ім'ям my-snap-name_0.1_amd64.snap
Кілька консольних команд, які будуть корисні для вивчення та ознайомлення:
snap find - список доступных пакетов snap sudo snap install <имя_пакета> - установка пакета. нужны права рута sudo snap refresh <имя_пакета> - обновление пакета snap list - список всех установленных пакетов snap в системе sudo snap remove <имя_пакета> - удаление пакета snap changes - очень полезная утилита, показывает информацию о всех изменения. (установка, обновление, удаление)
У наступній статті ми розберемо вже на прикладі моєї маленької графічної програми написаної на Qt налаштування, встановлення та запуск з будь-якого місця в системі.
PS Якщо у вас виникнуть питання, виправлення до статті або ще щось пишіть. Постараюся відповісти всім.