Snapcraft - це набір інструментів, що входять до складуsnapcraft
команди для легкого створення (крафт) пакетів для декількох дистрибутивів Linux . Ці пакети .snap зазвичай містять автономні програми, забезпечують безпечну ізоляцію та встановлюються з магазину програмного забезпечення Ubuntu або вручну за допомогою snap install <snap-name>.snap
команди.
Коротше кажучи, як розробник ви писали б код, використовуючи свої звичайні інструменти, а дозвольте Snapcraft подбати про збірку його для розповсюдження. Snapcraft також чудово допомагає розробникам портувати свої наявні програми на будь-яку платформу Linux із підтримкою.
Snapcraft:
- Розумна : вона вибирає, створює та збирає різноманітні програми ( частини ) з віддалених джерел у остаточний пакет .snap, який містить усі залежності, необхідні для функціонування
- Потрібен рецепт : він спирається на
snapcraft.yaml
файл, який визначає частини та плагіни, необхідні для створення пакету
- Розширюється за допомогою плагінів. Хоча він постачається з набором найпоширеніших плагінів системи побудови для обслуговування широкого спектру збірок додатків, це може бути легко розширити новими .
3-хвилинний тур Snapcraft
Встановіть Snapcraft на Ubuntu
Для використання Snapcraft вам знадобиться Ubuntu 16.04 LTS. Відкрийте термінал 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 виконує для вас:
- Потягніть : він витягує код із необхідної частини пасти з віддаленого репорта Github
- Збірка : вона будує gopaste локально
- Етап : після складання частини розміщуються в єдине дерево каталогів, "область постановки"
- Прив'язка : остаточний .snap пакет створюється з зібраних деталей в проміжній області
Примітки:
- Ви знайдете остаточний файл оснащення як
gopaste_1.0_amd64.snap
(зауважте, у моєму випадку я створив його на своєму робочому столі amd64, наприклад, пакети Raspberry Pi 2 мали б_armhf
суфікс архітектури).
- Ви також можете запустити кожну команду по окремо:
snapcraft pull
, snapcraft build
, snapcraft stage
абоsnapcraft snap
- Використовуйте
snapcraft -h
для швидкого огляду всіх доступних команд.
І це все для швидкого огляду того, що Snapcraft може зробити! Дізнайтеся більше про Snapcraft>