Please see the Installation Guide appropriate for you platform
for detailed instructions.
How to Install This Release
To install this release, you should download the binary distribution
file appropriate for your machine (either linux or osx) and then identify
yourself as one of the following users and follow the steps described:
I am installing for the First Time:
Create an 'iraf' directory (preferrably /iraf/iraf) and unpack
the distribution file for your platform there.
Define $iraf in your environment (with a trailing '/')
Run the $iraf/unix/hlib/install script to install the system
I am replacing an existing IRAF installation:
Save any local configuration file (graphcap, extern.pkg, etc)
of the existing IRAF installation to a separate directory
Delete the existing IRAF tree
Unpack the distribution in the existing iraf root directory
Replace/merge local configuration files
I am installing multiple IRAF versions:
Create a new 'iraf' root directory and unpack the distribution
file for the host platform
Define $iraf in your environment to be the full path to the
IRAF system you wish to be the system-wide default. If this
is the existing iraf installation you can skip this step, to
make the v2.15 the default you'll redefine $iraf and run
the install script
Set $iraf and $IRAFARCH in your environment as appropriate for
the desired version before running the 'cl' command or compiling
I want to build the IRAF system from source:
Download the iraf-src.tar.gz (or as.pcix.gen.gz) source-only
Create a new iraf root directory and unpack the distro
Define $iraf, $IRAFARCH in your environment and source the
$iraf/unix/hlib/irafuser.csh script. Note a C-shell is required
for this step
Run the $iraf/unix/hlib/install script to install the system
Configure the directory tree for the proper architecture and
compile, e.g. on a 64-bit linux system:
% cd /iraf/iraf
% setenv iraf /iraf/iraf/
% setenv IRAFARCH linux64
% source $iraf/unix/hlib/irafuser.csh
% make linux64
% make sysgen
In future versions this process will be made more robust and
automatic, the above steps should compile the complete system.
I want to install IRAF to support multiple platforms:
IRAF v2.16 now requires several third-party libraries in
order build properly. While the sources for these are included
in the iraf$vendor directory, their specific build procedures
haven't yet been fully integrated into the IRAF build system
(especially for 32-bit universal OSX binaries).
At this time we request that users interested in building
completely from source contact http://iraf.net
We recommend if possible that a dedicated machine be used for testing
to avoid possible confusion with a multi-version system. Note that while
environment variables can typically be used to control which version of
IRAF is started, these same environment variables when defined in startup
files such as .login or .cshrc can cause confusion when building software.
Upgrading External Packages
External packages available under v2.15 will continue to be available
using the same installation procedures. New binaries for these packages
are required so that the new core capabilities will be available to external
tasks as well.
However, only those packages that were previously updated to support
v2.15 can be linked against the v2.16 libraries. This means that packages
such as STSDAS/TABLES and other third-party packages that remain 32-bit
only are unchanged. These packages can continue to be installed using
the external package 'make' mechanism, but will not have VO capabilities.
Mixed 64-bit IRAF and 32-bit External Packages
On 64-bit systems it is possible to still use 32-bit external package
binaries (e.g. for packages that haven't been updated yet), however care
must be taken to match the architecture names.
For example, on Linux systems the arch name is 'linux64' and this
will be used to find binaries in external packages as well. For packages
such as STSDAS where no 'bin.linux64' binaries are available, you can
simply use the 32-bit binaries by making a 'bin.linux64' symlink that
points to the 'bin.linux' directory.
System Requirements and Dependencies
Support for VO data queries is provided by the VOClient interface which
relies on a background Java process to execute the queries and web-service
calls. Although this process is started transparently by the applications
which need it, Java 1.5 or greater must be available on the machine.
Additionally, the distributed ECL and VOCL binaries are built
dynamically and assume the CURSES libraries are installed. This library is
available by default on OSX systems but is often an optional installation
for many Linux distributions. Details about exactly which package
file is required depend on the distribution being used, however it is
typically named NCURSES (or perhaps TERMCAP on some older distributions).
Statically-linked binaries for ECL and VOCL can be provided upon request
Dynamic Loading of External Packages
Dynamic package loading is a feature introduced in v2.15 that allows for
package directories created in the iraf$extern directory to be automatically
defined when the CL is started. The means that external package installation
no longer *requires* that the hlib$extern.pkg file be edited to define the
package, although that remains an option for packages which somehow cannot
conform to this new scheme.
The IRAF v2.16 system is shipped with no defined external packages,
instead we assume packages will be installed using this new feature. To
begin, simply execute the 'configure' script in this directory to create
the files needed. For example,
This will create a local 'manifest' file of packages available form
the IRAF reposistory and iraf.noao.edu and skeleton directories of
available packages will be created automatically along with a Makefile
used to do the actual installation. THIS STEP IS REQUIRED BEFORE PACKAGE
To get a listing of packages that can be installed, or to check
which installed packages might need to be updated or are newly available,
use the command:
% make check
Each listed package may then be installed using a simple 'make' command.
For packages not on the list, a manual install is still required.
The external package tree may be initialize to the distribution state
using the command:
% make init
Updates to the distribution mechanism itself is done using the command:
% make self_update
This last command is used to update the system to new features or bug fixes
that might be available as the mechanism evolves.
Installing and Updating Packages
External packages may now be installed with a command such as:
% make ctio mscred stsdas
Note that dependency packages for each requested package will
automatically be added to the installation so you do not need to
necessarily list every package (e.g. you will get FITSUTIL automatically
by installing MSCRED). The next time you login to the CL the requested
package will be defined.
To update packages to the latest version, use the command
% make update
The information about available packages will be updated, then a
comparison of the timestamps of your installed packages with those on
the repository will be made. If newer package versions are available
they will be updated (along with their depencies) automatically.
If a binary repository distribution of a package is not available
at the moment, a 'source only' distribution will be installed and you will
note a "[SOURCE ONLY]" status from the make command. The user is then
responsible for compiling th epackages locally even though the package
will still be defined for use (but unusable). Our goal is to provide a
binary distribution for all available packages we can reasonably support.