Все дистрибутивы - Docker-способ создания ZoneMinder

Примечание

Если вы ищете простой способ запуска ZoneMinder и не заинтересованы в создании собственного образа Docker, пожалуйста, обратитесь к Простой в использовании образ Docker.

Эти инструкции представляют собой альтернативный способ сборки ZoneMinder для любого поддерживаемого дистрибутива.

Преимущества:

  • Меньше шагов, а значит, намного проще

  • Целевая операционная система не важна – шаги одинаковы независимо от целевой операционной системы

  • Хост-независимый дистрибутив - описанные здесь шаги должны работать на любом хост-дистрибутиве Linux, способном запускать Bash и Docker

Бэкграунд

Эти инструкции используют мощь автоматизированной системы сборки, недавно внедренной в проект ZoneMinder. За кулисами используется проект под названием packpack, чтобы собрать ZoneMinder внутри контейнера Docker.

Процедура

Шаг 1: Проверьте целевую ОС.

  • Откройте файл .travis.yml проекта <https://github.com/ZoneMinder/ZoneMinder/blob/master/.travis.yml#L27>`_ и проверьте, появляется ли дистрибутив, для которого вы хотите собрать ZoneMinder, в матрице сборки. Дистрибутивы, показанные в матрице, - это те, которые известны как работающие на ZoneMinder. Если дистрибутив, который вы хотите, есть в списке, переходите к шагу два.

  • Если желаемая дистрибутива не входит в первый список, откройте README проекта packpack <https://github.com/packpack/packpack/blob/master/README.md> и проверьте, теоретически ли поддерживается желаемая дистрибутива. Если да, то продолжайте шаг 2 с пониманием того, что вы идете в неизведанные воды. Могут возникнуть проблемы.

  • Если желаемая дистрибутива не появляется ни в одном из списков, то, к сожалению, вы не можете использовать описанную здесь процедуру.

  • Если желаемая архитектура дистрибутива - arm, обратитесь к разделу Приложение A - Включение Qemu на хосте, чтобы включить эмуляцию qemu на вашей машине с архитектурой amd64.

Шаг 2: Установите Docker.

Вам необходимо иметь работающую установку Docker, поэтому перейдите на страницу Docker <https://docs.docker.com/engine/installation/> и сделайте ее рабочей. Прежде чем переходить к следующему шагу, убедитесь, что вы можете запустить контейнер Docker «Hello World» как обычный пользователь. Чтобы запустить контейнер Docker как обычный пользователь, выполните следующее:

sudo gpasswd -a <username> docker
newgrp docker

Где <username>, вы догадались, имя пользователя, с которым вы входите.

Шаг 3: Загрузите проект ZoneMinder с помощью Git.

Скопируйте проект ZoneMinder, если вы этого еще не сделали.

git clone https://github.com/ZoneMinder/ZoneMinder
cd ZoneMinder

Альтернативно, если вы уже клонировали репозиторий и хотите его обновить, выполните следующие действия.

cd ZoneMinder
git checkout master
git pull origin master

Шаг 4: Проверьте версию ZoneMinder, которую вы хотите собрать.

Только что клонированный репозиторий ZoneMinder git уже указывает на самую последнюю коммитацию в ветке master. Если вы хотите последнюю версию разработки, перейдите к следующему шагу. Если вместо этого вы хотите создать стабильную версию, выполните следующий шаг.

git checkout <releasename>

Где <releasename> является одним из официальных релизов ZoneMinder, показанных на странице releases <https://github.com/ZoneMinder/ZoneMinder/releases> , таких как 1.30.4.

Шаг 5: Постройте ZoneMinder

Для начала сборки просто выполните следующую команду из корневой папки локального репозитория git:

OS=<distroname> DIST=<distrorel> utils/packpack/startpackpack.sh

Где <distroname> - это имя дистрибутива, который вы хотите построить, например fedora, и <distrorel> - это имя релиза или номер дистрибутива, на котором вы хотите запустить сборку. Дистрибутивы Redhat ожидают номер для <distrorel>, а дистрибутивы Debian и Ubuntu ожидают имя. Например:

OS=fedora DIST=25 utils/packpack/startpackpack.sh
OS=ubuntu DIST=hirsute utils/packpack/startpackpack.sh

После того как вы введете соответствующую команду, возьмите кофе и подождите, пока пакет ZoneMinder будет собран. Когда сборка будет завершена, вы сможете найти полученные пакеты в подпапке, называемой «build».

Обратите внимание, что это будет строить пакеты с архитектурой x86_64. Этот метод сборки также может работать на некоторых дистрибутивах (только debian и ubuntu в настоящее время), использующей архитектуру i386. Вы можете это сделать, добавив параметр «ARCH=i386».

OS=ubuntu DIST=hirsute ARCH=i386 utils/packpack/startpackpack.sh

Для продвинутых пользователей, которые действительно хотят выйти в неизведанные воды, теоретически возможно создание пакетов ARM, при условии, что архитектура хоста совместима.

OS=ubuntu DIST=hirsute ARCH=armhfp utils/packpack/startpackpack.sh

Создание пакетов таким образом не было протестировано нами, однако.

Приложение A - Включение Qemu на хосте

Если вы намерены создать пакеты ZoneMinder для arm на хосте amd64, то пользователи Debian могут следовать этим шагам, чтобы включить прозрачное эмуляцию Qemu:

sudo apt-get install binfmt-support qemu qemu-user-static

Проверьте, что эмуляция ARM включена, выполнив команду:

sudo update-binfmts --enable qemu-arm

Вы можете получить сообщение о том, что эмуляция для этого процессора уже включена.

Необходимо провести больше тестирования для дистрибутивов Red Hat, но, похоже, пользователи Fedora могут просто выполнить:

sudo systemctl start systemd-binfmt

План

Проверьте детали, связанные с включением эмуляции QEMU в дистрибутивах Red Hat. Приветствуются предложения по улучшению.