Создание snap пакета linux

Содержание
  1. Snap (Русский)
  2. Contents
  3. Установка
  4. Настройка
  5. Управление snap-пакетами
  6. Поиск
  7. Установка пакетов
  8. Обновление пакетов
  9. Удаление пакетов
  10. Удаление
  11. Советы и рекомендации
  12. Classic snaps
  13. Помощь
  14. Как создать Snap пакет Ubuntu 16
  15. Создание Snap пакетов в Ubuntu 16.04
  16. Как создать Snap пакет Ubuntu 16.04
  17. Создание Snap пакетов в Ubuntu 16.04
  18. Выводы
  19. Установка и использование Snap-пакетов в Ubuntu 18.04
  20. Введение
  21. Вам понадобится
  22. Установка системы Snap
  23. Работа с системой Snap
  24. Поиск snap-приложений/пакетов
  25. Установка snap-приложений
  26. Запуск установленных snap-пакетов
  27. Просмотр списка установленных приложений
  28. Обновление установленных snap-приложений/пакетов
  29. Возврат к более ранней версии snap-приложений/пакетов
  30. Удаление snap-приложений/пакетов
  31. Включение и выключение snap-приложений/пакетов
  32. Список запущенных служб
  33. Перезапуск, запуск и приостановление snap-служб
  34. Конфигурации snap set и get
  35. Скачивание и установка snap-приложений offline
  36. Заключение

Snap (Русский)

snapd это REST API демон для управления snap-пакетами («snaps»). Пользователи могут взаимодействовать с ним с помощью snap клиента, входящего в тот же пакет.

Contents

Установка

В пакет входит snapd демон, а также snap-confine, который обеспечивает монтирование, изоляцию и запуск snap-пакетов.

Настройка

В пакет также входят несколько systemd unit файлов, которые обеспечивают возможность обновления всех установленных snap-пакетов, при выходе новой версии.

Для того чтобы snapd демон запускался, когда snap обращается к нему, запустите snapd.socket .

Вы также можете активировать его при старте системы.

Для того чтобы автоматически обновлять пакеты активируйте snapd.refresh.timer :

Управление snap-пакетами

Для управления пакетами используется утилита snap.

Поиск

Для поиска пакетов, доступных для установки используйте команду find:

Это выведет список всех доступных пакетов. Для поиска конкретного пакета используйте:

Установка пакетов

Установить snap-пакет можно с помощью команды:

Установка требует root привилегий. Установка с правами пользователя на данный момент невозможна. При установке snap загружается в /var/lib/snapd/snaps и монтируется в /snap/имя_пакета .

Кроме того, создаются также юнит-файлы для каждого snap-пакета и добавляются в /etc/systemd/system/multi-user.target.wants/ , для того чтобы snap-пакеты монтировались при каждом запуске системы. Вы можете просмотреть список установленных пакетов командой:

Вы также можете устанавливать snap-пакеты локально, с жесткого диска:

Обновление пакетов

Для того чтобы обновить snap-пакеты выполните:

Удаление пакетов

Для того чтобы удалить пакет выполните:

Удаление

Удаление пакета snapd AUR не приводит к удалению всех каталогов и файлов, которые создаются при его использовании. Лучше всего удалить все snap-пакеты с помощью snap remove, перед тем как удалять сам пакет. Однако, на данный момент невозможно удалить snap-пакет ubuntu-core. Для того чтобы полностью удалить все файлы следуйте инструкции ниже.

1. Отмонтируйте все активные snap-пакеты из /snap .

2. Удалите следующие каталоги:

3. Удалите все файлы, отвечающие за монтирование snap-пакетов из /var/lib/snapd/snaps в /snap при загрузке.

Советы и рекомендации

Classic snaps

Some snaps (e.g. Skype and Pycharm) use classic confinement. However, classic confinement requires the /snap directory, which is not FHS-compliant. Therefore, the snapd package does not ship this directory. However, if the user wants to, he can manually create a symlink from /snap to /var/lib/snapd/snap , to allow the installation of classic snaps:

Помощь

Почтовая рассылка Arch Linux и другие официальные каналы поддержки Arch Linux не являются подходящим местом для запроса помощи по snap-пакетам на Arch Linux. Подходящим местом для запроса поддержки является Snapcraft forum.

Источник

Как создать Snap пакет Ubuntu 16

