2.6.4 / 14 November 2020
|Written in||Tcl and C|
|Operating system||macOS, Darwin|
|Platform||IA-32, x86-64, PowerPC, ARM|
|Type||Package management system|
MacPorts, formerly called DarwinPorts, is a package management system that simplifies the installation of software on the macOS and Darwin operating systems. It is an open-source software project to simplify installation of other open source software. Similar in aim and function to Fink and the BSD ports collections, DarwinPorts was started in 2002 as part of the OpenDarwin project, with the involvement of a number of Apple Inc. employees including Landon Fuller, Kevin Van Vechten, and Jordan Hubbard.
MacPorts allows the installation of a number of packages by entering the command
sudo port install packagename in the Terminal, which will then download, compile if necessary, and install the requested software, while also installing any required dependencies automatically. Installed packages can be updated with the command
sudo port upgrade outdated. An official GUI application called Pallet is also available.
Version 1.0 was released on April 28, 2005. In December 2005 the project reached a milestone, surpassing 3000 ports. At that time, package installation involved the source code being downloaded and compiled on the end user's machine. Version 2.0, released in 2011, introduced support for prebuilt binary archives; by default ports are installed using the prebuilt binary archive if available, and are built from source otherwise. As of August 2019 , MacPorts has over 21,600 ports.
MacPorts was hosted on Mac OS Forge, an open source hosting service created and maintained by Apple Inc. for third-party projects not supported by Apple. When Apple closed Mac OS Forge in 2016, the project moved to GitHub. Best-effort support can be sourced from the community.
MacPorts supports universal binaries for PowerPC, Intel-based, and Apple silicon versions of macOS, but migrating from a PowerPC installation of MacPorts to a version on an Intel Mac requires reinstalling all installed ports.