HEAsoft install on a Mac

Updated Feb 1, 2021

Here are my instructions for how to get HEAsoft, the NASA High Energy Astrophysics Software, set up on a Mac with macOS Catalina (v10.15.7). I learned most of this from HEAsoft’s own documentation (and a lot of trial and error over the years). I work in bash, so adapt as needed if you use c-shell or zsh. Disclaimer: I’m not a HEAsoft developer or maintainer, so follow this advice at your own risk. Actual HEAsoft maintainers should be your first point of contact if something goes wrong.

Step 0

Make a full backup of your machine as-is.

Step 1

Install these things:

Xcode from the App Store
Command Line Tools for Xcode by typing xcode-select –install
homebrew (or another package manager like MacPorts or Fink)

prompted to run these by homebrew:

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch –unshallow
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch –unshallow

Step 2

Using the package manager, install the following (and their dependencies). Some of these are brew upgrade Thing instead of brew install Thing (it will complain and tell you).

brew install gcc@10
brew install x11vnc
brew install perl
brew install wget
brew install automake
brew install mawk
brew install flex
brew install wcslib
brew install lzip
brew install slang
brew install imagemagick
brew install gnuplot
brew install ncurses
brew install pgplot
brew install cfitsio

Step 3

Download the HEAsoft source tarball. The first bullet point, above Step 1 on that page, should have everything you need (and you probably don’t need the extra old XSPEC stuff). This download takes like 30 minutes! I then put it in the directory ~/opt/ and unzip the HEAsoft tarball in there (tar -xvzf). This is a different location than what I’ve previously done! It seems that the new macOS really hates letting the user install things as su.

As it’s downloading, navigate to your old HEADAS directory and rename it to, e.g., old-heasoft6.26. This way there won’t be weird crosstalk. You can also delete your previous old-heasoft and tarball if you still have it. If you’ve never ever installed HEAsoft on your computer, you can skip this part.

Step 4

Follow the instructions for remote CALDB: https://heasarc.gsfc.nasa.gov/docs/heasarc/caldb/caldb_remote_access.html. Remember to save the files in /usr/local/src and put the appropriate export lines in ~/.bashrc!

Step 5

Copy/paste into ~/.bashrc (using homebrew installations of the compilers and the anaconda distribution of python 3):

export CC=/usr/local/bin/gcc-10
export CXX=/usr/local/bin/g++-10
export FC=/usr/local/bin/gfortran-10
export PERL=/usr/local/bin/perl
export PYTHON=/Users/YourUserName/opt/anaconda3/bin/python

Step 6

In the ~/.bash_profile file, be sure that /usr/bin and /usr/local/bin are at the beginning of your PATH environment variable.

Step 7

Restart your computer. I don’t know how necessary this is, but it’s one of the few things that changed in the few days between the install not working and working.

Step 8

To configure, make, and install (your HEAsoft version number might be different when you reference this blog post):

cd ~/opt/heasoft-6.28/BUILD_DIR/
make > build.log 2>&1
make install > install.log 2>&1

Note that I’m no longer passing the X11 include and library directories to the configure script, as I’ve had to do in previous installs. You should be able to open build.log and install.log as those things are going (from a different terminal window) to see their progress. You can also use tail build.log and tail install.log to view the last 10 lines of the files (though this won’t update, so this is more for occasional checks).

The make line with build.log takes a particularly long amount of time (like 20ish minutes). Since it’ll use a lot of memory and you’ll hear the fans going as it’s makeing, I don’t recommend playing videogames on your computer in the downtime.

Step 9

Copy/paste into ~/.bashrc for general use (again, your HEAsoft version number and system architecture might be different. If you ls in the HEAsoft directory you’ll see what to put for the system architecture thing):

export HEADAS=/Users/YourUserName/opt/heasoft-6.28/x86_64-apple-darwin19.6.0
alias heainit=”. $HEADAS/headas-init.sh”

To start up XSPEC, in a bash terminal session type


and it should start up an XSPEC environment! Happy analysis!

Step 10

Once I get PyXSPEC working, I’ll put the steps here.