Snap — технология, разработанная специалистами Canonical с целью облегчения установки ПО в дистрибутиве Ubuntu. Она появилась относительно недавно. Разработка Snap происходила в течение нескольких лет, но только к релизу Ubuntu 16.04 появилась в состоянии, в котором она готова к использованию массовым пользователем.

Создание Snap пакетов в Ubuntu 16.04

Для создания snap пакетов мы будем использовать специальный инструмент — Snapcraft. Это официальный инструмент для создания snap пакетов, который позволяет разработчику упаковывать программы для того, чтобы собирать необходимые файлы по всей системе. Snapcraft позволяет не только копировать файлы, но и скачивать исходники и собирать программу.

Дальше рассмотрим как создавать snap пакеты на примере приложения Samplenote.

Сначала установливаем Snapcraft. Чтобы получить самую новую версию добавим к нашей системе PPA:

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

Теперь обновим список пакетов и установим программу:

Читайте также:  Как делать оценку windows системы

$ sudo apt-get install snapcraft

Когда завершится установка Snapcraft можно переходить к получению исходников программы. Сначала скачаем исходники из GitHub и распакуем их:

$ 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

Поскольку программу не нужно компилировать наша задача немного облегчается. Переходим в папку с программой и инициализируем там окружение сборки Snapcraft:

После выполнения последней команды, в папке появится файл snapcraft.yml. С помощью редактирования файла выполним настройку процесса создания нашего пакета snap. Нам понадобится файл такого содержания:

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

Первые четыре строчки — это информация о самом пакете, название программы, версия и краткое и полное описание.

Command — это команда запуска программы, дальше станем использовать скрипт warpper, потому, что нам нужно указать дополнительные переменные окружения.

Посмотреть доступные интерфейсы, и программ, которые их используют можно выполнив команду:

В разделе parts нужно указать файлы программы. Если быть точным, то что нужно сделать snapcraft при создании пакета. Поскольку нам ничего компилировать не нужно, задействуем плагин copy, для копирования файлов. Файлы, которые нужно скопировать, перечислены в разделе files. Там есть не только исполняемые файлы, но и все необходимые библиотеки, так что программа получит все необходимые ей компоненты.

Формат записи такой:

Есть одна нестандартная запись:

Символ подстановки * позволяет скопировать весь каталог. Чтобы не копировать все файлы из системы, есть возможность в секции site-packages сказать программе, какие пакеты следует установить в пакет snap, в нашем случае это libnss3 , fontconfig-config и gnome-themes-standard.

Чтобы посмотреть какие библиотеки использует программа, можно воспользоваться командой:

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)

Важно то, что эти библиотеки поставляются вместе с программой, а поэтому нам нужно прописать их в конфигурационном файле snapcraft.yaml. Все остальные библиотеки доступны в системе и будут обнаружены snapcraft автоматически.

Далее создадим файл wrapper:

!/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» «$@»

Здесь все просто — скрипт на Bash. Устанавливаем пути для шрифтов, и указываем программе где нужно искать библиотеки, чтобы libnote.so и libffmpeg.so были успешно найдены. А последняя строка запускает на выполнение simplenote.

Дальше осталось сделать этот файл исполняемым:

Для начала сборки пакета выполните:

Сборка может занять кое-какое время, а после завершения сборки вы сможете установить пакет:

$ sudo snap install simplenote_1.0.1_amd64.snap

Для запуска программы вы можете воспользоваться обычной командой:

Источник

Как создать Snap пакет Ubuntu 16.04

Технология Snap разработанная в Canonical для облегчения установки программного обеспечения в дистрибутиве Ubuntu появилась совсем недавно. Она разрабатывалась на протяжении последних нескольких лет, но только к релизу Ubuntu 16.04 стала более-менее готова к использованию широкой аудиторией.

Основное преимущество Snap, это возможность установки программ без зависимостей. Все необходимые программе библиотеки находятся уже в пакете с программой и для ее запуска ничего не требуется от системы. При обновлении вам достаточно обновить один snap пакет, не обновляя всю систему, а при сбоях и ошибках можно откатить пакет до предыдущей версии. Сейчас ходит много споров по поводу того действительно ли хороша технология snap или нужно от нее отказаться в пользу deb пакетов. Но все это покажет время и тестирование, а в этой статье мы рассмотрим создание snap пакетов. Тем более, что создавать их немного проще, чем те же самые deb пакеты.

Создание Snap пакетов в Ubuntu 16.04

