Все дистрибутивы - 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. Приветствуются предложения по улучшению.