If you’re coming to macOS from Linux, the app installation process can feel surprisingly different, almost too simple. There’s no apt, no dnf, no Flatpaks, no AppImages, no PPAs, and rarely any system-wide modifications. Instead, macOS uses a unique and surprisingly elegant system: the application bundle.
This tutorial explains exactly how application installation and removal works on macOS using the open-source 3D CAD application FreeCAD as the example. By the end, you’ll know how to install, uninstall, and completely clean up an app on macOS, with zero guesswork.
Why This Tutorial Exists
Many Linux users assume macOS installs apps the same way: through package managers, shared libraries, and compression formats that extract deep into the filesystem. But macOS apps behave more like self-contained AppImages, only with a cleaner user experience.
This guide is designed to:
- Explain what actually happens when you “install” an app on macOS
- Walk through installing FreeCAD from a
.dmgfile - Show how to cleanly uninstall an app (and optionally remove settings)
- Clarify how macOS stores app data
- Remove misconceptions about “drag-and-drop” installs
Application Bundles Explained
On macOS, an “application” is actually a single folder, called an app bundle, that appears to the user as one icon ending in .app.
For example:
FreeCAD.app
Inside this bundle is everything the app needs: binaries, libraries, icons, Qt frameworks, Python, resources, etc.
macOS apps:
- Don’t scatter files around system directories
- Don’t install shared libraries
- Don’t modify
/usror/lib - Don’t require a command like
dpkg -iorrpm -i
This means most apps are completely self-contained, more like AppImages than Flatpaks, and this greatly simplifies installation and removal.
Installing an App from a .dmg File
(Example: FreeCAD)
A .dmg file on macOS behaves like a virtual disk. Think of it as a mountable installer container.
Step 1: Download FreeCAD.dmg
You download it just like any other file. Nothing is installed yet.
Step 2: Double-click the .dmg
macOS mounts it and opens a window showing something like:
- The app itself
- A shortcut to the Applications folder
- Sometimes a README or icon graphic
This is the “installer interface.”
Step 3: Drag FreeCAD.app into the Applications folder
This action copies the app bundle into:
/Applications
That’s the entire installation. No scripts, no package managers, no dependency resolution.
Step 4: Eject the .dmg
Either click the eject icon in Finder or right-click → Eject.
Then you can delete the .dmg file. It serves no further purpose.
Where Does macOS Store App Data?
macOS keeps apps in /Applications, but user-specific preferences and configuration files live elsewhere, inside your user Library:
~/Library/
The most relevant locations are:
- Preferences (small plist files)
~/Library/Preferences/ - Application Support (larger config, plugins, models, data)
~/Library/Application Support/ - Caches
~/Library/Caches/
Apps do not put anything into system-wide directories unless they come from .pkg installers or the Mac App Store (which we are not covering here).
Uninstalling an App on macOS
(FreeCAD Example)
Here’s where macOS truly shines. To uninstall most apps:
Step 1: Delete the app from /Applications
Simply drag:
/Applications/FreeCAD.app
to the Trash or right-click → Move to Trash.
This removes the entire application bundle.
Most of the time, this is all you need to do.
Optional: Clean Removal of Settings & Support Files
If you want a completely clean system (such as when testing versions or starting fresh), you can remove FreeCAD’s supporting files.
Typical FreeCAD data is stored in:
Preferences
~/Library/Preferences/org.freecad.FreeCAD.plist
Application Support
~/Library/Application Support/FreeCAD/
Caches
~/Library/Caches/FreeCAD/
You can safely delete these folders if you want to fully reset or remove the application.
Note:
The user Library folder is hidden by default. To access it, open Finder and press:
Shift + Command + G
Then enter:
~/Library
How Does This Compare to Linux?
For Linux users, here’s how macOS app bundles relate to common packaging formats:
| macOS App Bundle | Closest Linux Equivalent | Notes |
|---|---|---|
.app bundle | AppImage | Both are self-contained |
.dmg installer | AppImage download + mount | A .dmg is just a mountable container |
| Drag to uninstall | Remove an AppImage file | Almost identical simplicity |
| Optional leftover configs | ~/.config, ~/.local/share | Same idea as Linux dotfolders |
| No sandbox by default | Flatpak sandbox | macOS apps rely on OS-level permissions instead |
macOS apps feel simpler but encourage developers to bundle everything within the .app itself.
When macOS Apps Don’t Use the .dmg Method
Most third-party standalone apps use .dmg.
However, two other installation types exist:
1. Mac App Store apps
Installed and removed through the App Store interface.
2. .pkg installers
Used for system-level apps (e.g., drivers, virtualization tools). These behave more like traditional Linux packages and may install system services. Uninstalling requires a vendor-provided uninstall tool.
FreeCAD does not use these, so you don’t need to worry about them for this tutorial.
Summary: What a New Mac User Should Know
- macOS apps are self-contained bundles inside a single
.appfile. - Installing from a
.dmgis simply dragging the.appinto/Applications. - The
.dmgitself is just a delivery mechanism and can be deleted afterward. - Uninstalling is as easy as deleting the
.appfile. - Optional settings live in your user Library and can be removed for a clean uninstall.
- There are no dependency issues and no system-level clutter for
.dmgapps.
For Linux users, this process will feel very similar to working with AppImages, just more polished and fully integrated into the macOS interface. macOS makes both installing and uninstalling applications extremely easy, and once you get used to the drag-and-drop workflow, managing software becomes effortless.
If you’re new to macOS, be sure to check out the macOS applications I use on my Mac Studio.