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. , MacPorts has over 30,900 ports and best-effort support can be sourced from the community. Implementation MacPorts installs software on top of the operating system, providing newer versions of pre-installed packages or software that is not included in macOS. This is in contrast to other package management systems, such as APT and DNF, that are part of the operating system. For this reason, MacPorts is sometimes known as an overlay distribution. Other examples include Fink and Homebrew. In contrast to the FreeBSD Ports Collection, which installs its software in /usr/local, MacPorts stores its data in /opt/local by default, although this can be modified when compiling MacPorts from source. The reason given for this change is that other packaging systems could overwrite what MacPorts has installed, or vice versa. A dedicated directory helps to overcome this problem. Fink follows a similar approach, installing its data into /sw by default. Binary archives Buildbots are used to build ports in advance so that users do not have to compile the package locally. The result of this is known as a binary archive, and it helps to reduce the time required for installation. Similar to Homebrew, MacPorts takes the approach of having different builders for different operating system versions and architectures. However, sometimes it might be necessary to build from source locally if the binaries fail to build or the port's license does not allow binary distribution. If a binary could not be built, this would be noted on the MacPorts website for that individual port and the maintainer would be alerted. It is also possible to view recent buildbot events on a dedicated activity page. Binary archives are created locally whenever a user builds a port from source. They can also be manually created by running sudo port archive packagename. Portfiles MacPorts stores the instructions required to build a port in a port description file, otherwise known as a portfile. This is similar to how the AUR use shell scripts known as a PKGBUILD, or how Homebrew use ruby scripts as a formula. The portfiles are complete TCL programs with access to the TCL interpreter. They make use of simple key