Sdílet prostřednictvím


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 služby Device Update pro IoT Hub stejně jako jakoukoli jinou aktualizaci.

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

Přehled

Když se manifest apt doručí agentu služby Device Update jako aktualizace, 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 handler. Tato podpora umožňuje agentu aktualizace zařízení vyhodnotit nainstalované balíčky Debian a aktualizovat potřebné balíčky.

Schéma

Soubor manifestu apt je soubor JSON se schématem se správou 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 manifestu apt. Může to být libovolný název nebo ID, které jsou pro vaše scénáře smysluplné. Například, contoso-iot-edge.
  • Version: Číslo verze tohoto manifestu apt. 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.

Aktuálně 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 unsigned int a upstream_version může obsahovat alfanumerické znaky a znaky jako ".","+","-" a "~". Měl by začínat číslicí.

Poznámka

Hodnota 1.0.8 se rovná hodnotě 1.0.8-0.

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

Další informace o správě verzí balíčků Debian 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 při automatickém řešení závislých balíčků, které se mají nainstalovat. Pokud nejsou zadány explicitní verze závislých balíčků, budou používat nejnovější, i když samotný balíček může určovat striktní požadavek (=) na 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 procesu démon 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 služby Device Update a jeho závislostí je možné použít manifest apt. Uveďte název agenta aktualizace zařízení a požadovanou verzi v manifestu apt stejně jako u jakéhokoli jiného balíčku. Tento manifest apt se pak dá importovat a nasadit prostřednictvím aktualizace zařízení pro IoT Hub kanál.

Odebírání balíčků

K odebrání nainstalovaných balíčků ze zařízení můžete použít také manifest apt. Jeden manifest apt 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 manifest apt 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í manifestu apt je potřeba mít na paměti několik pokynů:

  • Vždy se ujistěte, že manifest apt je soubor JSON ve správném formátu.
  • Každý manifest apt by měl mít jedinečnou verzi. Zkuste přijít se standardizovanou metodologií pro zvýšení verze manifestu apt, aby to dávalo smysl pro vaše scénáře a bylo možné ho 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 pro balíček.
  • Ujistěte se, že jsou balíčky v manifestu apt uvedené v pořadí, v jakém se mají nainstalovat nebo odebrat.
  • Vždy ověřte instalaci balíčků na testovacím zařízení, abyste měli jistotu, že výsledek je 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 se zabránilo tomu, že vaše zařízení přejde do neznámého stavu. Kumulativní aktualizace zajistí, že vaše zařízení budou mít požadovanou verzi všech balíčků, na kterých vám záleží, i když zařízení vynechalo nasazení apt aktualizace kvůli selhání instalace nebo jeho offline režimu.

Příklad:

Základní manifest apt

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

Chybná aktualizace

Tato aktualizace obsahuje 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 obsahuje balíček foo a také bar package.

{
    "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