Snapcraft - это набор инструментов, входящих в состав snapcraft
команды, для простого создания (создания) пакетов для нескольких дистрибутивов Linux . Эти пакеты .snap обычно содержат автономные приложения, обеспечивают безопасную изоляцию и могут быть установлены из Ubuntu Software Store или вручную с помощью snap install <snap-name>.snap
команды.
В двух словах, как разработчик, вы будете писать код, используя ваши обычные инструменты, и позволить Snapcraft позаботиться о его сборке для распространения. Кроме того, Snapcraft позволяет разработчикам портировать свои существующие приложения на любую платформу Linux с поддержкой Snap.
Snapcraft:
- Интеллектуален : он выбирает, собирает и собирает различные части программного обеспечения ( частей ) из удаленных источников в окончательный пакет .snap, который содержит все зависимости, необходимые для функционирования
- Нужен рецепт : он опирается на
snapcraft.yaml
файл, который определяет части и плагины, необходимые для создания пакета
- Расширяется с помощью плагинов. Хотя он поставляется с набором самых распространенных плагинов системы сборки для обслуживания широкого спектра сборок приложений, он может быть легко расширен за счет новых .
3-х минутный тур Snapcraft
Установите Snapcraft на Ubuntu
Вам понадобится Ubuntu 16.04 LTS, чтобы использовать Snapcraft. Откройте терминал с помощью Ctrl+ Alt+ tи просто установите Snapcraft с помощью этой команды:
sudo apt install snapcraft
sudo apt install build-essential # Optional, but useful for different builds
Если вы используете другой дистрибутив, ознакомьтесь с альтернативными инструкциями по установке>
Тест-драйв Snapcraft
В следующем примере создается пакет, содержащий службу, которая позволяет вставлять и делиться. Закончив, вы можете установить его вручную на своем snappy устройстве для тестирования или загрузить его в Магазин для других пользователей.
Сначала мы открываем терминал и скачиваем пример из репозитория примеров:
sudo apt install git
git clone https://github.com/ubuntu-core/snapcraft.git
cd snapcraft/demos/gopaste
Обратите внимание на snapcraft.yaml
файл в этом каталоге, в котором указана служба и части, необходимые для сборки окончательного .snap. При желании вы можете проверить это с помощью текстового редактора.
Теперь запустите snapcraft
команду на терминале. Это приведет к тому, что все подкоманды snapcraft будут выполняться последовательно, чтобы собрать детали и поместить результаты в окончательный пакет .snap. Во время разработки вы обычно выполняете шаги отдельно, пока не будете уверены, что вся сборка и сборка работают.
$ snapcraft
Pulling gopaste
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go get -t -d github.com/wisnij/gopaste/gopasted
Building gopaste
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go build github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go install github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build cp -a /tmp/snapcraft/examples/gopaste/parts/gopaste/build/bin /tmp/snapcraft/examples/gopaste/parts/gopaste/install
Staging gopaste
Snapping gopaste
Generated 'gopaste_1.0_amd64.snap' snap
На выходе команды вы можете увидеть шаги, которые запускает snapcraft для вас:
- Pull : он извлекает код из нужной части gopaste из удаленного репозитория Github.
- Построить : он строит гопаст на местном уровне
- Этап : после сборки детали помещаются в единое дерево каталогов, «область подготовки»
- Snap : окончательный пакет .snap создается из собранных деталей в рабочей области
Примечания:
- Вы найдете окончательный файл моментальных снимков следующим образом
gopaste_1.0_amd64.snap
(обратите внимание, что в моем случае я создал его на своем рабочем столе amd64, например, пакеты Raspberry Pi 2 будут иметь _armhf
суффикс архитектуры).
- Вы также можете запустить каждую команду по отдельности:
snapcraft pull
, snapcraft build
, snapcraft stage
илиsnapcraft snap
- Используйте
snapcraft -h
для быстрого обзора всех доступных команд.
И это все, что можно сделать из Snapcraft! Узнайте больше о Snapcraft>
"And that's it for a quick glimpse of what Snapcraft can do!"