
zoneminder v1.38.4
ZoneMinder — это бесплатное программное обеспечение с открытым исходным кодом для систем видеонаблюдения (CCTV), разработанное для Linux и поддерживающее IP-, USB- и аналоговые камеры.
ZoneMinder
Вся документация по ZoneMinder теперь доступна онлайн по адресу https://zoneminder.readthedocs.org
Обзор
ZoneMinder — это интегрированный набор приложений, предоставляющий комплексное решение для видеонаблюдения, позволяющее захватывать, анализировать, записывать и контролировать любые CCTV- или охранные камеры, подключённые к машине на базе Linux. Он разработан для работы на дистрибутивах, поддерживающих интерфейс Video For Linux (V4L), и протестирован с видеокамерами, подключёнными к картам BTTV, различными USB-камерами, а также поддерживает большинство IP-камер.
Связь с командой разработчиков
Прежде чем создавать issue в нашем форуме на GitHub, пожалуйста, прочитайте наши правила публикации: https://github.com/ZoneMinder/ZoneMinder/wiki/Github-Posting-Rules
Наш Dockerfile переехал
Пожалуйста, сообщайте о проблемах с Dockerfile ZoneMinder здесь: https://github.com/ZoneMinder/zmdockerfiles
Способы установки
Установка из репозитория пакетов
Это рекомендуемый способ установки ZoneMinder в вашу систему. Пакеты ZoneMinder поддерживаются для следующих дистрибутивов:
- Ubuntu через PPA Айзека Коннора
- Debian из их стандартного репозитория
- RHEL/CentOS и клоны через RPM Fusion
- Fedora через RPM Fusion
- OpenSuse через сторонний репозиторий
- Mageia из их стандартного репозитория
- Arch через AUR
- Gentoo через Portage Overlays
Если репозиторий, содержащий пакеты ZoneMinder, недоступен для вашего дистрибутива, рекомендуется собрать собственный пакет, а не выполнять сборку из исходников. Хотя каждый дистрибутив по-своему уникален, они часто достаточно похожи, чтобы вы могли адаптировать инструкции по сборке пакета одного дистрибутива для своего.
Сборка из исходников не рекомендуется
Исторически установка ZoneMinder в вашу систему требовала сборки из исходного кода с помощью традиционных команд configure, make, make install. Чтобы ZoneMinder собрался, необходимо было заранее определить и установить все его зависимости. Init- и logrotate-скрипты приходилось вручную копировать на свои места после сборки. Дополнительные пакеты, такие как jscalendar и Cambozola, приходилось устанавливать вручную. При удалении могли оставаться устаревшие файлы, способные вызвать проблемы при обновлении. Кстати, об обновлениях: когда наступало время обновления, все эти ручные шаги приходилось повторять заново.
Сегодня существуют более совершенные методы, которые делают большую часть этой работы за вас. Текущая команда разработчиков вместе с другими волонтёрами приложила большие усилия для предоставления ресурсов, позволяющих избежать сборки из исходников.
Сборка пакета ZoneMinder
Сборка ZoneMinder в пакет ничуть не сложнее сборки из исходников. Более того, если вы когда-либо успешно собирали ZoneMinder из исходников, вы можете обнаружить, что эти шаги даже проще.
При сборке пакета лучше всего выполнять эту работу в отдельном окружении, предназначенном для разработки. Это может быть так же просто, как создание виртуальной машины, использование Docker или использование mock. Достаточно одного «Ой», чтобы пожалеть о выполнении этой работы на вашем рабочем сервере.
Наконец, если вы хотите собрать снимок разрабатываемой версии из ветки master, рекомендуется сначала собрать пакет с использованием официального релиза ZoneMinder. Это поможет определить, вызваны ли возникшие проблемы процессом сборки или являются новой проблемой в ветке master.
Пожалуйста, посетите наш сайт ReadtheDocs для получения инструкций, специфичных для вашего дистрибутива.
Сопровождающие пакетов
Многие значения по умолчанию для конфигурационных переменных ZoneMinder не могут быть настроены во время сборки с помощью autotools или cmake. Был добавлен новый инструмент под названием zmeditconfigdata.sh, позволяющий сопровождающим пакетов изменять любую переменную, хранящуюся в ConfigData.pm, без внесения исправлений в исходный код.
Например, предположим, я создал новый пакет ZoneMinder, содержащий файл javascript'а cambozola. Однако по умолчанию поддержка cambozola отключена. Чтобы исправить это, добавьте в скрипт сборки пакета следующее:
./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes
Обратите внимание, что zmeditconfigdata.sh следует вызывать из корневой папки сборки, перед запуском cmake или configure.
Docker
Docker — это система для запуска приложений в изолированных контейнерах. ZoneMinder и веб-сервер ZM будут работать, используя Dockerfile, содержащийся в этом репозитории. Однако ещё предстоит работа, чтобы убедиться, что основные функции ZM работают должным образом и документированы.
Модель участия и разработка
- Исходный код размещён на GitHub
- Сообщайте о проблемах в GitHub Issues
- Вопросы/запросы функций в Slack или форумах
Pull request'ы очень приветствуются! Если вы хотите внести свой вклад, пожалуйста, выполните следующие шаги. Хотя шаг 3 необязателен, он предпочтителен.
- Сделайте форк репозитория
- Откройте issue в нашем GitHub Issues Tracker. Следуйте шаблону issue, чтобы описать найденную ошибку или проблему безопасности. Обратите внимание, что запросы функций или вопросы следует размещать на нашем пользовательском форуме или в канале Slack.
- Создайте свою ветку функции (
git checkout -b 456-my-new-feature) - Зафиксируйте свои изменения (
git commit -am 'Added some feature') Предпочтительно «делать коммиты часто и регулярно» вместо объединения всех изменений в один коммит. - Отправьте свою ветку в свой форк на github (
git push origin 456-my-new-feature) - Создайте новый Pull Request
- Затем команда рассмотрит, обсудит и, надеюсь, объединит ваши изменения.

