Що таке Snapcraft?


16

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

Що таке Snapcraft і як я можу ним користуватися?

Відповіді:


27

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 виконує для вас:

  1. Потягніть : він витягує код із необхідної частини пасти з віддаленого репорта Github
  2. Збірка : вона будує gopaste локально
  3. Етап : після складання частини розміщуються в єдине дерево каталогів, "область постановки"
  4. Прив'язка : остаточний .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
Я б погодився з Девідом тут.
dholbach

1
Частину bzr слід замінити еквівалентними командами git, оскільки код тепер знаходиться в Github.
lapisdecor

1
Також для цього вам потрібно встановити git та gcc, якщо ви використовуєте git, а не bzr.
lapisdecor
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.