Frequently Asked Questions

Why shouldn’t I just install packages provided by my OS?

You can if you have administrative privileges and all the packages you need are available and convenient to install. That’s rarely true, however (and may give you older versions than we’d recommend). Most likely you’ll end up installing IRAF, its external packages and some Python packages manually. Moreover, any Python software you download may or may not prove compatible with your OS versions. Installing Ureka should be faster and easier, and allows us to give you our best installation support and provides package versions that have been tested together with our data processing software.

Can I use Ureka alongside other Python or IRAF installations?

Yes (it just uses more disk space). We don’t recommend trying to use other versions of Python or IRAF with Ureka, but you can switch back and forth between multiple installations (using ur_setup and ur_forget).

Will Ureka affect other software installed on my system, or vice versa?

It’s designed not to, but some non-OS software can break Ureka by requiring that you set the environment variables LD_LIBRARY_PATH (DYLD_LIBRARY_PATH on OSX) or PYTHONPATH in your shell login files, causing Ureka to pick up the wrong versions of its libraries. It should be no problem to put your personal Python scripts in PYTHONPATH, as long as your module names don’t conflict with those in Ureka.

What if I already have Python installed, and I just want IRAF?

Ureka contains IRAF and Python, and doesn’t make any provisions for recognizing existing Python installations. You can set PYTHONPATH to point to Python packages that are installed elsewhere on the system, but there are no guarantees that this will work properly. If you must use another Python installation from time to time, you can switch back and forth (using ur_setup and ur_forget).

How stable is Ureka?

Ureka is relatively stable at this point, and we have users at STScI and Gemini who are using Ureka as their principal IRAF/Python environment. We’ve had a number of successful releases since 2013.

Ureka is primarily a collection of other software packages, so the stability is no better than that of the components. So, for example, we do not expect our IRAF to be any better than you would get from iraf.net – just easier to install.

If you find a bug in Ureka, please let us know!

What are LD_LIBRARY_PATH and DYLD_LIBRARY_PATH?

LD_LIBRARY_PATH is a mechanism for telling Unix (and Linux) where it can search for dynamic libraries. The problem with using it is that you may screw up an existing executable by putting an incompatible library ahead of the one it had been using. It has been the traditional way of distributing Unix binaries that can be installed in any location (unlike *.rpm and *.deb files), but it can cause problems with existing software. DYLD_LIBRARY_PATH is the OSX equivalent of LD_LIBRARY_PATH.

What is PYTHONPATH?

PYTHONPATH is an environment variable that defines additional locations of Python modules. If you already have Python packages installed somewhere on your computer, you may be able to set PYTHONPATH to that location so that Ureka’s Python interpreter can find the modules.

For more information about PYTHONPATH, check out this section of the Python documentation: http://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH.

How can I update or add software within the Ureka framework?

You can install or upgrade Python packages all of the usual ways, including via pip and easy_install. We also plan to make addons available for future releases of Ureka, but there are none at this time.

If you plan to install additional packages that contain C code, you will need to have a C compiler installed.

What if I don’t want to type “ur_setup” every time I use Ureka?

If you want the Ureka environment to be available without having to type “ur_setup” every time you start a new terminal session, then you can add this command to the end of your shell’s login script.

How do I find out what shell I’m using?

The value of $SHELL will usually tell you what shell you’re using. Type this command in the terminal:

echo $SHELL

Where is my login script?

Shell login scripts are usually in $HOME. If your shell is csh or tcsh, then your login script could be .cshrc, .tcshrc, or .login. If your shell is bash or sh, then your login script could be .profile, .bash_profile, or .bashrc. Other shells are not supported by Ureka.

What is this install_name_tool error all about?

This error only affects OSX.

If you install Ureka into an excessively long path, you might see errors like this one during installation:

install_name_tool: changing install names or rpaths can't be redone for: /Users/cslocum/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBBBBBBBBB/Ureka/iraf/vendor/voclient/libsamp/libxrpc/lib//libxmlrpc_xmlparse.3.16.dylib (for architecture i386) because larger updated load commands do not fit (the program must be relinked, and you may need to use -headerpad or -headerpad_max_install_names)

These errors occur when the installation path is longer than 60 characters. The solution is to move the Ureka directory to a shorter path, and then re-normalize:

mv /Users/cslocum/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBBBBBBBBB/Ureka /a/shorter/path/Ureka
cd /a/shorter/path/Ureka
bin/ur_normalize

# open a new terminal window before typing "ur_setup"
ur_setup

Why is “ecl.e: not found” when I try to run IRAF?

If you get an error like this one when you type “cl” to run IRAF, it is likely that you are missing 32-bit libraries that are needed on 64-bit Linux systems.

christine@:~$ cl
/home/christine/Ureka/bin/cl: 40: exec: /home/christine/Ureka/iraf//bin.linux/ecl.e: not found

See the 32-bit Support on 64-bit Linux section for more information.

Can I upgrade the IRAF in Ureka?

No. We had to make modifications to IRAF 2.16 to make it work with Ureka, and it was a non-trivial task. The instructions for installing IRAF from the NOAO website will not work in the Ureka environment.

Why isn’t the latest version of IRAF in Ureka?

Patching IRAF to work in the Ureka environment takes time, and we have other priorities than just IRAF. IRAF 2.16 is currently included in Ureka, but we may upgrade in future releases.

Why does my 64-bit Ureka installation have 32-bit IRAF?

Many of the IRAF tasks that we include with Ureka are so old that they cannot be compiled as 64-bit executables without significant changes to the source code. Because of this restriction, we always build IRAF as a 32-bit program, even for our 64-bit distributions.

The 32-bit version if IRAF is also known to have fewer bugs than the 64-bit version.