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.
- Név: A csomag neve vagy azonosítója. Például:
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.
Javasolt érték a telepített feltételekhez
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áullibiothsm 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"
}
]
}