Еще один скрипт для подготовки образов для Raspberry Pi
Всем привет! В этой статье я хочу рассказать о ключевом компоненте сервиса CusDeb под названием Pieman, который мы недавно опубликовали на GitHub под лицензией GPLv3. Pieman представляет собой скрипт для подготовки образов для нескольких моделей Raspberry Pi. С самого начала этот проект задумывался как универсальное решение, которое должно поддерживать более одного устройства, более одной операционной системы и более одной архитектуры. На данный момент нам удалось частично этого добиться: скрипт готовит как 32-битные, так и 64-битные образы на базе Raspbian 9 «Stretch» и разных выпусков Ubuntu, но пока только для Raspberry Pi. В данный момент мы работаем над добавлением Alpine, в качестве новой операционной системы, и Orange Pi PC Plus, в качестве нового устройства.
Когда мы только начали работать над CusDeb, сервисом для кастомизации образов ОС для одноплатных компьютеров, мы постоянно откладывали работу над компонентом, который должен был непосредственно заниматься сборкой. Затем мы приняли решение использовать в качестве сборщика скрипт rpi23-gen-image, который предлагал кастомизировать образы для Raspberry Pi 2 или 3 на базе Debian Jessie или Stretch. Ограничения этого решения были очевидны, но на первых порах нас все устраивало. Однако сразу после публикации нескольких посвященных CusDeb'у постов на популярных ресурсах (в том числе Пикабу), нас стали просить расширить список устройств платами Orange Pi и Banana Pi, и добавить поддержку архитектуры ARM64. Это можно было сделать как минимум тремя разными способами:
* найти еще пару сторонних скриптов, к примеру, для сборки образов для устройств, отличных от Raspberry Pi, и задействовать их в CusDeb;
* добавить поддержку новых устройств в rpi23-gen-image, значительно переработав проект;
* разработать собственный скрипт «с нуля», в котором с самого начала был бы задел на масштабирование в области новых устройств, операционных систем и архитектур.
Несмотря на изобилие скриптов-сборщиков образов, в разработке которых мы могли бы принять участие, мы решили написать свое решение, которое с самого начала не было бы привязано к какой-то конкретной плате или операционной системе. Более того, мы постарались упростить добавление новых операционных систем и устройств в наш скрипт. Идея очень близка к дистрибутивам GNU/Linux, все программное обеспечение которых расфасовано по так называемым пакетам. У каждого пакета есть свой сопровождающий. Когда вам нужно какое-то конкретное ПО, вы устанавливаете соответствующий пакет, если он есть в дистрибутиве. Если по какой-то причине его там нет, вы пакетируете это ПО и становитесь сопровождающим этого пакета в дистрибутиве, оказывая таким образом неоценимую пользу сообществу. Pieman предлагает примерно тот же самый подход: если скрипт по какой-то причине еще не поддерживает нужную вам плату или не готовит образы на базе вашей любимой операционной системы, у вас есть возможность добавить поддержку целевой ОС или платы в Pieman без переработки всей кодовой базы проекта. Но чтобы стать сопровождающим, сначала нужно стать пользователем, поэтому в следующем разделе я расскажу как установить Pieman.
Установка
Несмотря на то, что родной платформой для Pieman является GNU/Linux, скрипт может быть также запущен на Windows 10 и macOS благодаря подготовленному нами образу Docker-контейнера.
Сначала загрузите образ с Docker Hub'а
$ docker pull cusdeb/pieman
Затем скачайте скрипт https://raw.githubusercontent.com/tolstoyevsky/pieman/master....
После этого не забудьте сделать его исполняемым
$ chmod +x docker-pieman.sh
Теперь для того чтобы собрать первый образ операционной системы с помощью Pieman, просто запустите docker-pieman.sh
$ ./docker-pieman.sh
По умолчанию будет собран образ на базе Raspbian Stretch (32bit) для Raspberry Pi 3. Если вам нужен образ, к примеру, для Raspberry Pi 2 на базе Ubuntu 16.04 «Xenial Xerus», то воспользуйтесь параметрами DEVICE и OS:
$ ./docker-pieman.sh -e DEVICE=rpi-2-b -e OS=ubuntu-xenial-armhf
Смотрите список всех поддерживаемых параметров, а также их возможных значений, в соответствующем разделе README проекта.
Мы призываем всех владельцев машин под управлением Windows 10 и macOS протестировать Pieman и оставить фидбек. Нам очень важно обеспечить работу проекта как можно на большем количестве платформ.
О сопровождении образов
Сопровождающий в Pieman отвечает за работоспособность той или иной операционной системы на каком-то конкретном устройстве. Так как нашему проекту меньше трех недель от роду, все операционные системы, на базе которых вы можете собрать образы для различных моделей Raspberry Pi, поддерживаются одним человеком, поэтому мы призываем всех неравнодушных к теме кастомизации образов ОС для одноплатных компьютеров присоединиться к нашему начинанию. Нашей основной целью является создание универсального решения, которое объединит как можно большее количество разношерстных устройств под одним интерфейсом. Я не вижу смысла раздувать итак достаточно длинную статью руководством сопровождающего, поэтому, если вам интересна эта тема, предлагаю ознакомиться с этим руководством в нашем блоге.
Заключение
Основная задача этой статьи заключалась в том, чтобы познакомить сообщество с новым проектом как можно раньше. На эту тему есть отличная поговорка: «Если вы опубликовали проект и вам за него не стыдно, значит вы опубликовали его слишком поздно.». Мы хотим, чтобы в первую очередь сообщество Raspberry Pi и других одноплатных компьютеров задавало направление развития этого проекта, поэтому мы ждем ваших замечаний и пожеланий.
Arduino & Pi
1.4K постов20.6K подписчика
Правила сообщества
В нашем сообществе запрещается:
• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)
• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском
• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)
• Рассуждать на темы политики
• Нарушать установленные правила Пикабу