
zoneminder v1.38.4
ZoneMinder 是一款免费、开源的闭路电视软件应用程序,专为 Linux 开发,支持 IP、USB 和模拟摄像头。
ZoneMinder
ZoneMinder 的所有文档现已在 https://zoneminder.readthedocs.org 在线提供。
概述
ZoneMinder 是一组集成应用程序,提供完整的监控解决方案,可对连接到基于 Linux 的机器上的任何 CCTV 或安防摄像头进行采集、分析、录制和监控。它设计用于支持 Video For Linux (V4L) 接口的发行版,并已使用连接到 BTTV 卡的各种 USB 摄像头进行过测试,同时支持大多数 IP 网络摄像头。
联系开发团队
在我们的 github 论坛中创建 issue 之前,请阅读我们的发帖规则: https://github.com/ZoneMinder/ZoneMinder/wiki/Github-Posting-Rules
我们的 Dockerfile 已迁移
请在此处针对 ZoneMinder Dockerfile 提交 issue: https://github.com/ZoneMinder/zmdockerfiles
安装方法
从软件包仓库安装
这是将 ZoneMinder 安装到系统中的推荐方法。ZoneMinder 为以下发行版维护软件包:
- Ubuntu 通过 Isaac Connor 的 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。 只要出现一次“Oops”,你就会后悔在生产服务器上做这项工作。
最后,如果你想从 master 分支构建开发快照,建议你先使用 ZoneMinder 的官方发行版构建自己的软件包。这将有助于确定你遇到的任何问题是构建过程引起的,还是 master 分支中的新问题。
请访问我们的 ReadtheDocs 站点 获取针对特定发行版的说明。
软件包维护者
ZoneMinder 的许多配置变量默认值无法在构建时通过 autotools 或 cmake 进行配置。 新增了一个名为 zmeditconfigdata.sh 的工具,允许软件包维护者操作 ConfigData.pm 中存储的任何变量,而无需修补源码。
例如,假设我创建了一个新的 ZoneMinder 软件包,其中包含 cambozola javascript 文件。 但默认情况下,cambozola 支持是关闭的。 要解决此问题,请在打包脚本中添加以下内容:
./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes
请注意,zmeditconfigdata.sh 应在根构建目录中、运行 cmake 或 configure 之前调用。
Docker
Docker 是一种在隔离容器内运行应用程序的系统。ZoneMinder 和 ZM Web 服务器将使用本仓库中包含的 Dockerfile 运行。不过,仍需做一些工作来确保 ZM 的主要功能正常工作 并有相应文档。
贡献模式与开发
- 源码托管在 GitHub
- 在 GitHub Issues 报告问题
- 在 Slack 或论坛 中提问/提交功能请求
非常欢迎 Pull Request!如果你想贡献代码,请按照以下步骤操作。虽然第 3 步是可选的,但建议执行。
- 复刻(Fork)该仓库
- 在我们的 GitHub Issues Tracker 中打开一个 issue。 请按照 issue 模板描述你发现的 bug 或安全问题。请注意,功能 请求或问题应发布在我们的用户论坛或 Slack 频道中。
- 创建你的功能分支 (
git checkout -b 456-my-new-feature) - 提交你的更改 (
git commit -am 'Added some feature') 建议“频繁尽早提交”,而不是把所有更改 集中到一次提交中。 - 将你的分支推送到你在 GitHub 上的复刻仓库 (
git push origin 456-my-new-feature) - 创建新的 Pull Request
- 团队将进行审查、讨论,并希望能合并你的更改。

