Manifest apt pro aktualizaci zařízení

Manifest apt je soubor JSON, který popisuje podrobnosti o aktualizaci vyžadované obslužnou rutinou aktualizace apt. Tento soubor je možné importovat do aktualizace zařízení pro IoT Hub stejně jako jakékoli jiné aktualizace.

Další informace najdete v tématu Import aktualizace do služby Device Update pro IoT Hub.

Přehled

Když agenti aktualizace zařízení doručí apt manifest jako aktualizaci, agent ho zpracuje a provede potřebné operace. Mezi tyto operace patří stažení a instalace balíčků zadaných v souboru manifestu apt a jejich závislostí z určeného úložiště.

Device Update podporuje apt updateType a apt update obslužnou rutinu. Tato podpora umožňuje agentu Device Update vyhodnotit nainstalované balíčky Debianu a aktualizovat potřebné balíčky.

Schéma

Soubor manifestu apt je soubor JSON se schématem s verzí.

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

Příklad:

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

Každý manifest apt obsahuje následující vlastnosti:

  • Název: Název tohoto apt manifestu. Může se jednat o libovolný název nebo ID, které jsou pro vaše scénáře smysluplné. Například, contoso-iot-edge.
  • Verze: Číslo verze tohoto apt manifestu. Například, 1.0.0.0.
  • Balíčky: Seznam objektů obsahujících vlastnosti specifické pro balíček.
    • Název: Název nebo ID balíčku. Například, iotedge.
    • Verze: Kritéria požadované verze balíčku. Například, 1.0.8-2. Hodnota verze by neměla obsahovat rovnítko. Pokud je verze vynechána, nainstaluje se nejnovější dostupná verze zadaného balíčku.

V současné době je podporováno pouze přesné číslo verze. Číslo verze je požadovaná verze balíčku Debian ve formátu [epoch:]upstream_version[-debian_revision], kde epocha je znak bez znaménka a upstream_version může obsahovat alfanumerické znaky a znaky jako ".","+","-" a "~". Měla by začínat číslicí.

Poznámka

1.0.8 se rovná 1.0.8-0.

Například "name":"iotedge" a "version":"1.0.8-2" je ekvivalentem instalace balíčku pomocí příkazu . apt-get install iotedge=1.0.8-2

Další informace o tom, jak jsou balíčky Debianu ve verzích, najdete v příručce k zásadám Debianu.

Poznámka

Správce balíčků apt ignoruje požadavky na správu verzí dané balíčkem, když se automaticky překládají závislé balíčky, které se mají nainstalovat. Pokud nejsou uvedeny explicitní verze závislých balíčků, budou používat nejnovější, i když samotný balíček může určit striktní požadavek (=) pro danou verzi. Toto automatické řešení může vést k chybám souvisejícím s nesplněnou závislostí. Další informace

Pokud aktualizujete konkrétní verzi démona zabezpečení Azure IoT Edge, měli byste do manifestu aziot-edge apt zahrnout požadovanou verzi balíčku a jeho závislý aziot-identity-service balíček. Další informace najdete v tématu Postup aktualizace IoT Edge.

K aktualizaci agenta aktualizace zařízení a jeho závislostí je možné použít manifest apt. V manifestu apt uveďte název agenta aktualizace zařízení a požadovanou verzi, stejně jako u jakéhokoli jiného balíčku. Tento manifest apt je pak možné importovat a nasadit prostřednictvím kanálu Device Update for IoT Hub.

Odebírání balíčků

K odebrání nainstalovaných balíčků ze zařízení můžete použít také manifest apt. Jeden apt manifest lze použít k odebrání, přidání a aktualizaci více balíčků.

Pokud chcete balíček odebrat, přidejte za název balíčku znaménko minus "-". Pro balíčky, které odebíráte, byste neměli uvádět číslo verze. Odebráním balíčku prostřednictvím manifestu apt nedojde k odebrání jeho závislostí a konfigurací.

Příklad:

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

Tento apt manifest odebere balíček "foo" ze zařízení, na která je nasazený.

Instalovaným kritériem pro manifest apt je <name>-<version> , kde <name> je název manifestu apt a <version> je verze manifestu apt. Například, contoso-iot-edge-1.0.0.0.

Pokyny k vytvoření manifestu apt

Při vytváření apt manifestu je potřeba mít na paměti několik pokynů:

  • Vždy se ujistěte, že manifest apt je správně vytvořený soubor JSON.
  • Každý manifest apt by měl mít jedinečnou verzi. Zkuste přijít se standardizovanou metodologií pro zvýšení verze apt manifestu, aby to dávalo smysl pro vaše scénáře a bylo možné ji snadno sledovat.
  • Pokud jde o požadovaný stav každého jednotlivého balíčku, zadejte přesný název a verzi balíčku, který chcete nainstalovat na své zařízení. Vždy ověřte hodnoty v úložišti balíčku, které chcete použít jako zdroj balíčku.
  • Ujistěte se, že balíčky v manifestu apt jsou uvedené v pořadí, v jakém by měly být nainstalovány nebo odebrány.
  • Vždy ověřte instalaci balíčků na testovacím zařízení, abyste měli jistotu, že je výsledek požadovaný.
  • Při instalaci konkrétní verze balíčku (například iotedge 1.0.9-1) je osvědčeným postupem mít v manifestu apt také explicitní verze závislých balíčků, libiothsm 1.0.9-1které se mají nainstalovat (například ).
  • I když to není nutné, vždy se ujistěte, že je váš apt manifest kumulativní, aby nedošlo k tomu, že vaše zařízení přejde do neznámého stavu. Kumulativní aktualizace zajistí, aby vaše zařízení měla požadovanou verzi všech balíčků, na kterých vám záleží, i když zařízení vynechalo nasazení aktualizace APT kvůli selhání instalace nebo jeho přepnutí do offline režimu.

Příklad:

Manifest základního aptu

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

Chybná aktualizace

Tato aktualizace zahrnuje balíček pruhů, ale ne balíček foo.

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

Dobrá aktualizace

Tato aktualizace zahrnuje balíček foo a obsahuje také balíček pruhů.

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

Další kroky

Import aktualizace do služby Device Update