The Caching Server in OS X is a little bit of a black box. But, it’s not all that complicated, compared to some things in the IT world. I’d previously written about command line management of the service itself here. When you enable the caching service, the server registers itself as a valid Caching Server.…
Quick Terminal tip:
Make a copy of the
/Library/Desktop Pictures/Solid Colors/ directory in your home folder and delete all dark and medium gray color files from the copy.
In “Terminal” > “Preferences” > “Profiles” choose the “Basic” profile. Drag your copy of the
Solid Colors folder from the Finder on to area next to the “Image” label where it says “no Background Image”.
If you already have Terminal windows using this profile they should apply the color immediately, and any other terminal window you open will get a random background from the colors in your folder.
If you prefer light text on dark background you can remove the lighter colors from the folder instead, or make your own set of background images. Enjoy!
With AutoPkg and Munki you are juggling property list files all the time. Sometimes using a text editor is the best choice, other times you want a graphical representation of the property list. Xcode can be used for that, but launching Xcode for a humble plist always seems overkill… and slow. My preferred tool of choice for this is FatCat Software’s PlistEdit Pro.
AutoPkg recipes have a well defined format. Creating them from scratch in an editor can be boring and error prone. PlistEdit Pro offers a feature called ‘Structure definitions’ which… well… allows you to define the structure of a property list. Best thing is you can create your own, though the documentation on their website is a bit outdated.
If you want to do this, download this definition file and put it in
~/Library/Application Support/PlistEdit Pro/Structure Definitions. Then restart PlistEdit Pro. Finally, go to “Preferences > Definitions”, select the “AutoPkg Recipe” in the list and add ‘recipe’ as a file extension.
Now when you open a
.recipe file, it will know to use this definition. This will help with some steps of managing recipes. For example when you create a new element in the
Process array, it will automatically be set to be a dict and pre-filled with a
Processor string element and a
Arguments array element. It will also warn when you try to delete mandatory elements.
When you create a new empty file and change the definition from the ‘Definition’ menu, it will pre-fill your new file with the right keys for a recipe. Enjoy!
I was puzzling out part of this a few days ago. Very good write Up!
The underlying problem is that by default HFS+ (the file system of OS X) is “case preserving, but case-insensitive.” That means the file system will remember wether you named a file or directory “README.TXT” “ReadMe.txt” or “readme.TXT” and preserve that case, but using either of these will point to the same file.
This may be confusing in Terminal. Since most other Unix and Linux file-system are case-sensitive (i.e. README.TXT and readme.txt are different files) most shells are, too. So on OS X in
bash you can write:
$ cd ~/DESKTOP
and it will actually work. Though if you then print the working directory, you get
$ pwd /Users/armin/DESKTOP
which doesn’t hurt anything really, since
DESKTOP are the same. But it does hurt our OCD, right?
While I have not yet found a way to change this behaviour directly, one thing you can change is wether tab-completion is case-sensitive or not. Since the underlying filesystem is insensitive, there really is no reason tab-completion should be. This way you can type
/sy[tab]/l[tab]/cor[tab] and it will expand to
Tab-completion is not just for laziness, but also a way to ensure you are typing a path correctly, especially since tab-completion will escape spaces and other nasty characters automatically.
To make tab-completion in
bash case-insensitive put this in your
.inputrc (create if necessary)
# Ignore case while completing set completion-ignore-case on
and then close all Terminal windows and start a new one.
Some very interesting news on a new OS X installer tool:
quickpkg with a few additions:
You can now add pre- and postinstall scripts or an entire folder of scripts.
--ownership parameter that will be passed straight through to
pkgbuild. Usually the default
recommended will be what you want, but it is there if you need it.
There is now a
--output parameter that gives you more control over the location and name of the resulting package.
And as a neat trick, you can easily create a droplet for
quickpkg with Automator by following the same instructions as for
munkiimport in this article.
An pratical guide on installing and managing Office 2016 for Mac. Includes – common questions, best practices, bugs/fixes, preferences, etc.
Previously, I posted how to ensure SSH access is enabled with Munki. Another favored (though sorely neglected by Apple) tool to remote control Macs is obviously Apple Remote Desktop.
Note: Apple Remote Desktop access is called ‘Remote Management’ in the Sharing Preference Pane. This also includes access for the Screen Sharing application.
We will use a
nopkg setup to control, so we need one script to check wether the configuration needs to be fixed (
ard_installcheck.sh) and a postinstall script to actually do the fixing (
The install check script first tests wether ardagent process is running, wether the “All Users” access option is turned on, and finally wether our user for remote access (
clientadmin in this example, modify for your needs) is in the privileged group.
installcheck has to return
1 when everything is ok. (The actuall install does not have to run so the install is aborted.) If any of the settings aren’t as they should be the script returns
0 (installation needs to proceed) and Munki will run the
postinstall script uses the
kickstart tool to setup ARD the way we want it. (In this example we enable access for two admin accounts
localadmin, modify to what you need.)
The run makepkginfo to build the pkginfo which tells Munki what to do:
makepkginfo --name=EnableARD \ --displayname="Enable Apple Remote Desktop" \ --pkgvers=1.0 \ --nopkg \ --installcheck_script=ard_installcheck.sh \ --postinstall_script=ard_postinstall.sh \ --unattended-install > EnableARD.pkginfo
ard_postinstall.sh need to be in the current working directory, or give the path to the scripts.)
Then copy the pkginfo file to the
pkginfo folder on the munki repository (or a subfolder), add
EnableARD to a manifest and run
managedsoftwareupdate on a client that has that manifest configured.
Even if a user changes the “Remote Management” setting, the next time Munki runs in the background it should notice the change and set them back with the