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.
-
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 [ 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.
Javasolt érték a telepített feltételekhez
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áullibiothsm 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"
}
]
}