Macports Cheat sheet
Updating Macports and the ports tree:
5 min readJan 25, 2022
sudo port sync
# Updates the ports tree,
# so the list of ports, which
# are available to be installed
sudo port selfupdate
# Updates macports itself, and
# the ports tree.
sudo port selfupdate --no-sync
# Updates only macports, not
# the ports tree.
Searching for ports:
port list
# List ports available for install.
port list a_port_name
# Prints the version of a_port_name
# ready to be installed.
port search a_port_name
# Search for a_port_name,
# anywhere in the ports names,
# or descriptions.
# Globs like * which means
# anything, and ? which
# means only one
# character, can be used.
port search --regex a_port_name
# Allows the usage of regular expression,
# in the search of the port name, and
# port description.
# An example of a regular expression, is:
# .* which is 0 or more characters.
port search --name a_port_name
# Search only the ports names,
# for a_port_name,
# where a_port_name
# can be anywhere in
# the ports names.
# --regex can also be used.
port variants a_port_name
# A port might have variants, which
# is basically the port can be
# compiled using different options.
# This command, will list the variants,
# so the compilation options for
# a port.
# + means enabled, [+] means enabled
# by default, - means disabled, and nothing
# means the option is viable.
port installed
# List all the ports, installed on the
# system, even if not being used,
# maybe for example, you are using
# a different version, or,
# you just deactivated, the port.
port installed requested
# List all the installed ports, which
# were explicitly requested.
port installed unrequested
# List all the installed ports, which
# were not explicitly requested.
port installed leaves
# List all the installed ports, which
# were not requested, and which do
# not have a dependent.
port installed active
# List all the installed ports,
# that are set to active,
# so that can be used.
port installed inactive
# List all the installed ports,
# which are set to inactive,
# so which cannot be used.
port outdated
# Lists the packages, which have
# a newer version.
# Before using this command,
# make sure to update the ports
# tree, using for example:
# port sync.
Ports information:
port info a_port_name
# Provides information about a
# port, for example: its description,
# its homepage, its library
# dependencies...
port notes a_port_name
# Additional information about
# a port, left by the port
# maintainer, as in
# configuration notes.
port contents a_port_name
# List the files,
# installed by a port,
# that you have
# installed.
port deps a_port_name
# The port requirements,
# so the ports, which the
# named port,
# depends upon.
port rdeps a_port_name
# Recursively list, the named port
# requirements.
port dependents a_port_name
# The ports, which depend on a
# port, installed on your system.
port rdependents a_port_name
# Recursively list, the ports,
# which depend on the named port.
port echo depends:a_port_name
# The ports, which depends on a
# port, not installed on your system.
port livecheck a_port_name
# Checks, if there is a more recent
# version, of the named port, on the
# developer website, and displays
# a message accordingly.
Installing/Upgrading:
sudo port install a_port_name
# Installs the named port. You can
# install multiple ports, at the same
# time.
sudo port install nginx -mp4 +substitution
# Installs a variant of the nginx port,
# deselecting mp4 streaming support,
# and enabling text substitution.
sudo port upgrade outdated
# Upgrade all outdated ports,
# and their dependencies.
sudo port upgrade a_port_name
# Upgrade only the named port,
# and its dependencies.
Activating/Deactivating:
sudo port activate a_port_name
# Activates a port, in other words,
# makes it accessible.
# Installed ports are automatically
# activated.
# You can install multiple versions
# of a port, but only one, can be
# active.
sudo port activate a_port_name @version
# Activates an older installed version,
# of a port.
sudo port deactivate a_port_name
# Deactivates a port, in other words,
# makes it inaccessible, unusable.
Selecting:
port select --summary
# A same software, might have different
# ports, available to be installed, for it. For
# example, for python, it has the ports
# python31, python37, and other ports.
# These form what is called a group,
# and for a group, you can set,
# which installed port, is to be
# the default one.
# For example, once you install python310,
# you will have two groups created: python,
# and python3.
# Issuing the python, and the python3 commands,
# from the command line, the default port,
# set for each of these group, will be
# invoked.
# To see the groups, which you have
# locally, and the default port, and the
# installed ports for each, you can use
# the command: port select --summary.
# This command only works, if
# you have installed some software,
# which has a group of ports,
# available for it.
port select --show a_group_name
# Prints, the default port, for the
# named group.
port select --list a_group_name
# Prints the available ports, that can be
# set as default, for the named
# group.
sudo port select --set a_group_name a_port_name
# Sets the named port, as the default
# option, for the named group.
Service Load/Unload/Reload:
sudo port load a_port_name
# Runs the named daemon port,
# and makes it start at login.
sudo port unload a_port_name
# Stops the named daemon port,
# and remove it from starting
# at login.
sudo port reload a_port_name
# Unloads, and then loads, the
# named daemon port.
Uninstalling/Cleanup:
sudo port uninstall a_port_name
# Uninstall an installed port.
sudo port uninstall --follow-dependents a_port_name
# Uninstall, all the ports, dependents
# of the named port, after that,
# uninstall the port.
sudo port uninstall --follow-dependencies a_port_name
# Uninstall the named port, and the
# ports which were installed as
# being required, by this port.
sudo port uninstall inactive
# Uninstall all the ports which
# are inactive.
sudo port uninstall leaves
# Uninstall all the ports which
# are leaves.
sudo port clean a_port_name
# Removes the build directory,
# of the named port.
# Useful when installation
# fails.
sudo port clean --all a_port_name
# Removes the downloaded files,
# the files created in the process of
# building the software, the
# temporary archives,
# and the log files,
# for the named ports
sudo port clean --all installed
# Removes the downloaded files,
# the files created in the process of
# building the software, the
# temporary archives,
# and the log files,
# for the installed ports
sudo port reclaim
# Reclaims free space, by uninstalling
# inactive ports,
# and removing unnecessary downloaded
# files, part of installing an application.
Help:
port help
# Opens the manual page,
# of the port command.
port help a_port_command
# Opens the manual page,
# for this specific
# command.
Diagnose:
port diagnose
# Checks for common issues, in
# the user environment, and,
# reports back, to the user, with
# possible solutions, for the problems.
port lint a_port_file
# Lint, in other words, validate a
# port file, that you have created,
# or modified, for possible errors,
# and displays messages accordingly.
Originally published at https://difyel.com on January 25, 2022.