Questions or comments, please email mccune.jeff@gmail.com or iChat AIM "mccune jeff".
This package provider allows the user to specificy a single file source using any string the open-uri class can handle.
Mac OS X requires Installer.app Packages be installed from a HFS+ or AFP file system, making it difficult to easily deploy packages.
This provider allows puppet to open a single file, the DMG Disk Image, and process all Apple Installer.app packages contained within the DMG.
Example:
package {"Firefox-1.5.0.7-1-ub":
ensure => installed,
provider => pkgdmg,
source => "http://archive/osx/pkgs/apps/Firefox-1.5.0.7-1-ub.pkg.dmg"
}
Packages can easily be created for this provider:
hdiutil create -srcFolder /tmp/Foobar.pkg{,.dmg}
This provider does not use /Library/Receipts like the "apple" provider does. When a "pkgdmg" object is installed, a cookie is created in /var/db, named:
/var/db/.puppet_pkgdmg_installed_#{name}
This cookie is used to determine the status of the package.
Note: The DMG itself is considered to be the package, NOT any pkg's contained within the DMG. An example of this is Xcode, which contains a single .mpkg and many packages inside the DMG. This provider manages the single DMG object and doesn't check the multiple packages installed from that single DMG.