Package creation on OS X uses the PackageMaker utility installed as part of the XCode development suite ( on the OSX Client CD). Packages can be installed as part of the machine build process, or later using Apple Remote Desktop. They are generally capable of silent installs, cause very little disruption to users and can be tested prior to installation in a lab situation.
Packages are created in one of two ways, either by using a ‘snapshot’ process, which monitors the installation process of an application and creates a package from the payload, or standard packages which contain program units from software already installed.
Payload Package
A standard package is created when a software application is portable, that being when it installs within the /Applications folder and can be moved between machines and still function – with no files stored outside of these folders. Applications which are portable traditionally offer a ‘drag and drop’ installation system, during which a window is displayed after the .dmg file is opened and the application is dragged to the /Applications folder. Example applications that are portable are Cyberduck & Office 2008.
To begin the package creation process start PackageMaker by typing the name into spotlight search.
The next stage is to enter general details for the package, namely a package name, and a description. Ensure the ‘system volume’ checkbox is selected to ensure the system drive is used for the package installation.
At this point you should install the package into the local applications folder using the suggested method. The exact installation instructions will depend on the application being installed, but in general it should be a case of dragging the executable into the applications folder.
Ensure that the ‘Install’ and ‘Destination’ fields are complete as shown above, (n.b its intentional that the Destination field should contain /Applications)
The build process will proceed through a number of stages and result in screens as shown below. The package will be saved into the area selected on the previous page and can be migrated as required to the a package deployment share.
A snapshot package is used when the application to be package comes in the form of an OSX installer – the application to be installed isn’t portable in that it potentially installs files in multiple locations within the OSX system – in addition the installer isn’t transparent and doesn’t provide indication of where the files are installed.
When the installation has completed, click the ‘STOP’ button in package Maker to stop the monitoring phase – at which point Package Maker will pause while creating the package Manifest, a process that could take from a few seconds to several hours depending on the size and complexity of the package.
Once the manifest creation is complete list of the files and folders that have been modified during the installation will be displayed.
For now click ‘Save’ to save the manifest but as you gain experience you should aim to remove any files & folders from the list which have no link to the package – this will ensure that erroneous items such as configuration changes aren’t included .
From the main Package Maker screen edit the ‘snapshot’ entry in the contents window and name it ‘I Can Animate’ – substituting this for the name of the real package.
Click the ‘File’ -> ‘save’ menu selection and provide a suitable name for the package. Once completed, click the ‘Project -> Build’ Item, provide a suitable name and click save. Package Maker will proceed to create the package based on the manifest identified during the snapshot process.
I hope this was of some help, there are a lot of options and different methods for package creation. Which method you pick will depend on the application and your experience. This article I hope serves as a starting point for anyone looking to use OSX packaging in a enterprise environment.
All my articles, including non OSX ones can be found on my
BLOG. Please drop by and if you have any suggestions or errors I'd love to hear from you. If this article is helpful please comment or mark it as such!
Comments (0)