This installer has been superceded by the {macrtools} R package, which automatically installs and configures the R toolchain for compiled code on macOS.
Please do not use the r-macos-rtools
installer package as it is notably out of date.
The repository contains the scripts used to create an installer package (.pkg
)
that contains binaries used to create the CRAN official macOS R binary.
Specifically, the installer will try to download and install:
- Xcode command line tools (XCode CLI) from Apple
gfortran6.3
orgfortran8.2
from https://github.com/fxcoudert/gfortran-for-macOS/releases
Moreover, the installer will attempt to clean up previous installations by
removing configuration files ~/.R/Makevars
and ~/.Renviron
that are no longer used.
Backups for each file will be presented with .bck
appended to the end.
For those interested, the installer can be obtained on either the project's release page. The pre-built binaries this installer encloses can be found at https://developer.apple.com/download/more/ and https://github.com/fxcoudert/gfortran-for-macOS/releases.
Note The installer package was developed by James Joseph Balamuta and has no connection with the R project’s macOS CRAN maintainers. Financial support was provided to sign the installer by Professor Timothy Bates of the University of Edinburgh.
- Download it from the project's release page.
- Open the installer by either double click or right clicking to bring up menu and selecting "Open".
- From here, navigate through it like a normal macOS installer.
That's it.
Once installed, you can start using compiled code in R like normal.
If you want to see behind the curtain, continue reading...
The macOS R toolchain installer performs four actions that require the user's password to accomplish. These actions are:
- download and install XCode CLI via secure Apple product update
- remove any existing
~/.R/Makevars
or~/.Renviron
(backups available with.bck
)s - determine which
gfortran
version to use - download, verify, and install the appropriate
gfortran
version
Note: The installer will remove any existing ~/.R/Makevars
and ~/.Renviron
files.
The existing files will be copied to a backup file, e.g. ~/.R/Makevars.bck
and ~/.Renvion.bck
.
Verify steps are conducted using embedded md5 hashes of the files. If the hash is not identical to what was embedded, the installer will exit. For details as to how this was implemented please see Issue 8: Verify pkg hash and the Pull Request 10: Feature Pkg Hash Verification.
Thanks to the financial support provided by Professor Timothy Bates of the University of Edinburgh to join the Apple Developer program. The installer is now signed using developer credentials.
As a result, the installer should have a "lock" icon in the upper right corner:
Clicking the lock icon will reveal the signed developer certificate:
With this being said, the code used to generate the installer has been made publically available under an open source license (GPL >= 2).
Below is an abridged version of the actions of each file provided.
scripts/postinstall
- Downloads and Installs Xcode CLI and the appropriate
gfortran
version- Detects the appropriate
Command Line Tools
dmg installer by using a headless cli check, downloads the installer from https://developer.apple.com/download/more/, and installs it usingsoftwareupdate
. - Downloads the gfortran binary from
https://github.com/fxcoudert/gfortran-for-macOS/releases, and
and installs it into
/usr/local/gfortran
.
- Detects the appropriate
- Removes the
~/.R/Makevars
and~/.Renviron
files - Note: Pre-existing
~/.R/Makevars
and~/.Renviron
files will be backed up prior to being removed.
- Downloads and Installs Xcode CLI and the appropriate
make_installer.sh
- Create the installer package R binary installer
.pkg
- Builds the package from the extracted tar using
pkgbuild
- Analyzing the package using
productbuild
to create adistribution.xml
- Inserts customizations into the
distribution.xml
(title, background, ...) - Calls
productbuild
to rebuild the package.
- Builds the package from the extracted tar using
- Create the installer package R binary installer
distribution.xml
- Customization options (e.g. title, background) of installer built by analyzing a temporary .pkg
build_files/Rlogo.png
- R logo
build_files/LICENSE.rtf
- License of the Xcode CLI, LLVM installer, and gfortran
build_files/WELCOME_DISPLAY.rtf
- Text displayed on welcome screen
GPL (>= 2)