بيان apt لـ Device Update

بيان apt هو ملف JSON يصف تفاصيل التحديث المطلوبة من قبل معالج التحديث apt. يمكن استيراد هذا الملف إلى Device Update لـ IoT Hub تماما مثل أي تحديث آخر.

لمزيد من المعلومات، راجع استيراد تحديث إلى Device Update لـ IoT Hub.

نظرة عامة

عند تسليم بيان apt إلى عامل Device Update باعتباره تحديثاً، يقوم العامل بمعالجة البيان وتنفيذ العمليات اللازمة. تتضمن هذه العمليات تنزيل الحزم المحددة في ملف بيان apt وتبعياتها وتثبيتها من مستودع معين.

يدعم Device Update نوع تحديث apt ومعالج التحديث apt. يسمح هذا الدعم لعامل Device Update بتقييم حزم Debian المثبتة وتحديث الحزم الضرورية.

المخطط

ملف بيان apt هو ملف JSON مع إصدار مخطط.

{
    "name": "<name>",
    "version": "<version>",
    "packages": [
        {
            "name": "<package name>",
            "version": "<version specifier>"
        }
    ]
}

على سبيل المثال:

{
    "name": "contoso-iot-edge",
    "version": "1.0.0.0",
    "packages": [
        {
            "name" : "thermocontrol",
            "version" : "1.0.1"
        },
        {
            "name" : "tempreport",
            "version" : "2.0.0"
        }
    ]
}

يتضمن كل بيان apt الخصائص التالية:

  • Name: اسم بيان apt هذا. يمكن أن يكون هذا أي اسم أو معرّف ذي معنى لسيناريوهاتك. على سبيل المثال، ⁧contoso-iot-edge⁩.
  • Version: رقم إصدار لبيان apt هذا. على سبيل المثال، ⁧1.0.0.0⁩.
  • Packages: قائمة بالعناصر التي تحتوي على خصائص خاصة بالحزمة.
    • Name: اسم الحزمة أو معرّفها. على سبيل المثال، ⁧iotedge⁩.
    • Version: معايير الإصدار المطلوبة للحزمة. على سبيل المثال، ⁧1.0.8-2⁩. يجب ألا تحتوي قيمة الإصدار على علامة التساوي. إذا تم حذف الإصدار، فسيتم تثبيت أحدث إصدار متوفر من الحزمة المحددة.

يتوفر الدعم حالياً لرقم الإصدار الدقيق فقط. رقم الإصدار هو إصدار حزمة Debian المطلوب بالتنسيق [epoch:]upstream_version[-debian_revision]، حيث تكون الفترة عدداً صحيحاً قصيراً غير موقع ويمكن أن يتضمن upstream_version الأبجدية الرقمية والأحرف مثل "." و"+" و"-" و"~". يجب أن يبدأ برقم.

ملاحظة

'1.0.8' يساوي '1.0.8-0'

على سبيل المثال، "name":"iotedge" و"version":"1.0.8-2" يعادل تثبيت حزمة باستخدام الأمر apt-get install iotedge=1.0.8-2

لمزيد من المعلومات حول كيفية إصدار حزم Debian، راجع دليل نهج Debian

ملاحظة

يتجاهل مدير حزمة apt متطلبات تعيين الإصدار التي تحددها أي حزمة عند حل الحزم التابعة المطلوب تثبيتها تلقائياً. في حال لم تُوضَّح الإصدارات الحالية للحزم التابعة، سيُستخدم أحدثها، على الرغم من أن الحزمة نفسها قد تحدد متطلبات صارمة (=) على إصدار معين. يمكن أن يؤدي هذا الحل التلقائي إلى أخطاء تتعلق بتبعية غير منفّذة. معرفة المزيد

إذا كنت تحدّث إصدار معين من البرنامج الخفي لأمان Azure IoT Edge، فيجب عليك تضمين الإصدار المطلوب من الحزمة aziot-edge والحزمة aziot-identity-service التابعة لها في بيان apt. لمزيد من المعلومات، راجع كيفية تحديث IoT Edge.

