Всем привет.
Давно уже планировал написать пару статей на тему сборки самодостаточных пакетов 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 настройки, установку и запуск из любого места в системе.
P.S. Если у вас возникнут вопросы, правки к статье или еще что-то то пишите. Постараюсь ответить всем.