pkgsrc logo

Portable Package Management

pkgsrc is a framework for building over 25,000 open source software packages. It is the native package manager on SmartOS, NetBSD, and Minix, and is portable across 23 different operating systems. Use one package manager across all of your systems!

MNX Cloud provide binary packages for SmartOS/illumos, macOS, Linux, and NetBSD.


pkgsrc XFCE 4.12 on macOS

XFCE 4.12 / Gnumeric / Inkscape

pkgsrc apps on macOS

GIMP / XChat

Installing pkgsrc nodejs on macOS

Installing Node.js

Running pkgsrc jekyll on macOS

Installing and running Jekyll (Ruby 2.3 version)

Choose Your macOS Package Set

Our primary packages for macOS are available for both Apple Silicon (arm64) and Intel (x86_64), running Monterey (12.3) or newer. Built from pkgsrc trunk, they are updated every week.

#
# Copy and paste the lines below to install the Apple Silicon (arm64) set.
#
# These packages are suitable for anyone running Monterey (12.3) or newer on
# Apple Silicon CPUs, and are updated from pkgsrc trunk every week.
#
# This should only ever be performed once.  Unpacking the bootstrap kit over
# the top of an existing install will corrupt your package database.
#
BOOTSTRAP_TAR="bootstrap-macos12.3-trunk-arm64-20240426.tar.gz"
BOOTSTRAP_SHA="97cbb189458ff2765dbacbbaa691460a1d658e7c"

# Download the bootstrap kit to the current directory.
curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap/${BOOTSTRAP_TAR}

# Verify the SHA1 checksum.
echo "${BOOTSTRAP_SHA}  ${BOOTSTRAP_TAR}" | shasum -c-

# Verify PGP signature.  This step is optional, and requires gpg.
# curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap/${BOOTSTRAP_TAR}.asc
# curl -sS https://pkgsrc.smartos.org/pgp/ED09C4B0.asc | gpg2 --import
# gpg2 --verify ${BOOTSTRAP_TAR}{.asc,}

# Install bootstrap kit to /opt/pkg
sudo tar -zxpf ${BOOTSTRAP_TAR} -C /

# Reload PATH/MANPATH (pkgsrc installs /etc/paths.d/10-pkgsrc for new sessions)
eval $(/usr/libexec/path_helper)

#
# Copy and paste the lines below to upgrade to the latest bootstrap.  This
# will overwrite the following files:
#
#       /opt/pkg/etc/mk.conf
#       /opt/pkg/etc/pkg_install.conf
#       /opt/pkg/etc/pkgin/repositories.conf
#       /opt/pkg/etc/gnupg/pkgsrc.gpg
#
# This only ever needs to be done if any of the above files change, for example
# if switching from pkgsrc.joyent.com to pkgsrc.smartos.org, or upgrading to a
# newer OS package set.
#
# Under normal operations "pkgin upgrade" is all you need to be up-to-date.
#
UPGRADE_TAR="bootstrap-macos12.3-trunk-arm64-20240426-upgrade.tar.gz"
UPGRADE_SHA="aea829f75459dddefa724c1ba062a95242640a41"

# Download the upgrade kit to the current directory.
curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap-upgrade/${UPGRADE_TAR}

# Verify the SHA1 checksum.
echo "${UPGRADE_SHA}  ${UPGRADE_TAR}" | shasum -c-

# Verify PGP signature.  This step is optional, and requires gpg.
# curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap-upgrade/${UPGRADE_TAR}.asc
# curl -sS https://pkgsrc.smartos.org/pgp/ED09C4B0.asc | gpg2 --import
# gpg2 --verify ${UPGRADE_TAR}{.asc,}

# Unpack upgrade kit to /opt/pkg
sudo tar -zxpf ${UPGRADE_TAR} -C /

# Ensure you are running the latest package tools.
sudo pkg_add -U pkg_install pkgin

# Clean out any old packages signed with the previous key.
sudo pkgin clean

# Upgrade all packages.
sudo pkgin -y upgrade

#
# Copy and paste the lines below to install the Intel set.
#
# These packages are suitable for anyone running Monterey (12.3) or newer on
# Intel x86 CPUs, and are updated from pkgsrc trunk every week.
#
# This should only ever be performed once.  Unpacking the bootstrap kit over
# the top of an existing install will corrupt your package database.
#
BOOTSTRAP_TAR="bootstrap-macos12.3-trunk-x86_64-20240426.tar.gz"
BOOTSTRAP_SHA="2b151d12576befd85312ddb5261307998f16df2f"

