
zoneminder v1.38.4
ZoneMinder هو تطبيق برمجي مجاني ومفتوح المصدر لكاميرات المراقبة التلفزيونية المطوّر لنظام لينكس ويدعم كاميرات 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 الخاص بـ Isaac Connor
- 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. ومع ذلك، فإن دعم cambozola معطل افتراضياً. لإصلاح ذلك، أضف هذا إلى سكريبت التعبئة:
./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes
لاحظ أن zmeditconfigdata.sh يُقصد استدعاؤه من مجلد البناء الجذر، قبل تشغيل cmake أو configure.
Docker
Docker هو نظام لتشغيل التطبيقات داخل حاويات معزولة. سيعمل ZoneMinder، وخادم الويب ZM، باستخدام Dockerfile الموجود في هذا المستودع. ومع ذلك، لا تزال هناك حاجة إلى عمل لضمان أن ميزات ZM الرئيسية تعمل بشكل صحيح ويتم توثيقها.
نموذج المساهمة والتطوير
- الكود المصدري مستضاف على GitHub
- أبلغ عن المشكلات في GitHub Issues
- الأسئلة/طلبات الميزات في Slack أو المنتديات
نرحب جداً بطلبات السحب! إذا كنت ترغب في المساهمة، يرجى اتباع الخطوات التالية. على الرغم من أن الخطوة 3 اختيارية، إلا أنها مفضلة.
- قم بعمل Fork للمستودع
- افتح issue في متعقب GitHub Issues الخاص بنا. اتبع قالب الـ issue لوصف الخطأ أو المشكلة الأمنية التي وجدتها. يرجى ملاحظة أن طلبات الميزات أو الأسئلة يجب نشرها في منتدى المستخدمين أو قناة Slack الخاصة بنا.
- أنشئ فرع الميزة الخاص بك (
git checkout -b 456-my-new-feature) - قم بعمل commit لتغييراتك (
git commit -am 'Added some feature') من المستحسن أن تقوم بعمل 'commit مبكراً وبشكل متكرر' بدلاً من تجميع جميع التغييرات في commit واحد. - ادفع فرعك إلى fork الخاص بك على github (
git push origin 456-my-new-feature) - أنشئ طلب سحب جديداً
- سيقوم الفريق بعد ذلك بمراجعة تغييراتك ومناقشتها، ونأمل دمجها.

