Что такое Snapcraft?

15

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

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

    
задан David Planella 16.10.2015 в 11:06
источник

1 ответ

25

Snapcraft - это набор инструментов , вложенный в команду snapcraft , чтобы легко создавать (создавать) пакеты для нескольких дистрибутивов Linux . Эти пакеты .snap обычно содержат автономные приложения, обеспечивают безопасную изоляцию и устанавливаются либо из магазина программного обеспечения Ubuntu, либо вручную с помощью команды snap install <snap-name>.snap .

Вкратце, как разработчик, вы будете писать код, используя ваши обычные инструменты, и пусть Snapcraft позаботится о его сборке для распространения. Snapcraft также выделяет возможность создания порта своих существующих приложений на любой Linux-платформе с бесплатной поддержкой.

Snapcraft:

  • Интеллектуальный : он извлекает, собирает и собирает различные компоненты программного обеспечения ( части ) из удаленных источников в окончательный пакет .snap, который содержит все зависимости, необходимые для функции li>
  • Требуется рецепт : он использует файл 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

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

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

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. Строить : он строит gopaste локально
  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 >

    
ответ дан David Planella 16.10.2015 в 11:06
источник