Aracılığıyla paylaş


Cihaz Güncelleştirme apt bildirimi

apt bildirimi, apt güncelleştirme işleyicisi için gereken güncelleştirme ayrıntılarını açıklayan bir JSON dosyasıdır. Bu dosya, diğer güncelleştirmelerde olduğu gibi IoT Hub için Cihaz Güncelleştirmesi'ne aktarılabilir.

Daha fazla bilgi için bkz. IoT Hub için Cihaz Güncelleştirmesi'ne güncelleştirme aktarma.

Genel Bakış

Cihaz Güncelleştirmesi aracısına bir güncelleştirme olarak bir apt bildirimi teslim edildiğinde, aracı bildirimi işler ve gerekli işlemleri yürütür. Bu işlemler, apt bildirim dosyasında belirtilen paketleri ve bunların bağımlılıklarını belirlenen bir depodan indirmeyi ve yüklemeyi içerir.

Cihaz Güncelleştirmesi, apt updateType ve apt güncelleştirme işleyicisini destekler. Bu destek, Cihaz Güncelleştirme aracısının yüklü Debian paketlerini değerlendirmesine ve gerekli paketleri güncelleştirmesine olanak tanır.

Şema

Apt bildirim dosyası, sürümü değiştirilmiş şemaya sahip bir JSON dosyasıdır.

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

Örneğin:

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

Her apt bildirimi aşağıdaki özellikleri içerir:

  • Ad: Bu apt bildiriminin adı. Bu, senaryolarınız için anlamlı olan ad veya kimlik olabilir. Örneğin, contoso-iot-edge.
  • Sürüm: Bu apt Bildirimi için bir sürüm numarası. Örneğin, 1.0.0.0.
  • Paketler: Pakete özgü özellikleri içeren nesnelerin listesi.
    • Ad: Paketin adı veya kimliği. Örneğin, iotedge.
    • Sürüm: Paket için istenen sürüm ölçütleri. Örneğin, 1.0.8-2. Sürüm değeri eşittir işareti içermemelidir. Sürüm atlanırsa, belirtilen paketin kullanılabilir en son sürümü yüklenir.

Şu anda yalnızca tam sürüm numarası desteklenmektedir. Sürüm numarası , [epoch:]upstream_version[-debian_revision] biçiminde istenen Debian paketi sürümüdür; burada dönem imzalanmamış bir int'dir ve upstream_version alfasayısalları ve ".","+","-" ve "~" gibi karakterleri içerebilir. Bir rakamla başlamalıdır.

Not

'1.0.8', '1.0.8-0' değerine eşittir

Örneğin ve "version":"1.0.8-2" komutu "name":"iotedge" kullanarak bir paket yüklemeye eşdeğerdirapt-get install iotedge=1.0.8-2

Debian paketlerinin nasıl sürümlendiği hakkında daha fazla bilgi için bkz. Debian ilke kılavuzu

Not

apt paket yöneticisi, yüklenecek bağımlı paketler otomatik olarak çözümlendiğinde bir paket tarafından verilen sürüm oluşturma gereksinimlerini yoksayar. Bağımlı paketlerin açık sürümleri verilmediği sürece, paketin kendisi belirli bir sürümde katı bir gereksinim (=) belirtse bile en son sürümü kullanırlar. Bu otomatik çözüm, karşılanmayan bağımlılıkla ilgili hatalara yol açabilir. Daha Fazla Bilgi

Azure IoT Edge güvenlik daemon'unun belirli bir sürümünü güncelleştiriyorsanız, paketin istenen sürümünü aziot-edge ve bağımlı aziot-identity-service paketini apt bildiriminize eklemeniz gerekir. Daha fazla bilgi için bkz. IoT Edge güncelleştirme.

Cihaz Güncelleştirme aracısını ve bağımlılıklarını güncelleştirmek için bir apt bildirimi kullanılabilir. Cihaz güncelleştirme aracısı adını ve istenen sürümü, diğer paketlerde yaptığınız gibi apt bildiriminde listeleyin. Bu bildirim daha sonra IoT Hub işlem hattı için Cihaz Güncelleştirmesi aracılığıyla içeri aktarılabilir ve dağıtılabilir.

Paketleri kaldırma

Yüklü paketleri cihazınızdan kaldırmak için bir apt bildirimi de kullanabilirsiniz. Birden çok paketi kaldırmak, eklemek ve güncelleştirmek için tek bir apt bildirimi kullanılabilir.

Paketi kaldırmak için paket adının arkasına eksi işareti "-" ekleyin. Kaldırdığınız paketler için sürüm numarası eklememelisiniz. Bir paketin bir apt bildirimi aracılığıyla kaldırılması, paketin bağımlılıklarını ve yapılandırmalarını kaldırmaz.

Örneğin:

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

Bu apt bildirimi, dağıtılan cihazlardan "foo" paketini kaldırır.

Apt bildirimi için yüklenen ölçütler, <name>-<version> apt <name> Bildiriminin adı ve <version> apt bildiriminin sürümüdür. Örneğin, contoso-iot-edge-1.0.0.0.

Apt bildirimi oluşturma yönergeleri

apt bildirimini oluştururken göz önünde bulundurulması gereken bazı yönergeler vardır:

  • Her zaman apt bildiriminin iyi biçimlendirilmiş bir json dosyası olduğundan emin olun.
  • Her apt bildiriminin benzersiz bir sürümü olmalıdır. Senaryolarınız için anlamlı olması ve kolayca takip edilebilmesi için apt bildiriminin sürümünü artırmak için standartlaştırılmış bir metodoloji bulmaya çalışın.
  • Her bir paketin istenen durumu söz konusu olduğunda, cihazınıza yüklemek istediğiniz paketin tam adını ve sürümünü belirtin. Değerleri her zaman paketin kaynağı olarak kullanmak istediğiniz paket deposuna göre doğrulayın.
  • apt bildirimindeki paketlerin yüklenmesi/kaldırılması gereken sırayla listelenmiş olduğundan emin olun.
  • Sonucun istendiğinden emin olmak için her zaman bir test cihazına paketlerin yüklenmesini doğrulayın.
  • Bir paketin belirli bir sürümünü yüklerken (örneğin, iotedge 1.0.9-1), yüklenecek bağımlı paketlerin açık sürümlerini apt bildiriminde de kullanmak en iyi yöntemdir (örneğin, libiothsm 1.0.9-1)
  • Zorunlu olmasa da cihazınızı bilinmeyen bir duruma getirmekten kaçınmak için her zaman apt bildiriminizin kümülatif olduğundan emin olun. Toplu güncelleştirme, cihaz yükleme hatası nedeniyle bir apt güncelleştirme dağıtımını atlamış veya çevrimdışına alınmış olsa bile, cihazlarınızın önemsediğiniz her paketin istenen sürümüne sahip olmasını sağlar

Örneğin:

Temel apt bildirimi

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

Hatalı güncelleştirme

Bu güncelleştirme çubuk paketini içerir ancak foo paketini içermez.

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

İyi güncelleştirme

Bu güncelleştirme foo paketini ve ayrıca çubuk paketini içerir.

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

Sonraki adımlar

Bir güncelleştirmeyi Cihaz Güncelleştirmesi'ne aktarma