Modern operating systems provide you with easy methods to set up new applications.

These include automated installer packages as well as commands that install many bits of software at once.

But what actually happens when you run that installer or issue that command?

windows-mac-linux-installation

Windows Installer packages (MSI) add to this by providing standardized services such as uninstalls.

you could inspect the contents of EXEs or MSIs byopening the archive with 7-Zip.

When using a sophisticated tool like InstallShield to create installer packages, app developers can customize the installation.

anatomy software package 7zip contents

With InstallShield, the app files and other customizations get wrapped up in asetup.exefile.

Let’s review what happens during this process.

Let’s take a look at installing software on macOS.

anatomy software package installshield registry

Apple macOS

Windows installers have a lot going on under the hood.

Sometimes the download even provides you with a “Drag here!”

Let’s dive into the APP bundle as well as its counterpart the PKG installer.

anatomy software package installshield install

macOS Package Structure

The APP file on the surfaceisin fact simpler than Windows for two main reasons.

Firstly, it’s a standard folder.

The only difference is that it ends with a “.APP” suffix.

mac app folders

Secondly, APP files demand that absolutely everything the program requires is included.

There’s no worry about missing dependencies with these types of installers.

an system icon).

mac pkg structure

In contrast, the PKG format is a combination of a Windows-likeinstaller with a Unix-like structure.

The 7-Zip app will also open a PKG file, which is compressed inxarformat.

Within is one or morePayloadfiles, which is also an archive.

mac app copy

In the example below, I’ve used document converter,Pandoc.

It includes a binary in/usr/local/binand some documentation in/usr/local/share/man.

How do these things actually get in place?

mac app installed

We’ll take a look at how each of these actually installs to your Mac.

I’ve used the Windows version of 7-Zip to illustrate this, rather than the command-line only Linux version.

Remember, everything needed to initiate the program is self-contained.

mac pkg install

The only difference from a standard drag-and-drop is that the “Info.plist” file gets registered with the system.

Ubuntu and Fedora Linux

Ah,DEB versus RPM.

One of the great flame wars, bested only by the likes ofviversusemacsor KDE versus GNOME.

deb main control

Yet these formats are more similar than they are different.

Let’s take a look.

But it does not provide the metadata, at least not inthebinarypackage.

Linux