Megosztás a következőn keresztül:


Eszközfrissítési apt jegyzék

Az apt jegyzékfájl egy JSON-fájl, amely az apt update handler által igényelt frissítési adatokat írja le. Ez a fájl importálható az Eszközfrissítésbe, IoT Hub ugyanúgy, mint bármely más frissítés.

További információ: Frissítés importálása az eszközfrissítésbe IoT Hub.

Áttekintés

Amikor egy apt jegyzékfájl frissítésként egy eszközfrissítési ügynökhöz érkezik, az ügynök feldolgozza a jegyzékfájlt, és végrehajtja a szükséges műveleteket. Ezek a műveletek magukban foglalják az apt jegyzékfájlban megadott csomagok és függőségeik letöltését és telepítését egy kijelölt adattárból.

Az Eszközfrissítés támogatja az apt updateType és az apt frissítéskezelőt. Ez a támogatás lehetővé teszi, hogy az eszközfrissítési ügynök kiértékelje a telepített Debian-csomagokat, és frissítse a szükséges csomagokat.

Séma

Az apt jegyzékfájl egy verziószámozott sémával rendelkező JSON-fájl.

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

Például:

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

Minden apt jegyzék tartalmazza a következő tulajdonságokat:

  • Név: Az apt jegyzék neve. Ez bármilyen név vagy azonosító lehet, amely a forgatókönyvek szempontjából jelentőséggel bír. Például: contoso-iot-edge.
  • Verzió: A találó jegyzékfájl verziószáma. Például: 1.0.0.0.
  • Csomagok: A csomagspecifikus tulajdonságokat tartalmazó objektumok listája.
    • Név: A csomag neve vagy azonosítója. Például: iotedge.
    • Verzió: A csomag kívánt verziófeltétele. Például: 1.0.8-2. A verzióértéknek nem szabad egyenlőségjelet tartalmaznia. Ha a verzió nincs megadva, a megadott csomag legújabb elérhető verziója lesz telepítve.

Jelenleg csak a pontos verziószám támogatott. A verziószám a [ epoch:]upstream_version[-debian_revision] formátumú Debian-csomag kívánt verziója, ahol az epoch egy aláíratlan int, és upstream_version tartalmazhat alfanumerikát és karaktereket, például ".","+","-" és "~" karaktereket. Egy számjegygel kell kezdődnie.

Megjegyzés

Az "1.0.8" értéke "1.0.8-0"

Például és "name":"iotedge""version":"1.0.8-2" egyenértékű a csomag parancs használatával történő telepítésével apt-get install iotedge=1.0.8-2

A Debian-csomagok verziószámozottságával kapcsolatos további információkért lásd a Debian szabályzatának kézikönyvét.

Megjegyzés

Az apt csomagkezelő figyelmen kívül hagyja a csomag által megadott verziószámozási követelményeket, amikor a telepítendő függő csomagokat automatikusan feloldják. Ha a függő csomagok explicit verziói nincsenek megadva, akkor a legújabb verziót fogják használni, annak ellenére, hogy maga a csomag szigorú követelményt (=) adhat meg egy adott verzióhoz. Ez az automatikus megoldás a nem megfelelő függőségekkel kapcsolatos hibákhoz vezethet. További információ

Ha az Azure IoT Edge biztonsági démon egy adott verzióját frissíti, akkor a csomag kívánt verzióját és annak függő aziot-identity-service csomagját kell szerepeltetnie az aziot-edge apt jegyzékben. További információ: A IoT Edge frissítése.

Az apt jegyzékek az eszközfrissítési ügynök és függőségei frissítésére használhatók. Listázhatja az eszközfrissítési ügynök nevét és a kívánt verziót az apt jegyzékben, ahogyan bármely más csomag esetében tenné. Ez az apt-jegyzék ezután importálható és üzembe helyezhető az eszközfrissítésen keresztül IoT Hub folyamathoz.

Csomagok eltávolítása

Apt jegyzékfájl használatával is eltávolíthatja a telepített csomagokat az eszközről. Egyetlen apt jegyzék használható több csomag eltávolítására, hozzáadására és frissítésére.

A csomagok eltávolításához a csomag neve után adjon hozzá egy "-" mínuszjelet. Az eltávolítani kívánt csomagok verziószámát nem szabad megadnia. A csomagok apt jegyzéken keresztüli eltávolítása nem távolítja el a függőségeit és konfigurációit.

Például:

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

Ez az apt jegyzék eltávolítja a "foo" csomagot a telepített eszköz(ek)ről.

Az apt jegyzék telepített feltételei az <name>-<version><name> apt jegyzék neve és <version> az apt jegyzék verziója. Például: contoso-iot-edge-1.0.0.0.

Apt-jegyzék létrehozásának irányelvei

Az apt jegyzék létrehozásakor figyelembe kell venni néhány útmutatást:

  • Mindig győződjön meg arról, hogy az apt jegyzék jól formázott json-fájl.
  • Minden apt jegyzéknek egyedi verzióval kell rendelkeznie. Próbáljon meg egy szabványosított módszertant létrehozni az apt jegyzék verziójának növeléséhez, hogy értelmes legyen a forgatókönyvekhez, és könnyen követhető legyen.
  • Ha az egyes csomagok kívánt állapotáról van szó, adja meg annak a csomagnak a pontos nevét és verzióját, amelyet telepíteni szeretne az eszközére. Mindig ellenőrizze az értékeket a csomag forrásaként használni kívánt csomagadattárban.
  • Győződjön meg arról, hogy az apt jegyzékben szereplő csomagok a telepítésük/eltávolításuk sorrendjében vannak felsorolva.
  • Mindig ellenőrizze a csomagok telepítését egy teszteszközön, hogy az eredmény megfelelő legyen.
  • Egy csomag adott verziójának telepítésekor (például iotedge 1.0.9-1) ajánlott az apt jegyzékben a telepíteni kívánt függő csomagok explicit verzióit is megadni (például libiothsm 1.0.9-1)
  • Bár nincs meghatalmazás, mindig győződjön meg arról, hogy az apt jegyzék összegző, hogy elkerülje az eszköz ismeretlen állapotba kerülését. A kumulatív frissítés biztosítja, hogy az eszközök minden fontos csomag kívánt verziójával rendelkezzenek, még akkor is, ha az eszköz kihagyott egy találó frissítés üzembe helyezését a telepítés hibája vagy offline állapotba helyezése miatt

Például:

Alapszintű apt jegyzék

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

Hibás frissítés

Ez a frissítés tartalmazza a sávcsomagot, a foo csomagot azonban nem.

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

Jó frissítés

Ez a frissítés tartalmazza a foo-csomagot, valamint a sávcsomagot is.

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

Következő lépések

Frissítés importálása az eszközfrissítésbe