Home » Features >> Creating Software packages for Mac
srch-icn
 

Creating Software Packages for Mac Computers

For every software that you wish to deploy using Endpoint Central MSP, a package should be created. The package contains the details of the software application, its installation location along with the installation and uninstallation commands. The packages are created once and can be used to deploy software to any number of computers later. The software application, which needs to be deployed to target computers should be uploaded to a particular location. This should be accessible via 'HTTP share'.

Note: Installables can be uploaded only in .dmg format. If you wanted to upload the installable, which is in .pkg/.mpkg / .app format or upload more than one installable, then it should be compressed and uploaded in .zip,  .tar, .gz, .bz2, .tgz, .tbz or .dmg format.

 

This document will explain about various steps involved in creating a software package for computers running Mac operating system. Refer the following options, before creating a software package:

Creating Software Package with Single File

 Creating a package to install with a single installable file is very easy. Follow the steps mentioned below:

  1. Click Software Deployment tab

  2. Select Packages

  3. Click Add Package and choose Mac

  4. Specify a the name and license type of the package.

  5. Click Installation tab

  6. Click Browse, under Upload Files upload the installable (software application) that needs to be deployed to the target computers. The installable should be in .pkg/.mpkg or .app or .dmg format.

  7. Pre-deployment and/or post-deployment activities can be executed by running a custom script. If you write a script of your own, then it is recommended to test it before it is added to the software package.

  8. Note: Scripts can be uploaded in .sh (shell script), .scpt(Apple Script), .pl(Perl Script), .py(Python Scripts) formats.

You have successfully created a package with a single installation file.

Creating Software Package with Multiple Files

The steps to create a package with multiple files, is the same like creating a package with single installation file. Some software applications like Office, would require more than one installation file, in such cases administrators can upload the installable files in .zip,  .tar, .gz, .bz2, .tgz, .tbz or .dmg format.  These files will be extracted to identify the .pkg/.mpkg or .app files.  

Using Installation Commands

Administrators can use installation commands if they want to customize the installation or change the default installation location. If installation command is not specified, then the software application will be installed using the default installation commands. The following are examples, of how commands can be used to change the default installation location:

For pkg: installer -pkg "/Volumes/Wireshark/Wireshark 1.10.0 Intel 64.pkg"  -target "/Volumes" .pkg"="" -target="" "/volumes/drive1" 
For app: ditto "/Volumes/Appcleaner/appcleaner.app"  "/TargetPath/appcleaner.app"

Note: If you are uploading the installable in compressed format, then you can specify only the installable's name in the installation command.

Uninstalling a Software

A software can be removed by specifying the appropriate installation location. If there is more than one file that needs to be removed, then you can add more than one location or use a script for uninstallation.  Uninstallation command can be specified under, "Advanced Options". If you write a script of your own, then it is recommended to test it, before it is added to the software package.

Note: Scripts can be uploaded in .sh (shell script), .scpt(Apple Script), .pl(Perl Script), .py(Python Scripts) formats.

Removing Software for All Users

Remove a software for all users by using the command as mentioned below:
"$allusers/Library/Application Support/Google/Chrome"  

The above is a sample command to remove "Google Chrome" for all users.

Removing Software for Specific Users

Remove a software for a specific users by using the command as mentioned below:
"/Users/user1/Library/Application Support/Google/Chrome"  
The above is a sample command to remove "Google Chrome" for a specific user 'user1'.

Removing Software for the Currently Logged-in User

Remove a software for the currently logged on users by using the command as mentioned below:
$currentusers/Library/Application Support/Google/Chrome

Removing Software with Preferences

A software can be removed with its preferences. If there is more than one file that needs to be removed, then you can specify more than one location of the file/folder which needs to be removed or use a script for uninstallation.  The shell script below is an example for an uninstallation script, used to remove a software application with its dependent files from multiple computers. Most vendors provide the script for uninstallation, if you write a script of your own, then it is recommended to test it before it is added to the software package.


Sample Script to Remove Office and its dependent files/folders from multiple computers

#!/bin/sh
osascript -e 'tell application "Microsoft Database Daemon" to quit'
rm -R '/Applications/Microsoft Communicator.app/'
rm -R '/Applications/Microsoft Messenger.app/'
rm -R '/Applications/Microsoft Office 2011/'
rm -R '/Applications/Remote Desktop Connection.app/'
rm -R '/Library/Application Support/Microsoft/'
rm -R '/Library/Automator/*Excel*'
rm -R '/Library/Automator/*Office*'
rm -R '/Library/Automator/*Outlook*'
rm -R '/Library/Automator/*PowerPoint*'
rm -R '/Library/Automator/*Word*'
rm -R '/Library/Automator/Add New Sheet to Workbooks.action'
rm -R '/Library/Automator/Create List from Data in Workbook.action'
rm -R '/Library/Automator/Create Table from Data in Workbook.action'
rm -R '/Library/Automator/Get Parent Presentations of Slides.action'
rm -R '/Library/Automator/Get Parent Workbooks.action'
rm -R '/Library/Automator/Set Document Settings.action'
rm -R '/Library/Fonts/Microsoft/'
rm -R '/Library/Internet Plug-Ins/*SharePoint*'
rm -R '/Library/LaunchDaemons/*Microsoft*'
rm -R '/Library/Preferences/*Microsoft*'
rm -R '/Library/PrivilegedHelperTools/*Microsoft*'
OFFICERECEIPTS=$(pkgutil --pkgs=com.microsoft.office*)
for ARECEIPT in $OFFICERECEIPTS
do
   pkgutil --forget $ARECEIPT
done