Что такое Snapcraft?

16

Я пробовал быстрое ядро ​​Ubuntu на устройстве Raspberry Pi 2, и я слышал, что могу использовать Snapcraft для разработки на нем. Теперь я слышу, что на Ubuntu 16.04 и других дистрибутивах доступны снимки на рабочем столе и на сервере.

Что такое Snapcraft и как я могу его использовать?

Дэвид Планелла
источник

Ответы:

27

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 для вас:

  1. Pull : он извлекает код из нужной части gopaste из удаленного репозитория Github.
  2. Построить : он строит гопаст на местном уровне
  3. Этап : после сборки детали помещаются в единое дерево каталогов, «область подготовки»
  4. Snap : окончательный пакет .snap создается из собранных деталей в рабочей области

Примечания:

  • Вы найдете окончательный файл моментальных снимков следующим образом gopaste_1.0_amd64.snap(обратите внимание, что в моем случае я создал его на своем рабочем столе amd64, например, пакеты Raspberry Pi 2 будут иметь _armhfсуффикс архитектуры).
  • Вы также можете запустить каждую команду по отдельности: snapcraft pull, snapcraft build, snapcraft stageилиsnapcraft snap
  • Используйте snapcraft -hдля быстрого обзора всех доступных команд.

И это все, что можно сделать из Snapcraft! Узнайте больше о Snapcraft>

Дэвид Планелла
источник
9
Я ценю этот комментарий, но хотя я не являюсь одним из разработчиков Snapcraft, я также не уверен, как объяснение того, что такое инструмент для создания снимков Ubuntu и как его использовать на сайте Ubuntu, может стать спамом.
Дэвид Планелла
Формулировка в списке функций вызвала это у меня. А также"And that's it for a quick glimpse of what Snapcraft can do!"
Исмаэль Мигель
1
Я бы согласился с Дэвидом здесь.
Дхольбах
1
Часть bzr должна быть заменена эквивалентными командами git, так как код теперь находится на Github.
Lapisdecor
1
Кроме того, для этого вам нужно установить git и gcc, если вы используете git, а не bzr.
Lapisdecor