يمكن استخدام بيان apt لتحديث عامل Device Update وتبعياته. وضِّح اسم عامل device update والإصدار المطلوب في بيان apt، كما تفعل مع أي حزمة أخرى. يمكن استيراد بيان apt هذا وتوزيعه من خلال مسار معالجة Device Update لـ IoT Hub.

إزالة الحزم

يمكنك أيضاً استخدام بيان apt لإزالة الحزم المثبتة من جهازك. يمكن استخدام بيان apt واحد لإزالة حزم متعددة وإضافتها وتحديثها.

لإزالة حزمة، أضف علامة طرح "-" بعد اسم الحزمة. يجب ألا تقم بتضمين رقم إصدار للحزم التي تقوم بإزالتها. لا تؤدي إزالة حزمة من خلال بيان apt إلى إزالة تبعياتها وتكويناتها.

على سبيل المثال:

{
    "name": "contoso-video",
    "version": "2.0.0.1",
    "packages": [
        {
            "name" : "foo-"
        }
    ]
}

سيقوم بيان apt هذا بإزالة الحزمة "foo" من الجهاز (الأجهزة) التي تم توزيعها عليها.

المعايير المثبتة لبيان apt هي <name>-<version>، حيث <name> هو اسم بيان apt، و<version> هو إصدار بيان apt. على سبيل المثال، ⁧contoso-iot-edge-1.0.0.0⁩.

إرشادات حول كيفية إنشاء بيان apt

أثناء إنشاء بيان apt، توجد بعض الإرشادات التي يجب وضعها في الاعتبار:

  • تأكد دائماً من أن ملف بيان apt هو ملف json منسق بشكل جيد.
  • يجب أن يكون لكل بيان apt إصدار فريد. حاول التوصل إلى نظام موحد لزيادة إصدار بيان apt، بحيث يلائم السيناريوهات الخاصة بك ويمكن اتباعه بسهولة.
  • عندما يتعلق الأمر بالحالة المطلوبة لكل حزمة فردية، حدد الاسم والإصدار الدقيقين للحزمة التي ترغب في تثبيتها على جهازك. تحقق دائماً من صحة القيم بمقارنتها بمستودع الحزمة الذي تنوي استخدامه باعتباره مصدراً للحزمة.
  • تأكد من إدراج الحزم في بيان apt بالترتيب المطلوب لتثبيتها/إزالتها.
  • تحقق دائماً من صحة تثبيت الحزم على جهاز اختبار لضمان الحصول على النتيجة المطلوبة.
  • عند تثبيت إصدار معين من حزمة ما (على سبيل المثال، iotedge 1.0.9-1)، من الأفضل أن يتضمن بيان apt الإصدارات الحالية من الحزم التابعة التي سيتم تثبيتها (على سبيل المثال، libiothsm 1.0.9-1)
  • على الرغم من أن ذلك غير إلزامي، عليك التأكد دائماً من أن بيان apt تراكمي لتجنب إدخال جهازك في حالة غير معروفة. سيضمن التحديث التراكمي أن أجهزتك لديها الإصدار المطلوب من كل حزمة تعنيك، حتى إذا تجاوز الجهاز توزيع تحديث apt بسبب فشل التثبيت أو عدم الاتصال بالإنترنت

على سبيل المثال:

بيان apt أساسي

{
    "name": "contoso-iot-edge",
    "version": "1.0",
    "packages": [
        {
            "name": "foo",
            "version": "1.0.1"
        }
    ]
}

تحديث Bad

يتضمن هذا التحديث حزمة bar وليس حزمة foo.

{
    "name": "contoso-iot-edge",
    "version": "2.0",
    "packages": [
        {
            "name": "bar",
            "version": "3.0.2"
        }
    ]
}

تحديث Good

يتضمن هذا التحديث حزمة foo ويتضمن أيضاً حزمة bar.

{
    "name": "contoso-iot-edge",
    "version": "2.0",
    "packages": [
        {
            "name": "foo",
            "version": "1.0.1"
        },
        {
            "name": "bar",
            "version": "3.0.2"
        }
    ]
}

الخطوات التالية

استيراد تحديث إلى Device Update