Skip to content
Greg Neagle edited this page Apr 26, 2018 · 4 revisions

What is a nopkg?

A nopkg is a pkginfo item that isn't associated with a .pkg, .dmg, or .mobileconfig "installer." Typically nopkgs will have an installcheck_script to see if the item is "installed" or not, and then will run a postinstall_script if the item is not "installed."

How does a nopkg differ from a payload-free .pkg?

A payload-free .pkg will leave a receipt (as a normal .pkg would, too) indicating it ran/installed, and it can be deployed via methods other than Munki. So if you can see yourself running a script once and/or using it in non-Munki contexts, you may want to use a payload-free .pkg.

A nopkg, with every Munki run on the client, will keep checking to see if the "installed" state has changed and then will run the script again if necessary.

How do you make a nopkg?

One way to make one is to create an installcheck_script, a postinstall_script, and an uninstall_script, and then run this command:

makepkginfo --nopkg --name=NAMEOFYOURNOPKG \
  --pkgvers=1.0 --installcheck_script=/PATH/TO/installcheck_script \
  --postinstall_script=/PATH/TO/postinstall_script \
  --uninstall_script=/PATH/TO/uninstall_script \
  --unattended_install > NAMEOFYOURNOPKG.pkginfo

You can then copy that .pkginfo into your Munki repo's pkgsinfo directory and run makecatalogs.

Can I use an installs array instead of an installcheck_script?

Yes. Munki will use its normal logic to determine whether an item is installed or not, and that logic could be an installcheck_script or an installs array.

Do I need an uninstall_script?

Only if you need to be able to undo what the "install" of the nopkg does. If you don't, you can leave off the uninstall_script. Make sure to mark the item with uninstallable = true.

What are some examples of uses for a nopkg?

Here are a few examples:


Timed SuppressUserNotification

Controlling SSH Access


Munki 4

Munki 3

Managed Software Center

Command-line Tools

Munki configuration




Advanced Munki

Related tasks


Product-specific notes

Legacy Documentation

Clone this wiki locally
You can’t perform that action at this time.