Binaries of libraries and tools for macOS

This is the root for repositories hosting binaries and static libraries for macOS which are used to build R packages on CRAN based on the recipes build system. The binaries are self-contained and can be used on their own.

Quick Install

To install any of the contained binaries, use the following R script:
source("https://mac.R-project.org/bin/install.R")

It doesn't run anything, it only defines one R function install.libs which can download and install the corresponding binaries (view the script). For example, to install the openssl library, use:

install.libs("openssl")

The default arguments will use this repository and will automatically determine the suitable binary for your system (if available). We are currently supporting Intel Macs with macOS 10.13 (High Sierra) or higher and Apple Silicon (M1) Macs with macOS 11 (Big Sur) and higher.

NOTE: if you don't have write-permission in the installation location, you may need to make it writable or run sudo R.

Bundles are also supported, so if you want to install all libraries used by CRAN to build R releases, you can use:

install.libs("r-base-dev")

Details

The following repostiories are currently provided:

NameInstallation LocationTarget
darwin17/x86_64/usr/localmacOS 10.13, Intel (x86_64)
darwin20/arm64/opt/R/arm64macOS 11, Apple M1 (arm64)
darwin20/x86_64/opt/R/x86_64macOS 11, Intel (x86_64)

All binaries are built automatically using the recipes build system.

You can also use a special value "all" which will install (or list) all avaiable binaries (including tools - this is quite big!).

Note that tools (such as subversion or emacs) can be downloaded individualy and don't require their build dependencies in order to be used, so you can use, for example:

install.libs("subversion", dep=FALSE)

The dependecies are only required for libraries to link against them.

Options

The install.libs function has following arguments:

Receipts

The recipes build system creates receipts for each tar ball which lists all files included in the package. Those lists are installed in the pkg subdirectory of the installation location, so on arm64 Mac you would find the list for openssl version 1.1.1m in /opt/R/arm64/pkg/openssl-1.1.1m-darwin.20-arm64.list. This can be used to remove individual packages if desired (but be careful to not break dependencies). It also allows you to find the package name for a particular file, e.g. to find the package providing libcrypto:
$ grep lib/libcrypto /opt/R/arm64/pkg/*
/opt/R/arm64/pkg/openssl-1.1.1m-darwin.20-arm64.list:opt/R/arm64/lib/libcrypto.a