Чтобы создать snap пакет мы будем использовать специальный инструмент — Snapcraft. Это официальный инструмент для создания snap пакетов, который позволяет разработчику упаковывать программы собирая необходимые файлы по всей системе. Snapcraft позволяет не только копировать файлы, но и скачивать исходники и собирать программу.

Читайте также:  Samsung np350v5c драйвера windows 10 x64

В этой статье мы рассмотрим как создавать snap пакеты на примере небольшого приложения Samplenote.

Сначала нам нужно установить Snapcraft. Чтобы получить самую новую версию добавим к нашей системе PPA:

Теперь обновим список пакетов и установим программу:

Когда завершится установка Snapcraft можно переходить к получению исходников программы. Сначала скачаем исходники из GitHub и распакуем их:

Поскольку программу не нужно компилировать наша задача немного облегчается. Переходим в папку с программой и инициализируем там окружение сборки Snapcraft:

После выполнения последней команды, в папке появится файл snapcraft.yml. С помощью редактирования этого файла мы и настроим процесс создания нашего пакета snap. Нам понадобится файл такого содержания:

Первые четыре строчки — это информация о самом пакете, название программы, версия и краткое и полное описание.

Command — это команда запуска программы, мы будем использовать скрипт warpper, потому, что нам нужно указать дополнительные переменные окружения.

plugs — это интерфейсы, которые может использовать программа. Дело в том, что программы snap работают в изолированной среде, откуда они не могут получить доступ к оборудованию и персональным данным. Чтобы наша программа могла нормально работать ей нужно дать доступ к интерфейсу opengl, unity7 и network.

Посмотреть доступные интерфейсы, и программ, которые их используют можно выполнив команду:

В разделе parts мы указываем сами файлы программы. А если точнее, то что нужно сделать snapcraft при создании пакета. Поскольку нам ничего компилировать не нужно, мы будем использовать плагин copy, для копирования файлов. Файлы, которые нужно скопировать, перечислены в разделе files. Там есть не только исполняемые файлы, но и все необходимые библиотеки, так что программа получит все необходимые ей компоненты.

Формат записи такой:

Есть одна нестандартная запись:

Символ подстановки * позволяет скопировать весь каталог. Чтобы не копировать все файлы из системы, мы можем в секции site-packages сказать программе, какие пакеты следует установить в пакет snap, в нашем случае это libnss3 , fontconfig-config и gnome-themes-standard.

Чтобы посмотреть какие библиотеки использует программа, можно воспользоваться командой:

Обратите внимание, эти библиотеки поставляются вместе с программой, а поэтому нам нужно прописать их в конфигурационном файле snapcraft.yaml. Все остальные библиотеки доступны в системе и будут обнаружены snapcraft автоматически.

Далее создадим файл wrapper:

Здесь нет ничего сложного, обычный скрипт на Bash. Мы устанавливаем пути для шрифтов, и указываем программе где нужно искать библиотеки, чтобы libnote.so и libffmpeg.so были успешно найдены. А последняя строка запускает на выполнение simplenote.

Дальше осталось сделать этот файл исполняемым:

Для начала сборки пакета выполните:

Сборка может занять кое-какое время, а после завершения сборки вы сможете установить пакет:

Для запуска программы вы можете воспользоваться обычной командой:

Вот и все, программа установлена и работает. Точно такой же способ создания snap пакетов вы можете использовать для упаковки своих программ.

Выводы

Несмотря на то, что snap довольно спорная технология, ее уже используют многие разработчики программ, в том числе разработчики популярного браузера Firefox. Если вы разрабатываете свое программное обеспечение, то вполне можете создать snap пакеты. Учитывая, что snap скоро будет поддерживать и другие дистрибутивы, то это вполне неплохая затея. Более подробную информацию вы можете получить в официальной документации по snapcraft.

Источник

Установка и использование Snap-пакетов в Ubuntu 18.04

Dec 2, 2018 · 4 min read

Введение

Snap (или Snappy) — это система развертывания программ и управления пакетами, созданная Canonical. Эти пакеты чаще называют «снепами». Для работы с ними используется утилита «snapd», встроенная в ряд дистрибутивов Linux и позволяющая дистрибутивно-независимо развертывать программы на более высоком уровне.

Snap-пакеты полностью самодостаточны и работают на всех дистрибутивах Linux, позволяя безопасно распространять новые приложения и утилиты для систем облачных вычислений, серверов, десктопа и интернета вещей (Internet of Things). То есть snap-пакеты используются так же, как и команда apt-get , но другим способом.

