BlinCT
BlinCTЖел. 3, 2017, 4:05 Т.Қ.

SNAP сабағы 01. Қаптама дегеніміз не және қарапайым пакетті құрастыру мысалы

Всем привет.

Давно уже планировал написать пару статей на тему сборки самодостаточных пакетов snap.

Если кто не в курсе, то технология snapcraft это сборка пакета на подобии .deb * или .rpm . Но за небольшим отличием, snap пакет полностью самодостаточен. То есть ему от системы ничего вообще не нужно.  На данный момент пакеты snap поддерживают такие дистрибутивы как Arch , Debian, Fedora , Gentoo и само собою сам родоначальник данной технологии Ubuntu * . Есть еще около 5-6 дистрибутивов которые поддерживают, но я их не проверял. На форумах пишут, что работает)).

В данной статье я немного опишу конфигурационный файл для сборки.


Для того чтобы собрать snap пакет требуется иметь установленными в системе snapd и snapcraft.

  1. snapd - утилита для работы с установкой и  управление готовых пакетов.
  2. 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

Опишу в кратце некоторые пункты файла:

  1. Name - Имя пакето которое будет присвоено ему после создания
  2. ersion - После названия пакета идет версия, нужно будет если вы планируете обновлять ваше приложение
  3. Description - Описание вашего приложения что будет показываться в консоли
  4. Confinement - Механизм ограничения для работы пакета
  5. Architectures - тут все понятно. архитектура пакета. так же будет указываться в названии пакета
  6. Apps - Это может быть приложение графичекое, или консольная команда и запуск демона(сервис).
  7. 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. Если у вас возникнут вопросы, правки к статье или еще что-то то пишите. Постараюсь ответить всем.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз
AD

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:50ұпай,
  • Бағалау ұпайлары-4
m
  • molni99
  • Қаз. 26, 2024, 1:37 Т.Ж.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:80ұпай,
  • Бағалау ұпайлары4
m
  • molni99
  • Қаз. 26, 2024, 1:29 Т.Ж.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:20ұпай,
  • Бағалау ұпайлары-10
Соңғы пікірлер
ИМ
Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Evgenii Legotckoi
Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
A
ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas5Шілде 5, 2024, 11:02 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Енді форумда талқылаңыз
m
moogoҚар. 22, 2024, 7:17 Т.Ж.
Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
Evgenii Legotckoi
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
t
tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
NSProject
NSProjectМаусым 4, 2022, 3:49 Т.Ж.
Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

Бізді әлеуметтік желілерде бақылаңыз