# Download the bootstrap kit to the current directory.
curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap/${BOOTSTRAP_TAR}

# Verify the SHA1 checksum.
echo "${BOOTSTRAP_SHA}  ${BOOTSTRAP_TAR}" | shasum -c-

# Verify PGP signature.  This step is optional, and requires gpg.
# curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap/${BOOTSTRAP_TAR}.asc
# curl -sS https://pkgsrc.smartos.org/pgp/ED09C4B0.asc | gpg2 --import
# gpg2 --verify ${BOOTSTRAP_TAR}{.asc,}

# Install bootstrap kit to /opt/pkg
sudo tar -zxpf ${BOOTSTRAP_TAR} -C /

# Reload PATH/MANPATH (pkgsrc installs /etc/paths.d/10-pkgsrc for new sessions)
eval $(/usr/libexec/path_helper)

#
# Copy and paste the lines below to upgrade to the latest bootstrap.  This
# will overwrite the following files:
#
#       /opt/pkg/etc/mk.conf
#       /opt/pkg/etc/pkg_install.conf
#       /opt/pkg/etc/pkgin/repositories.conf
#       /opt/pkg/etc/gnupg/pkgsrc.gpg
#
# This only ever needs to be done if any of the above files change, for example
# if switching from pkgsrc.joyent.com to pkgsrc.smartos.org, or upgrading to a
# newer OS package set.
#
# Under normal operations "pkgin upgrade" is all you need to be up-to-date.
#
UPGRADE_TAR="bootstrap-macos12.3-trunk-x86_64-20240426-upgrade.tar.gz"
UPGRADE_SHA="bcbd41547216ec5a2f59ba460c3f7eef7a900eed"

# Download the upgrade kit to the current directory.
curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap-upgrade/${UPGRADE_TAR}

# Verify the SHA1 checksum.
echo "${UPGRADE_SHA}  ${UPGRADE_TAR}" | shasum -c-

# Verify PGP signature.  This step is optional, and requires gpg.
# curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap-upgrade/${UPGRADE_TAR}.asc
# curl -sS https://pkgsrc.smartos.org/pgp/ED09C4B0.asc | gpg2 --import
# gpg2 --verify ${UPGRADE_TAR}{.asc,}

# Unpack upgrade kit to /opt/pkg
sudo tar -zxpf ${UPGRADE_TAR} -C /

# Ensure you are running the latest package tools.
sudo pkg_add -U pkg_install pkgin

# Clean out any old packages signed with the previous key.
sudo pkgin clean

# Upgrade all packages.
sudo pkgin -y upgrade

We also provide archives of our previous package sets built on Big Sur, Mojave, Sierra, Mavericks, and 32-bit Snow Leopard, for users who wish to quickly install software on older releases. These archived sets are no longer updated.

#
# Copy and paste the lines below to install a Big Sur (11.3) set.
#
# Make sure to only paste the lines for either the arm64 or x86_64 set!  These
# packages are no longer updated.
#
# Select the ARM64 set:
#
BOOTSTRAP_TAR="bootstrap-macos11-trunk-arm64-20240212.tar.gz"
BOOTSTRAP_SHA="3d2a31e1f3eb026bb9ed0b3a63787355ad73a958"
#
# OR select the x86_64 set:
#
BOOTSTRAP_TAR="bootstrap-macos11-trunk-x86_64-20240212.tar.gz"
BOOTSTRAP_SHA="c4b71fe9bf0ef89cc8d38909496a75693050cd96"

# Download the bootstrap kit to the current directory.
curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap/${BOOTSTRAP_TAR}

# Verify the SHA1 checksum.
echo "${BOOTSTRAP_SHA}  ${BOOTSTRAP_TAR}" | shasum -c-

# Verify PGP signature.  This step is optional, and requires gpg.
# curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap/${BOOTSTRAP_TAR}.asc
# curl -sS https://pkgsrc.smartos.org/pgp/1F32A9AD.asc | gpg2 --import
# gpg2 --verify ${BOOTSTRAP_TAR}{.asc,}

# Install bootstrap kit to /opt/pkg
sudo tar -zxpf ${BOOTSTRAP_TAR} -C /

# Reload PATH/MANPATH (pkgsrc installs /etc/paths.d/10-pkgsrc for new sessions)
eval $(/usr/libexec/path_helper)

