Complex Packaging

Asifahmed
New Contributor III

Just curious to know what are the most complex packages are there for macOS and we can easily build those package using by composer? I am looking for their name and why it is complex and which method I need to build it? Like SAP GUI is one of them what I can say any other please?

16 REPLIES 16

sdagley
Esteemed Contributor II

@Asifahmed Composer isn't really intended to create "complex" packages. If you need a tool that will do that you should look at scripting the pkgbuild tool directly, or try the Packages tool: http://s.sudre.free.fr/Software/Packages/about.html

Asifahmed
New Contributor III

Can you please give me few examples where I cant use composer and I nee to use Packages or pkgutil utility?

sdagley
Esteemed Contributor II

@Asifahmed That's going to be up to evaluate and decide

jhalvorson
Valued Contributor

I use Packages when the vendor provides a .pkg and along with a customized file (.txt, .plist, .xml) or certificate.

I've used these articles as templates for how I deploy VMware Horizon Client, F5 BIG-IP Edge, Broadcom Symantec DLP... and many more.

https://derflounder.wordpress.com/2016/01/14/creating-an-office-2016-15-18-0-installer/


https://derflounder.wordpress.com/2013/11/03/re-packaging-installer-packages-with-packages/

 

Tribruin
Valued Contributor II

You are asking a very open ended question. There are assuredly tens (hundreds) of thousands of packages when you consider organization that build (or repackage) their own packages. Packages can be very simple with a single script to very complex, with mulitple payloads and multiple scripts and ability to use an xml to specify certain components to install. 

If you are looking for packaging help, I would recommend this book:
https://books.apple.com/us/book/packaging-for-apple-administrators/id1173928620

by Armin Briegel (ScriptingOSX). 

If you are having a specific packaging issue, go ahead and ask a detailed question. 

Asifahmed
New Contributor III

Can I do something in this way that if MS Excel is installed then MS Word will be installed or else no, I mean one app installation is dependent on another app installation result.

You could either use Smart Group logic within Jamf to determine if Excel should be installed.  Otherwise creating a custom package that includes preflight script to determine if Excel should be installed.

In this example, I would recommend leaning towards Jamf and smart groups.  Every app will have it's own situation and different ways to approach it.

sdagley
Esteemed Contributor II

Is the Office apps reference just an example, or are you looking to create a custom installer package for Office apps to install them in a different manner than the Microsoft provided installer? If the latter that's probably something you really do not want to do. Can you describe the problem you're trying to solve?  (and tagging @pbowden since he may be interested in this discussion)

Asifahmed
New Contributor III

Yes, I am looking for custom installer rather than MS provides us the installer. If one app is installed successfully(Excel) then other app like MS Word will be installed. I just want to know the process to build this custom installer so that if needed I can apply this concept for different app also if applicable for that one.

sdagley
Esteemed Contributor II

Are you actually seeing a problem where the standard Microsoft installer successfully installs one app but then fails to install another one? That seems like a problem you shouldn't need to solve for yourself but should raise with Microsoft.

Asifahmed
New Contributor III

No such problem with installation, but I need to customized the installation. So looking for a generic way to do this. If any way is there then it will be good. Or else I need to do straight forward way and then use postinstall script to remove the app not needed.

sdagley
Esteemed Contributor II

If you're looking to install only a subset of the apps in the Office Suite installer you really should be following the advice @dmccluskey provided in the "ChoicesXML file is not working for deployment" thread (https://community.jamf.com/t5/jamf-pro/choicesxml-file-is-not-working-for-deployment/m-p/290472/high...) you created.

His example specifically shows how to prevent installation of OneNote, but the "Excluding apps" section of the https://learn.microsoft.com/en-us/deployoffice/mac/preferences-office article he linked to covers settings for all of the other apps in the suite installer.

Asifahmed
New Contributor III

That is OK, I did it and worked. I have few other requirements and I am trying to gather those info. I have few clients and they do have different requirements. Selective installation is OK and working fine, now I am looking for conditional approach if possible. 

sdagley
Esteemed Contributor II

In addition to conditional you need to consider automatable because interactive tools like Composer or Packages aren't practical if you're talking about creating customized installations of multiple applications.

The Packaging for Apple Administrators book that @Tribruin recommended discusses using the pkgbuild tool. You should take a look at AutoPkg (and the AutoPkgr GUI for it) which is an automation tool that can be set up to download any updates for applications of interest and can then create a customized installation .pkg with the configurations you, or your clients want to apply. Googling AutoPkg and AutoPkgr will turn up a number of tutorials.

Asifahmed
New Contributor III

I was never been able to build a package using by pkgutil tool from scratch, I used AutoPKGr before to download the .pkg only , but did not see any such option for configuration. I need to check it then as you suggested.

sdagley
Esteemed Contributor II

The actions AutoPkg takes are controlled by recipe files, you would create a recipe file to apply your specific customizations.