Wenn ein Apple-Paket installiert ist, wird auf der Maschine ein Beleg generiert. Metapakete generieren mehrere Belege. VMware AirWatch Admin Assistant fügt die Namen und Versionen dieser Belege einem Receipts-Array in der pkginfo-Datei für ein Paket hinzu.

Im Folgenden finden Sie ein Receipts-Array für die Avid LE QuickTime-Codecs, Version 2.3.4.

        <key>receipts</key>
        <array>
        
          <dict>
           <key>filename</key> <string>AvidCodecsLE.pkg</string> <key>installed_size</key> <integer>1188</integer> <key>name</key> <string>AvidCodecsLE</string> <key>packageid</key> <string>com.avid.avidcodecsle</string> <key>version</key> <string>2.3.4</string> 
          </dict>
        
        </array>
      

Wenn Munki das Receipts-Array verwendet, um den Installationsstatus zu ermitteln, werden Vorhandensein und Version der einzelnen Belege im Array überprüft. Wenn ein Beleg fehlt oder eine niedrigere Versionsnummer als die für diesen Zugang im Receipts-Array angegebene Version aufweist, wird das Element als nicht installiert betrachtet. Nur wenn jeder Beleg vorhanden ist und alle Versionen mit denen in der pkginfo (oder höher) identisch sind, wird das Element als installiert betrachtet. Um Probleme zu beheben, verwenden Sie das pkgutil-Tool zur Untersuchung der installierten Belege.

        # pkgutil --pkg-info com.avid.avidcodecsle
        No receipt for 'com.avid.avidcodecsle' found at '/'.
      

In diesem Fall wurde der Beleg für die Avid LE QuickTime-Codecs auf diesem Computer nicht gefunden. Eine häufige Komplikation bei Belegen ist, dass bei vielen Metapaketen die Installationslogik nur eine Teilmenge der Unterpakete enthält, die installiert werden. In der Regel enthält die Belegliste einen Beleg für jedes Unterpaket in einem Metapaket (und benötigt diese Informationen, wenn Munki aufgefordert wird, das Softwareelement basierend auf Paketbelegen zu entfernen). Wenn es jedoch normal ist und erwartet wird, dass nicht jedes Unterpaket tatsächlich installiert wird, markiert Munki das Objekt fortlaufend als nicht installiert und bietet an, es immer wieder zu installieren. Eine Lösung für dieses Problem besteht darin, einen optionalen Schlüssel mit dem Wert „true“ zu den Belegen hinzuzufügen, die optional installiert sind. Munki wird diese Belege dann nicht berücksichtigen, wenn der Installationsstatus ermittelt wird.

        <key>receipts</key>
        <array>
        
          <dict>
           <key>filename</key> <string>mandatory.pkg</string> <key>installed_size</key> <integer>1188</integer> <key>name</key> <string>Mandatory</string> <key>packageid</key> <string>com.foo.mandatory</string> <key>version</key> <string>1.0</string> 
          </dict>
          <dict>
           <key>filename</key> <string>optional.pkg</string> <key>installed_size</key> <integer>1188</integer> <key>name</key> <string>Optional</string> <key>optional</key> <true/> <key>packageid</key> <string>com.foo.optional</string> <key>version</key> <string>1.0</string> 
          </dict>
        
        </array>
      

Eine weitere Lösung für diese Situation besteht darin, das installs-Array mit den Listenelementen bereitzustellen, die vom Paket installiert werden. Munki kann die Informationen zum Installieren des installs-Arrays anstelle der Belege verwenden, um den Installationsstatus zu ermitteln.