#
# Copy and paste the lines below to install the 64-bit Mojave set.
#
# These packages are suitable for anyone running Mojave (10.14.6) or Catalina
# (10.15.x), however they are no longer updated.
#
BOOTSTRAP_TAR="bootstrap-macos14-trunk-x86_64-20210717.tar.gz"
BOOTSTRAP_SHA="a23fed860e7f515e7405fcfea9595049b9ea6634"

# Download the bootstrap kit to the current directory.
curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap/${BOOTSTRAP_TAR}

# Verify the SHA1 checksum.
echo "${BOOTSTRAP_SHA}  ${BOOTSTRAP_TAR}" | shasum -c-

# Verify PGP signature.  This step is optional, and requires gpg.
# curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap/${BOOTSTRAP_TAR}.asc
# curl -sS https://pkgsrc.smartos.org/pgp/1F32A9AD.asc | gpg2 --import
# gpg2 --verify ${BOOTSTRAP_TAR}{.asc,}

# Install bootstrap kit to /opt/pkg
sudo tar -zxpf ${BOOTSTRAP_TAR} -C /

# Reload PATH/MANPATH (pkgsrc installs /etc/paths.d/10-pkgsrc for new sessions)
eval $(/usr/libexec/path_helper)

#
# Copy and paste the lines below to install the 64-bit Sierra set.
#
# These packages are suitable for anyone running Sierra (10.12.6) or newer,
# however they are no longer updated.  Note that the repository URL has
# changed since publishing, so a couple of config files need updating.
#
BOOTSTRAP_TAR="bootstrap-trunk-x86_64-20190524.tar.gz"
BOOTSTRAP_SHA="1c554a806fb41dcc382ef33e64841ace13988479"
REPO_URL="https://us-central.manta.mnx.io/pkgsrc/public/packages/Darwin/10.12"

# Download the bootstrap kit to the current directory.
curl -O ${REPO_URL}/bootstrap/${BOOTSTRAP_TAR}

# Verify the SHA1 checksum.
echo "${BOOTSTRAP_SHA}  ${BOOTSTRAP_TAR}" | shasum -c-

# Verify PGP signature.  This step is optional, and requires gpg.
# curl -O ${REPO_URL}/bootstrap/${BOOTSTRAP_TAR}.asc
# curl -sS https://pkgsrc.smartos.org/pgp/1F32A9AD.asc | gpg2 --import
# gpg2 --verify ${BOOTSTRAP_TAR}{.asc,}

# Install bootstrap kit to /opt/pkg
sudo tar -zxpf ${BOOTSTRAP_TAR} -C /

# Rewrite config file paths for updated repository URL.
sed -i \
    -e "s,https://pkgsrc.joyent.*All,${REPO_URL}/trunk/x86_64/All," \
    /opt/pkg/etc/pkg_install.conf \
    /opt/pkg/etc/pkgin/repositories.conf

# Reload PATH/MANPATH (pkgsrc installs /etc/paths.d/10-pkgsrc for new sessions)
eval $(/usr/libexec/path_helper)

#
# Copy and paste the lines below to install the 64-bit Mavericks set.
#
# These packages are suitable for anyone running Mavericks (10.9.5) or newer,
# however they are no longer updated.  Note that the repository URL has
# changed since publishing, so a couple of config files need updating.
#
BOOTSTRAP_TAR="bootstrap-trunk-x86_64-20181001.tar.gz"
BOOTSTRAP_SHA="7209132a657582cf87897a2ad280c587e3d6bff0"
REPO_URL="https://us-central.manta.mnx.io/pkgsrc/public/packages/Darwin/10.9"

# Download the bootstrap kit to the current directory.
curl -O ${REPO_URL}/bootstrap/${BOOTSTRAP_TAR}

# Verify the SHA1 checksum.
echo "${BOOTSTRAP_SHA}  ${BOOTSTRAP_TAR}" | shasum -c-

# Verify PGP signature.  This step is optional, and requires gpg.
# curl -O ${REPO_URL}/bootstrap/${BOOTSTRAP_TAR}.asc
# curl -sS https://pkgsrc.smartos.org/pgp/1F32A9AD.asc | gpg2 --import
# gpg2 --verify ${BOOTSTRAP_TAR}{.asc,}

# Install bootstrap kit to /opt/pkg
sudo tar -zxpf ${BOOTSTRAP_TAR} -C /

# Rewrite config file paths for updated repository URL.
sed -i \
    -e "s,https://pkgsrc.joyent.*All,${REPO_URL}/trunk/x86_64/All," \
    /opt/pkg/etc/pkg_install.conf \
    /opt/pkg/etc/pkgin/repositories.conf

# Reload PATH/MANPATH (pkgsrc installs /etc/paths.d/10-pkgsrc for new sessions)
eval $(/usr/libexec/path_helper)

