MacPorts

MacPorts is a project designed to bring many of the open-source unix tools to the Macintosh computers.

Installation

Make sure that Apple Xcode is installed on your computer. Then simply download and install the MacPorts package for your version of macOS. You may need to accept the Xcode license agreement as root before installing some packages through MacPorts using sudo xcodebuild -license accept.

Usage

MacPorts is a command-line tool. The commands need to be run as root or prepended by sudo. A detailed documentation can be found at guide.macports.org. If you prefer a graphical user interface, have a look at Pallet.

Command Description
port selfupdate Update MacPorts and get the latest listing of the repository
port search htop Search for htop in the repository
port info htop Show information for htop package
port contents htop List the files installed by the htop package
port install htop Install htop package and all its dependencies
port uninstall htop Uninstall htop package
port variants vim List available variants of package vim
port -v installed vim Show detailed info about installed package, including which variant
port installed List all installed packages
port echo requested List requested packages, not installed through dependencies
port outdated List installed packages for which an update is available
port upgrade htop Upgrade htop package to the latest version
port upgrade outdated Upgrade all outdated packages
port -f clean --all installed Remove downloaded temp files to free disk space
port -f uninstall inactive Remove old versions of installed packages
port select --list pip List all installed pip versions (similarly for python, ipython etc)
port select --set pip pip34 Select pip 3.4 as default version to start when running pip
port doctor Check for common issues in the user's environment (version 2.4+)
port reclaim Reclaim disk space (rm inactive ports and tmp files) (version 2.4+)

MacPorts installs the packages into /opt/local. You may need to add the folders to your PATH environment variables

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH
Compiling other software using MacPorts libraries

Because MacPorts does not write its libraries into the standard system folders, you may encounter error messages when trying to compile certain programs from source. Often one can use additional flags with ./configure to explicitly provide the paths to the header files and libraries. Another possible solution is to populate the shell environment variables with the relevant paths:

export LDFLAGS='-L/opt/local/lib'
export CPPFLAGS='-I/opt/local/include'
export LD_LIBRARY_PATH=/opt/local/lib
export LD_INCLUDE_PATH=/opt/local/include