Share via


Eszközfrissítési apt jegyzék

Az apt jegyzékfájl egy JSON-fájl, amely az apt frissítéskezelő által igényelt frissítési adatokat írja le. Ez a fájl a többi frissítéshez hasonlóan importálható IoT Hub eszközfrissítésbe.

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

Áttekintés

Amikor frissítésként egy apt jegyzékfájlt küld egy eszközfrissítési ügynöknek, 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 letöltését és telepítését, valamint azok függőségeit 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ékfájl 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: 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éke nem tartalmazhat egyenlőségjelet. 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 kívánt Debian-csomagverzió [epoch:]upstream_version[-debian_revision] formátumban, ahol az alapidőszak egy aláíratlan int, és upstream_version tartalmazhat alfanumerikus karaktereket, például ".","+","-" és "~". Egy számjegygel kell kezdődnie.

Megjegyzés

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

A és "version":"1.0.8-2" például "name":"iotedge" egyenértékű egy csomag paranccsal történő telepítésévelapt-get install iotedge=1.0.8-2

A Debian-csomagok verziószámával kapcsolatos további információkért tekintse meg a Debian-szabályzat 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 (=) határozhat meg egy adott verzióra vonatkozóan. 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 is fel kell vennie az aziot-edge apt jegyzékbe. További információ: IoT Edge frissítése.

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

Csomagok eltávolítása

A telepített csomagok eszközről való eltávolításához apt jegyzékfájlt is használhat. Egyetlen apt jegyzékfájl használható több csomag eltávolítására, hozzáadására és frissítésére.

Egy csomag eltávolításához adjon hozzá egy mínuszjelet (-) a csomag neve után. Az eltávolítani kívánt csomagokhoz nem szabad verziószámot megadni. Ha egy csomagot egy apt jegyzékfájlon keresztül távolít el, az 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ékfájl eltávolítja a "foo" csomagot a telepített eszköz(ek)ről.

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

Az apt jegyzék létrehozására vonatkozó irányelvek

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ékfájl egy jól formázott JSON-fájl.
  • Minden apt jegyzékfájlnak 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 az érthető legyen a forgatókönyvek szempontjából, é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ékfájlban 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 biztosan megfelelő legyen.
  • Egy csomag egy adott verziójának telepítésekor (például iotedge 1.0.9-1) ajánlott az apt jegyzékfájlban 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 megadva, mindig győződjön meg arról, hogy az apt jegyzék összesítő jellegű, hogy elkerülje az eszköz ismeretlen állapotba kerülését. Az összegző frissítés biztosítja, hogy az eszközök a kívánt verziójú csomagokkal rendelkezzenek, még akkor is, ha az eszköz kihagyott egy megfelelő frissítéstelepítést 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, de a foo csomagot 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