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