Chapter 3. Installing

Design Considerations

Power Manager is distributed as a standard Apple Installer meta-package. The package includes sub-packages divided mainly by function and, where required, destination.

As part of the move from version three to version four, we worked on reducing the range of locations Power Manager installs files to. We made the leap from installing according to UNIX tradition, to following Apple's example.

Installation according to UNIX tradition lead us to install files in the hidden folder structure /usr/. This location makes sense in UNIX and linux environments but started to cause niggles every so often in the macOS environment. Files in this location are ignored by macOS's Spotlight; applications and tools are not automatically found and assimilated into help directories, Automator collections, and available bundle registers.

Guided by Apple's own behaviour, their method suggests installing supporting files and tools in the local Library's Application Support folder. This folder is maintained during upgrades and does not suffer from being ignored.

The move away from UNIX traditions is not easy. System administrators and those coming from other variants of UNIX understand /usr/ well. Conventions exist and best practice has been established to help manage these kinds of environments in business critical operations.

We expect our gains from following Apple's method will surpass the costs of moving away from UNIX traditions. As macOS is updated, Power Manager's files and folders should be better respected, and Spotlight will find and highlight our supporting Automator actions, help files, and tools.

With version four's installer, we made greater efforts to reduce the use of post installer scripts. We could not avoid these entirely but their use has been limited. As with version three, we continue to document what each script does and why.

Power Manager installs all its files in the Library folders. Most files are stored in the Application Support folder, with a few placed in the appropriate specialised folders. These specialised folders include Frameworks, PreferencePanes, and LaunchDaemons.