Installing HEASoft on a LinuxThis page includes instructions for installing Source Code or Pre-Compiled Binary distributions. Table of ContentsA. SOURCE CODE INSTALLATIONInstallations from the source code are recommended over the pre-compiled binaries due to the lack of portability of pre-compiled Perl libraries and other potential portability issues. Installations from the source code distribution are required for users who wish to load local models in Xspec or use the Xspec Python interface (PyXspec). The instructions below assume that you have already downloaded a HEASoft source code tar file and have unpacked it (using e.g. tar zxf [tar file]) on your machine. A.1. PrerequisitesIf they aren't installed already, you will need to install a few system-level packages required for building HEASoft from the source code distribution. A.1.i. SystemFor Debian-based Linux (e.g. Ubuntu), use the "apt-get" utility: sudo apt-get -y install libreadline-dev
sudo apt-get -y install libncurses5-dev # or "libncurses-dev"
sudo apt-get -y install ncurses-dev
sudo apt-get -y install curl
sudo apt-get -y install libcurl4
sudo apt-get -y install libcurl4-gnutls-dev
sudo apt-get -y install xorg-dev
sudo apt-get -y install make
sudo apt-get -y install gcc g++ gfortran
sudo apt-get -y install perl-modules
sudo apt-get -y install libdevel-checklib-perl
sudo apt-get -y install libfile-which-perl
sudo apt-get -y install python3-dev # or "python-dev"
sudo apt-get -y install python3-pip
sudo apt-get -y install python3-setuptools
sudo apt-get -y install python3-astropy # needed for IXPE
sudo apt-get -y install python3-numpy # needed for IXPE
sudo apt-get -y install python3-scipy # needed for IXPE
sudo apt-get -y install python3-matplotlib # needed for IXPE
sudo pip install --upgrade pip # NOT needed in Ubuntu 24.04
Or, in a single copy-and-pastable line (apt-get command only, excludes the pip command): sudo apt-get -y install libreadline-dev libncurses5-dev ncurses-dev curl \
libcurl4 libcurl4-gnutls-dev xorg-dev make gcc g++ gfortran perl-modules \
libdevel-checklib-perl libfile-which-perl python3-dev python3-pip python3-setuptools \
python3-astropy python3-numpy python3-scipy python3-matplotlib
For RPM-based Linux (e.g. Fedora), use the "dnf" (formerly "yum") utility: sudo dnf -y install redhat-rpm-config
sudo dnf -y install readline-devel
sudo dnf -y install ncurses-devel
sudo dnf -y install zlib-devel
sudo dnf -y install libcurl-devel
sudo dnf -y install libXt-devel
sudo dnf -y install make
sudo dnf -y install gcc gcc-c++
sudo dnf -y install gcc gcc-gfortran # or "gcc gcc-fortran"
sudo dnf -y install perl-devel
sudo dnf -y install perl-Devel-CheckLib
sudo dnf -y install perl-DirHandle
sudo dnf -y install perl-Env
sudo dnf -y install perl-ExtUtils-MakeMaker
sudo dnf -y install perl-File-Which
sudo dnf -y install python3-devel # or "python-devel"
sudo dnf -y install python3-astropy # needed for IXPE
sudo dnf -y install python3-numpy # needed for IXPE
sudo dnf -y install python3-matplotlib # needed for IXPE
sudo pip3 install --only-binary=:all: scipy --upgrade
Or, in a single copy-and-pastable line (dnf command only, excludes the pip3 command): sudo dnf -y install redhat-rpm-config readline-devel ncurses-devel \
zlib-devel libcurl-devel libXt-devel make gcc gcc-c++ gcc gcc-gfortran \
perl-devel perl-Devel-CheckLib perl-DirHandle perl-Env perl-ExtUtils-MakeMaker \
perl-File-Which python3-devel python3-astropy python3-numpy python3-matplotlib
A.1.ii. PythonSome tools and interfaces in HEASoft require Python, such as: If you have no need of any of these HEASoft packages and did not include them in your download, you may forgo installing the Python prerequisites. HEASoftPy and other packages require Python elements:
If you prefer to use a different Python environment (Miniconda, etc.), you may choose to install the Python packages (AstroPy, NumPy, SciPy, MatPlotLib) in that environment instead. The following commands install the required Python elements. In Bourne shell variants (bash/sh/zsh):conda install astropy numpy scipy matplotlib pip
export PYTHON=$HOME/miniconda3/bin/python3
In C-shell variants (tcsh/csh):
conda install astropy numpy scipy matplotlib pip
setenv PYTHON $HOME/miniconda3/bin/python3
Note that the heasoftpy installation uses pip and thus requires access to the internet while building. A.1.iii. Environment VariablesWhile the configure script in the next step will try its best to find suitable choices, the safest way to ensure that the correct compilers are used by HEASoft is to set the standard environment variables:
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export FC=/usr/bin/gfortran
export PERL=/usr/bin/perl
export PYTHON=/usr/bin/python3
In C-shell variants (tcsh/csh):
setenv CC /usr/bin/gcc
setenv CXX /usr/bin/g++
setenv FC /usr/bin/gfortran
setenv PERL /usr/bin/perl
setenv PYTHON /usr/bin/python3
If these variables are not used, the HEASoft configure script will attempt to find the necessary items in one of the system directories listed in your PATH environment variable, but success is not guaranteed. External packages (e.g. Miniconda) may set compiler or other flags in the environment which can negatively impact a HEASoft build, so users are advised to unset all *FLAGS and conda alias variables. In Bourne shell variants (bash/sh/zsh):unset CFLAGS CXXFLAGS FFLAGS LDFLAGS build_alias host_alias
export PATH="/usr/bin:$PATH"
In C-shell variants (tcsh/csh):
unsetenv *FLAGS build_alias host_alias
setenv PATH="/usr/bin:$PATH"
Alternatively, users may alter their session to cancel any Miniconda or other package initialization by editing their profile or other shell resource files (.bashrc, .cshrc, etc.). Other software packages (e.g. XMM-SAS) may change the LD_LIBRARY_PATH environment variable, and this can break a HEASoft build, so users are advised to check their LD_LIBRARY_PATH variable and remove any paths that aren't necessary. Typically none should be needed and this variable can remain empty when building HEASoft unless you are using a custom compiler suite for the build. More information about using other software packages such as CIAO and XMM-SAS can be found on the HEASoft known issues page. A.2. ConfigureBefore configuring HEASoft, you should commit to the location of the installed software prior to running the configure script. Once you have built the software, library paths are hard-coded into the executables and they will not function correctly if relocated. The default location of the installed executables are in an architecture-dependent directory underneath the top HEASoft directory. To specify another location for the installed files, use the --prefix option of the configure script. To see more configure options, run: ./configure --help
Also note that the compiler settings described above will NOT pass to a sudo shell, so if you want to install HEASoft in a protected location (such as /usr/local), you should configure and build the software WITHOUT using sudo in a location writeable by you (e.g. your home directory), and use sudo only when performing the final make install step below. After the prerequisite packages have been installed and the appropriate environment variables have been set, configure the software. While optional, it is a good idea for future troubleshooting to capture the screen output to text files as shown here. In Bourne shell variants (bash/sh/zsh):cd heasoft-6.34/BUILD_DIR/
./configure > config.txt 2>&1
In C-shell variants (tcsh/csh):
cd heasoft-6.34/BUILD_DIR/
./configure >& config.txt
The configure process may take several minutes to complete. If it is successful, the last line of output (in config.txt) should read "Finished". If it is not successful, do not proceed until any errors have been resolved. Check the HEASoft known issues page for troubleshooting, or contact the help desk. A.3. BuildIf and only if the configure was successful, proceed to build the software. Again, optionally capturing the screen output to a text file for reference may be useful for future troubleshooting. In Bourne shell variants (bash/sh/zsh):make > build.txt 2>&1
In C-shell variants (tcsh/csh):
make >& build.txt
This process may take an hour or more to run, depending on your hardware and HEASoft download selections. If it is successful, the last line of output (in build.txt) should read "Finished make all". If it is not successful, do not proceed until any errors have been resolved. Check the HEASoft known issues page for troubleshooting, or contact the help desk. If the build (or the install in the next step) failed and you find it necessary to change the configuration (e.g., by switching compilers), you should run make clean to remove any compiled objects (*.o, libraries, executables) from the failed attempt, then re-run the configure script before restarting make. A.4. InstallIf 'make' was successful, proceed to install the software. Again, optionally capturing the screen output to a text file for reference may be useful for future troubleshooting. In Bourne shell variants (bash/sh/zsh):make install > install.txt 2>&1
In C-shell variants (tcsh/csh):
make install >& install.txt
This process may take 30-45 minutes to run, depending on your hardware and HEASoft download selections. If it is successful, the last line of output (in install.txt) should read "Finished make install". If it is not successful, do not proceed until any errors have been resolved. Check the HEASoft known issues page for troubleshooting, or contact the help desk. A.5. InitializeIf the make install step was successful, you may proceed with initializing the software. The following are example commands which you will modify to be appropriate for your system: In Bourne shell variants (bash/sh/zsh):export HEADAS=/path/to/your/installed/heasoft-6.34/(PLATFORM)
source $HEADAS/headas-init.sh
In C-shell variants (tcsh/csh):
setenv HEADAS /path/to/your/installed/heasoft-6.34/(PLATFORM)
source $HEADAS/headas-init.csh
In these commands, /path/to/your/installed is a placeholder for the actual directory path on your system identifying the location in which you installed heasoft. By default, the installed location will be in the source code tree directly under the top level heasoft-6.34 folder, and (PLATFORM) is a placeholder for the platform-specific string denoting your machine's architecture, for example: x86_64-pc-linux-gnu-libc2.32. The initialization is silent and only generates a message if there is an error. If it is successful, you may begin using the software. For example, type fthelp ftools to see a full listing of possible tools, or type xspec to start the Xspec spectral analysis program. B. PRE-COMPILED BINARY INSTALLATIONInstallations of the pre-compiled binaries are not recommended due to the lack of portability of pre-compiled Perl libraries and other potential portability issues. Installations from the source code distribution are required for users who wish to load local models in Xspec or use the Xspec Python interface (PyXspec). The instructions below assume that you have already downloaded a HEASoft pre-compiled binary tar file and have unpacked it (using e.g. tar zxf [tar file]) on your machine. B.1. Prerequisites (for Pre-Compiled Binaries)If they aren't installed already, you will need to install a few system-level packages required for using the pre-compiled HEASoft binary distribution. SystemFor Debian-based Linux (e.g. Ubuntu), use the "apt-get" utility: sudo apt-get -y install libreadline-dev
sudo apt-get -y install libncurses5-dev # or "libncurses-dev"
sudo apt-get -y install xorg-dev
sudo apt-get -y install python3-dev # or "python-dev"
sudo apt-get -y install python3-pip
sudo apt-get -y install python3-setuptools
sudo apt-get -y install python3-astropy
sudo apt-get -y install python3-numpy
sudo apt-get -y install python3-scipy
sudo apt-get -y install python3-matplotlib
sudo pip install --upgrade pip # NOT needed in Ubuntu 24.04
For RPM-based Linux (e.g. Fedora), use the "dnf" (formerly "yum") utility: sudo dnf -y install readline-devel
sudo dnf -y install ncurses-devel
sudo dnf -y install libXt-devel
sudo dnf -y install python3-devel # or "python-devel"
sudo dnf -y install python3-astropy
sudo dnf -y install python3-numpy
sudo dnf -y install python3-matplotlib
sudo pip3 install --only-binary=:all: scipy --upgrade
PythonSome tools and interfaces in HEASoft require Python, such as: If you have no need of any of these HEASoft packages and did not include them in your download, you may forgo installing the Python prerequisites. HEASoftPy and other packages require Python elements:
If you prefer to use a different Python environment (Miniconda, etc.), you may choose to install the Python packages (AstroPy, NumPy, SciPy, MatPlotLib) in that environment instead. The following commands install the required Python elements. In Bourne shell variants (bash/sh/zsh):conda install astropy numpy scipy matplotlib pip
export PYTHON=$HOME/miniconda3/bin/python3
In C-shell variants (tcsh/csh):
conda install astropy numpy scipy matplotlib pip
setenv PYTHON $HOME/miniconda3/bin/python3
B.2. Configure (Pre-Compiled Binaries)After the prerequisite packages have been installed, the next step is to configure the software. While optional, it is a good idea for future troubleshooting to capture the screen output to text files as shown here. In Bourne shell variants (bash/sh/zsh):cd heasoft-6.34/(PLATFORM)/BUILD_DIR/
./configure > config.txt 2>&1
In C-shell variants (tcsh/csh):
cd heasoft-6.34/(PLATFORM)/BUILD_DIR/
./configure >& config.txt
The configure process may take several minutes to complete. If it is successful, the last line (in config.txt) should read "Finished". If it is not successful, do not proceed until any errors have been resolved. Check the HEASoft known issues page for troubleshooting, or contact the help desk. If the configure script yields a message about a "Perl mismatch", you will either need to install HEASoft from the source code distribution, or install a version of Perl which matches that listed for your platform in our Perl reference. Build and InstallThe binaries are provided pre-built. You do not need to run "make" or "make install." After configuring, the next step is to initialize the software. B.3. InitializeIf the "configure" step was successful, you may proceed with initializing the software. The following are example commands which you will modify to be appropriate for your system. In Bourne shell variants (bash/sh/zsh):export HEADAS=/path/to/your/installed/heasoft-6.34/(PLATFORM)
source $HEADAS/headas-init.sh
In C-shell variants (tcsh/csh):
setenv HEADAS /path/to/your/installed/heasoft-6.34/(PLATFORM)
source $HEADAS/headas-init.csh
In these commands, /path/to/your/installed is a placeholder for the actual directory path on your system identifying the location in which you installed heasoft. By default, the installed location will be in the source code tree directly under the top level heasoft-6.34 folder, and (PLATFORM) is a placeholder for the platform-specific string denoting your machine's architecture, for example: x86_64-pc-linux-gnu-libc2.32. The initialization is silent and only generates a message if there is an error. If it is successful, you may begin using the software. For example, type fthelp ftools to see a full listing of possible tools, or type xspec to start the Xspec spectral analysis program. C. NOTES ON USING INSTALLED SOFTWAREC.1. Calibration Database (CALDB)Many HEASoft tasks require access to the CALDB, which is available separately from HEASoft. The simplest way to access the CALDB is remotely, assuming a good internet connection is available. Alternatively, the CALDB may be installed locally on your system. C.2. Uninstalling HEASoftFor guidance about removing a HEASoft installation from your system, please refer to our uninstall guide. HEASoft / FTOOLS Help Desk If FTOOLS has been useful in your research, please reference this site (https://heasarc.gsfc.nasa.gov/ftools) and use the ASCL reference for HEASoft [ascl:1408.004] or the ASCL reference for the original FTOOLs paper [ascl:9912.002]: Blackburn, J. K. 1995, in ASP Conf. Ser., Vol. 77, Astronomical Data Analysis Software and Systems IV, ed. R. A. Shaw, H. E. Payne, and J. J. E. Hayes (San Francisco: ASP), 367. Web page maintained by: Bryan K. Irby HEASARC Home | Observatories | Archive | Calibration | Software | Tools | Students/Teachers/Public Last modified: Thursday, 29-Aug-2024 09:32:17 EDT |