eli5 Mac/Linux App Installation vs Windows Application Installation difference


This is something I’ve always wondered. Whevenever I install apps on my Mac it has just been a simple drag to the Application folder.

With Windows however, it’s always a series of steps that an installer has to do to make the application run.

Wonder why this is so. What is exactly happening when I’m installing something on a Windows vs a Mac. Windows just makes installation seem like a complicated process

In: Technology

All three do the same thing when installing software.

Windows and Linux show you what’s happening.

Apple hides it.

Windows asks you to confirm or change default install settings, Linux assumes you’re ok with default settings if you don’t explicitly specify overrides.

So while it’s a lot easier to just get started on linux, you need to read the manual (often literally) if you want to do something that isn’t the default behaviour.

Installing an application basically involves making a folder in the appropriate OS location, copying the program’s files into it, and setting some per-user settings (which the OS controls and swaps around for different users that are logged in). Different operating systems handle this is different ways.

In Windows this is handled by an installer program that makes the folder in the “program files” folder, then extracts the files from it’s data area into there, and finally asks Windows to set the settings in the registry. This installer program requires you to press “next” after each part because… reasons?

In MacOS the program and all it’s files appear like one file and you copy the whole folder into the “applications” folder. (To see what’s really inside the folder you can right-click an application and click “show package contents”). Settings are placed in the library when the program is first run.

In Linux you download the source code, find it requires a bunch of other helper programs to be installed first, download those too, compile them all, and put everything into the right locations on the hard drive. Luckily there are package manager programs that handle all this for you.

Mac hides everything because Apple is like that – square peg in the square hole and don’t you dare question anything that happens behind the scenes.

Windows installers show varying degrees of what is happening, usually through a progress bar with a label or a small text box with an installation log scrolling under it.

Linux package managers make little effort to hide anything. [This is what installing a package using APT looks like.](https://i.stack.imgur.com/dfgzb.png)

macOS has the concept of a bundle. A bundle is a special folder, with the contents organized in a special way. When macOS shows a bundle it knows where to find the icon in the bundle, when you double click on it, instead of opening the folder, it knows to run a program in the bundle. So for simple applications, you can just drag the app bundle to the applications folder and it’ll all work.

Windows applications tend to have installers because there are more steps. The application needs to be copied to the “c:program files” folder, an icon needs to be created on the start menu, file associations need to be setup. There is no reason an installer needs to do this, it could be left up to the user.

It should be pointed out that many maOS do use installers. If they are multiple parts, or need background services started, then they may use an installer.