#
# Copy and paste the lines below to install the 32-bit 10.6+ set.
#
# These packages are suitable for anyone running Snow Leopard (10.6.8) or
# newer, however they are no longer updated.  Note that the repository URL
# has changed since publishing, so a couple of config files need updating.
#
BOOTSTRAP_TAR="bootstrap-trunk-i386-20180812.tar.gz"
BOOTSTRAP_SHA="283b88b13c75e8f92de8376532ccf4f4b9443f9d"
REPO_URL="https://us-central.manta.mnx.io/pkgsrc/public/packages/Darwin/10.6"

# Download the bootstrap kit to the current directory.
curl -O ${REPO_URL}/bootstrap/${BOOTSTRAP_TAR}

# Verify the SHA1 checksum.
echo "${BOOTSTRAP_SHA}  ${BOOTSTRAP_TAR}" | shasum -c-

# Verify PGP signature.  This step is optional, and requires gpg.
# curl -O ${REPO_URL}/bootstrap/${BOOTSTRAP_TAR}.asc
# curl -sS https://pkgsrc.smartos.org/pgp/1F32A9AD.asc | gpg2 --import
# gpg2 --verify ${BOOTSTRAP_TAR}{.asc,}

# Install bootstrap kit to /opt/pkg
sudo tar -zxpf ${BOOTSTRAP_TAR} -C /

# Rewrite config file paths for updated repository URL.
sed -i \
    -e "s,https://pkgsrc.joyent.*All,${REPO_URL}/trunk/i386/All," \
    /opt/pkg/etc/pkg_install.conf \
    /opt/pkg/etc/pkgin/repositories.conf

# Reload PATH/MANPATH (pkgsrc installs /etc/paths.d/10-pkgsrc for new sessions)
eval $(/usr/libexec/path_helper)

Post-Install Steps

Now that you're ready to go, here are some common commands you may want to run.

Use pkgin to install packages

pkgin is the front-end to the binary packages, and lets you search for, install, upgrade, and remove packages. It also provides some basic functionality for querying both local and remote packages. If you have used apt-get or yum you should find it to be very familiar.

Use pkg_* tools to manage packages

The underlying packaging tools are pkg_add, pkg_admin, pkg_create, pkg_delete, and pkg_info. If pkgin is equivalent to apt-get or yum, then these are the equivalent of dpkg or rpm. Here are some useful commands to get you started.

: Refresh the pkgin database with the latest version
$ sudo pkgin -y update

: Search for a package.  Regular expressions are supported.
$ pkgin search ^ffmpeg[0-9]$
ffmpeg4-4.1.1   Decoding, encoding and streaming software (v4.x)
ffmpeg3-3.4.5   Decoding, encoding and streaming software (v3.x)
ffmpeg2-2.8.14  Decoding, encoding and streaming software (v2.x)
ffmpeg1-1.2.12  Decoding, encoding and streaming software (v1.x)

: Install a package without prompting
$ sudo pkgin -y install ffmpeg4

: List all available packages
$ pkgin avail

: Upgrade all installed packages
$ sudo pkgin -y upgrade

: Remove a package
$ sudo pkgin -y remove ffmpeg4

: Automatically remove orphaned dependencies
$ sudo pkgin -y autoremove
: List installed packages.
$ pkg_info

: Query which package a file belongs to.
$ pkg_info -Fe /opt/pkg/bin/ffmpeg4
ffmpeg4-4.1.1

: List the contents of a package.
$ pkg_info -qL ffmpeg4
/opt/pkg/bin/ffmpeg4
/opt/pkg/bin/ffprobe4
[...]

: Perform an audit of all currently installed packages.
$ sudo pkg_admin fetch-pkg-vulnerabilities
$ pkg_admin audit
Package npm-6.9.0 has a denial-of-service vulnerability, see https://nvd.nist.gov/vuln/detail/CVE-2018-3721
Package nodejs-8.12.0 has a denial-of-service vulnerability, see https://nvd.nist.gov/vuln/detail/CVE-2018-7651
Package nodejs-8.12.0 has a http-response-splitting vulnerability, see https://nvd.nist.gov/vuln/detail/CVE-2018-12116
Package nodejs-8.12.0 has a spoofing vulnerability, see https://nvd.nist.gov/vuln/detail/CVE-2018-12123
[...]

: Create a binary package from some metadata files and package directory.
$ pkg_create -B build-info -c comment -d description -f packlist -I /opt/pkg -p files/ -U foo-1.0.tgz