Что такое Snapcraft?

Что такое Snapcraft?

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

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

решение1

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

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

Снапкрафт:

  • Умный: он извлекает, собирает и компонует различные части программного обеспечения (части) из удаленных источников в конечный .snap-пакет, содержащий все зависимости, необходимые для функционирования
  • Нужен рецепт.: он опирается на snapcraft.yamlфайл, который определяетчастииплагинытребуется для создания пакета
  • Расширяемыйс плагинами. Хотя он поставляется с набором наиболее распространенных плагинов системы сборки для удовлетворения широкого спектра сборок приложений, его можнолегко расширяется новыми.

3-минутный тур по Snapcraft

Установить Snapcraft на Ubuntu

Вам понадобится Ubuntu 16.04 LTS для использования Snapcraft. Откройте терминал с помощью ++ Ctrlи просто установите Snapcraft с помощью этой команды:Altt

sudo apt install snapcraft
sudo apt install build-essential  # Optional, but useful for different builds

Если вы используете другой дистрибутив,ознакомьтесь с альтернативными инструкциями по установке >

Тест-драйв Snapcraft

Следующий пример создает пакет, содержащий службу, которая позволяет вам вставлять и делиться. После завершения вы можете установить его вручную на вашем устройстве Snappy для тестирования или загрузить его в Store для других пользователей.

Для начала открываем терминал и загружаем пример из репозитория примеров:

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. Тянуть: он извлекает код из требуемой части 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 >

Связанный контент