Читайте также:  Сетевые службы windows 10 для локальной сети

Snapd — это REST API демон, служащий для управления snap-пакетами. Пользователи взаимодействуют с ним с помощью клиента snap, который входит в тот же пакет. Вы можете установить любое приложение на Linux-десктоп, сервер, облако или устройство.

Вам понадобится

GNU/Linux дистрибутив u и некоторые базовые знания о работе в командной строке. В данном руководстве вы узнаете, как настроить и использовать snap-команды.

Установка системы Snap

Если у вас установлена Ubuntu 16.04 LTS (Xenial Xerus) или более поздние версии, включая Ubuntu 18.04 LTS (Bionic Beaver), то вам ничего не надо делать. Snap установлен по умолчанию и готов к работе. Соответственно, если у вас установлена более ранняя версия или системы Snap нет по каким-то другим причинам, то сначала установите ее, а затем приступайте к работе.

Установку можно осуществить с помощью следующих команд:

Работа с системой Snap

snapd настроен и готов к использованию!

Поиск snap-приложений/пакетов

Чтобы найти доступные snap-приложения или пакеты выполните следующую команду:

Установка snap-приложений

Вы можете установить любые приложения/пакеты, доступные в формате snap, выполнив следующую команду:

Также можно указать конкретный канал, из которого вы хотите установить приложение. Канал — это snap-концепция, которая позволяет переключаться между разными каналами snap-приложений.

Запуск установленных snap-пакетов

Установленные snap-пакеты доступны в формате bin/snap и, как правило, добавлены в $PATH . Это позволяет сделать снепы доступными через ввод команды. Snap-приложение можно запустить, выполнив следующую команду:

Также его можно запустить через команду:

Просмотр списка установленных приложений

Чтобы увидеть все установленные snap-пакеты, выполните следующую команду:

Обновление установленных snap-приложений/пакетов

Снепы обновляются автоматически, но вы можете также обновить их вручную с помощью следующей команды:

Чтобы посмотреть, какие обновления snap-пакетов готовы к установке, выполните следующую команду:

Возврат к более ранней версии snap-приложений/пакетов

Если по какой-то причине вам не понравилось последнее обновление snap-пакета, вы можете вернуться к предыдущей версии с помощью следующей команды:

Такая команда вернет необходимую версию snap-пакета и данные, соответствующие ПО. Если предыдущая версия snap-пакета получена из другого канала, она все равно установится, и канал останется прежним.

Удаление snap-приложений/пакетов

Если вы хотите избавиться от снепов, удалите snap-пакет с помощью следующей команды:

Эта команда удалит приложение, все ее зависимости во время выполнения и связанные пользовательские данные. Если снеп запущен, команда сначала закроет его и затем удалит.

Включение и выключение snap-приложений/пакетов

Если вы хотите временно остановить работу снепа, просто отключите его и снова включите тогда, когда потребуется.

Список запущенных служб

Используйте snap services , чтобы просмотреть все установленные и запущенные снепы.

Перезапуск, запуск и приостановление snap-служб

Службы можно перезапустить с помощью команды snap restart .

Все службы, необходимые для работы снепов, будут перезагружены по умолчанию:

Чтобы запустить ранее остановленную службу, используйте следующую команду:

Чтобы остановить запущенную службу, используйте следующую команду:

Конфигурации snap set и get

Некоторые снепы, например, работающие в фоновом режиме, выставляют параметры конфигурации, которые можно изменить.

Команды для просмотра и изменения этих параметров конфигураций — snap get и snap set .

Выставленные параметры конфигурации можно посмотреть с помощью установленного снепа. Введите команду snap get

Чтобы изменить параметры конфигурации, задайте команду «snap set»:

Скачивание и установка snap-приложений offline

Установить snap-приложения можно и без подключения к интернету. Для этого необходимо скачать файлы snap-приложений/пакетов, задав следующую команду:

Эта команда загрузит .assert и .snap файл. Скопируйте их на другую Linux/Ubuntu систему, которая не имеет подключения к интернету. Затем установите загруженный файл с помощью следующей команды:

Заключение

Хотя данная система все еще разрабатывается, и доступно не так много snap-приложений/пакетов, тем не менее, она является одной из лучших систем управления ПО. Snap становится все популярнее, особенно благодаря таким настойчивым методам Canonical.

Источник

Оцените статью