
Я пробовал 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:
- Тянуть: он извлекает код из требуемой части gopaste из удаленного репозитория Github
- Строить: он создает gopaste локально
- Этап: после сборки детали помещаются в единое дерево каталогов, «промежуточную область»
- Щелчок: окончательный пакет .snap создается из собранных деталей в промежуточной зоне
Примечания:
- Окончательный файл snap вы найдете как
gopaste_1.0_amd64.snap
(обратите внимание, в моем случае я собрал его на своем настольном компьютере amd64, например, пакеты Raspberry Pi 2 будут иметь_armhf
суффикс архитектуры). - Вы также можете запустить каждую команду по отдельности:
snapcraft pull
,snapcraft build
,snapcraft stage
илиsnapcraft snap
- Используйте
snapcraft -h
для быстрого обзора всех доступных команд.
Вот и все, что нужно знать о возможностях Snapcraft!Узнайте больше о Snapcraft >