wiki:IDL

Version 40 (modified by jps@…, 14 years ago) ( diff )

--

IDL

[heep://www.ittvis.com/idl/ IDL] is available on all CAL configured worktations (just type 'idl' at the prompt). The current version is 7.0.

licensing

CAL has a 40 "floating" user licenses (meaning that a properly configured IDL installation requests a license while running and then returns the license when finished) and 10 "node-locked" licenses for people who work on laptops and need to be able to run IDL while not connected to the Internet. The current license server runs on neptune.astro.columbia.edu and will serve licenses to any version, 7.0 or earlier, of IDL running on any operating system. Installation of IDL on a client machine means both installing the software and a "license.dat" file that contains the information required by the license server. To install IDL on your (non-CW) system, you must first download the idl software from here. Mac, Windows and Linux systems are supported. Once you install the software, you will only be able to run it for seven minutes, in demo mode, because it is not licensed. To obtain a copy of the CAL license, log on to a CAL CW (e.g. pluto) and copy the file

/opt/itt/license/license.dat

to the appropriate location on your system (the location differs depending on the system and the location IDL is installed on your system, but is generally the /full_idl_path/license/license.dat).

running IDL from outside Pupin/Nevis

The above procedure should work to run idl on your own (non-CW) machine if it is within Pupin/Nevis. If you are outside these subnets (e.g. at home or on the road), you will need to create an ssh tunnel to get through the firewall. Here is how:

On your machine at home, at the command prompt, type:

ssh -N -g -L 1700:neptune.astro.columbia.edu:1700 -L 1705:neptune.astro.columbia.edu:1705 your_username@pluto.astro.columbia.edu

and then type your password (or log in as normally would using passkeys if you have that set up). Nothing should happen. In another window (or putting this process into the background), in csh type:

setenv LM_LICENSE_FILE 1700@localhost
idl

or in bash type:

export LM_LICENSE_FILE=1700@localhost
idl

and then IDL should start normally (after a few second delay). This assumes you have idl installed on your local machine and that you (of course) have an account at CAL. This uses ssh to forward the ports that IDL uses from your local machine through pluto (or whatever machine at CAL you log into) to the IDL server, neptune.

Windows users and running IDL from outside Pupin/Nevis

In order to use IDL on your Windows XP (and possibly Windows 2000) computer you have to do the following steps:

1) Download the free Windows ssh client Putty. Putty doesn't need installation, just put putty.exe in any directory, e.g. c:\program files\putty

2) Click the Windows Start button, right-click "My computer", and choose "Properties" to open the system properties dialog. Go to the "Advanced" tab and click on the "Environment Variables" button. Beneath the field labelled "System variables", click "New". In the Variable Name field, enter LM_LICENSE_FILE, in the Variable Value field, enter 1700@localhost, then hit the ok button.

3) Click start, go to "run" and type

"c:\program files\putty\putty.exe" -ssh pluto.astro.columbia.edu -P 22 -l <your_CAL_username> -N -L 1700:neptune.astro.columbia.edu:1700 -L 1705:neptune.astro.columbia.edu:1705

and enter your password once asked. Nothing will happen afterwards (minimize the putty window).

4) Start IDL. Note that point 3 has to be done every time before you start IDL.

5) You can create a batch file that merges steps 3) and 4). Create a file called startidl.bat in the directory where idlde.exe is located (usually C:\Program Files\RSI\IDL63\bin\bin.x86). Open the batch file with a text editor and type

@echo off
start "c:\program files\putty\putty.exe" -ssh pluto.astro.columbia.edu -P 22 -l <your_CAL_username> -N -L 1700:neptune.astro.columbia.edu:1700 -L 1705:neptune.astro.columbia.edu:1705
PING 1.1.1.1 -n 1 -w 10000 >NUL
idlde.exe

where the PING just gives you 10000 milliseconds to enter your password before IDL is started. Create a shortcut to startidl.bat file on your desktop or wherever you like it. Use it to start IDL.


IDL license server

The license server used by IDL is FLEXlm. Instructions for installing this are available here.

Linux Installation

Create a directory (opt/rsi) and extract the contents of flexlm_linux.x86.tar.gz:

Create a non-privileged system user:
{{{
[1 root@neptune bin]# adduser --system --uid 100
Enter a username to add: flexlm
Adding system user `flexlm'...
Adding new user `flexlm' (100) with group `nogroup'.
Creating home directory `/home/flexlm'.
[0 root@neptune bin]#


[0 root@neptune bin]# getent passwd | grep flexlm
flexlm:x:100:65534::/home/flexlm:/bin/false
[0 root@neptune bin]#
}}}

mkdir /opt/rsi
tar xzvf flexlm_linux.x86.tar.gz

[0 root@mercury rsi]# ls -l
total 2
drwxr-xr-x  3 flexlm users 1024 2006-04-26 17:37 idl_6.3
drwxr-xr-x  2 flexlm users 1024 2006-04-26 17:37 license

Edit and copy the generated license file (license.dat) to the 'license' folder:

DAEMON idl_lmgrd /opt/rsi/idl_6.3/bin #modified for our installation path

Modify the environment variables/paths in the setup script; chang the default installation path from /usr/local/rsi to /opt/rsi for the following files: license_setup.bash, idl_lmgrd, sys5_idl_lmgrd.

Added the following to the .bashrc file to initialize the rsi paths:

. /opt/rsi/idl_6.3/bin/license_setup.bash

Modify the /opt/rsi/idl_6.3/bin/sys5_idl_lmgrd file:

#LOG_FILE_NAME="/dev/console"
LOG_FILE_NAME="/var/log/flexlm.log" 

create a flexlm.log file under /var/log and modify permissions/ownership
to flexlm:adm. 

#  "start") $IDL_DIR/bin/lmgrd > $LOG_FILE_NAME &
"start") su flexlm -pmc "$IDL_DIR/bin/lmgrd > $LOG_FILE_NAME &"




# The licence management software does not require root privileges
# to operate.  The license management daemons should be started
# by a non-privileged user with a restrictive umask setting, preventing
# the unneccessary use of the root account.  The license manager
# can be started by a non-privileged user by modifying the start
# command from below as follows:
#    "start") su username -c "umask 022;$IDL_DIR/bin/lmgrd > $LOG_FILE_NAME &"
# where "username" is the account name of an unprivileged user that has
# execute permission for the license management utilities, write
# permission to create the log file, and read permission for the license file.

Edit the lmgrd_install installation file:

#!/bin/sh
# This script is intended to be run by the administrator of a UNIX system
# who desires to start the FlexLM license server at system boot time.
# A detailed description of the actions performed by this script are
# contained in the sys5_idl_lmgrd script.
#
# Usage: This script must be run in the directory that contains
# the 'sys5_idl_lmgrd' script (<IDL_DIR>/bin/).
#
.
.
.
    "Linux")
        cp sys5_idl_lmgrd /etc/init.d
        if [ -f /etc/rc2.d/S99sys5_idl_lmgrd ]; then
                rm -f /etc/rc2.d/S99sys5_idl_lmgrd
        fi
        if [ -f /etc/rc3.d/S99sys5_idl_lmgrd ]; then
                rm -f /etc/rc3.d/S99sys5_idl_lmgrd
        fi
        if [ -f /etc/rc4.d/S99sys5_idl_lmgrd ]; then
                rm -f /etc/rc4.d/S99sys5_idl_lmgrd
        fi
        if [ -f /etc/rc5.d/S99sys5_idl_lmgrd ]; then
                rm -f /etc/rc5.d/S99sys5_idl_lmgrd
        fi
        if [ -f /etc/rc0.d/K01sys5_idl_lmgrd ]; then
                rm -f /etc/rc0.d/K01sys5_idl_lmgrd
        fi
        ln -s /etc/init.d/sys5_idl_lmgrd /etc/rc2.d/S99sys5_idl_lmgrd
        ln -s /etc/init.d/sys5_idl_lmgrd /etc/rc3.d/S99sys5_idl_lmgrd
        ln -s /etc/init.d/sys5_idl_lmgrd /etc/rc4.d/S99sys5_idl_lmgrd
        ln -s /etc/init.d/sys5_idl_lmgrd /etc/rc5.d/S99sys5_idl_lmgrd
        ln -s /etc/init.d/sys5_idl_lmgrd /etc/rc0.d/K01sys5_idl_lmgrd
        ;;

By default, the flexlm files attempt to write to /usr/tmp. Create a symbolic link from the root /tmp to /usr/local/tmp.

The flexlm server can now be started:

[0 root@mercury root]# /etc/init.d/sys5_idl_lmgrd start

Check the status of the license server under /opt/rsi/idl_6.3/bin:

[1 root@mercury bin]# ./lmstat
lmstat - Copyright (c) 1989-2005 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
Flexible License Manager status on Fri 9/22/2006 13:56

License server status: 1700@mercury
    License file(s) on mercury: /opt/rsi/license/license.dat:

   mercury: license server UP (MASTER) v10.8

Vendor daemon status (on mercury):

 idl_lmgrd: UP v10.8

The service appears to be running but the firewall setting may be denying access to the following ports:

lsof -i:

lmgrd     13168        root    0u  IPv4  20431       TCP *:1700 (LISTEN)
lmgrd     13168        root    3u  IPv4  20450       TCP localhost.localdomain:1 700->localhost.localdomain:40969 (ESTABLISHED)
idl_lmgrd 13169        root    0u  IPv4  20431       TCP *:1700 (LISTEN)
idl_lmgrd 13169        root    3u  IPv4  20434       TCP *:54694 (LISTEN)
idl_lmgrd 13169        root    5u  IPv4  20449       TCP localhost.localdomain:4 


Testing from a CW:

cdelacruz@io:/opt/rsi/license$ idl
IDL Version 6.2 (linux x86 m32). (c) 2005, Research Systems, Inc.
% LICENSE MANAGER: Cannot connect to license server system.
   The license server manager (lmgrd) has not been started yet,
   the wrong port@host or license file is being used, or the
   port or hostname in the license file has been changed.
  Feature:       idl
  Server name:   mercury
  License path:  /opt/rsi/idl_6.2/../license/license.dat:/opt/rsi/license -
     /*.lic
  FLEXnet Licensing error:-15,570.  System Error: 115 "Operation now in
  progress"
  For further information, refer to the FLEXnet Licensing End User Guide,
  available at "www.macrovision.com"..
  License file: /opt/rsi/idl_6.2/../license/license.dat:/opt/rsi/license/*.li
  c
% Entering timed demo mode. Each session is limited to 7 minutes
  of operation. Printing and file saving are disabled.

  To obtain a temporary license allowing evaluation of the full
  functionality of this product contact your sales representative or
  RSI (303-786-9900, info@RSInc.com).

IDL>

 
Verifying connection to server (via port 1700):

cdelacruz@phobos:~$ socat STDIO TCP4:mercury.astro.columbia.edu:1700
2006/09/22 14:01:12 socat[17827] E connect(3, AF=2 128.59.168.51:1700, 16): Connection refused
cdelacruz@phobos:~$

Assign static ports to the flexlm services in the license.dat file and open the ports in the shorewall configuration /etc/shorewall/rules:

license.dat:

SERVER mercury 00304853deae 1700
DAEMON idl_lmgrd /opt/rsi/idl_6.3/bin PORT=1705 #assigned port for idl daemon.

rules:

### allow acces to flexlm license server within CAL:
ACCEPT   cal            fw              tcp     1700
ACCEPT   cal            fw              tcp     1705

Automatic startup of the idl daemon has not been tested, to manually start the license server:

/etc/init.d/sys5_idl_lmgrd start

Solaris Installation

From: Claire Russell <claire@astro.columbia.edu>
Date: February 3, 2006 12:21:12 PM EST
To: Greg Bryan <gbryan@astro.columbia.edu>
Cc: Carlos De La Cruz <cdelacruz@astro.columbia.edu>
Subject: Re: IDL

Greg,

Hi, looks like IDL 5.3 was disabled a wile back but IDL 5.6 works as does 6.0 
on the other Suns.  I see the new license file in two places:
        /softW_4/license/license.dat
        /softW_4/idl_6.0/license/license.dat     (same as /nfs/idl_6.0/license/license.dat on all Suns)

An oddity with license.dat is that '/usr/local/rsi/idl_6.2/bin/' doesn't exist 
but the license is running okay, see this  line in license.da\t:
DAEMON idl_lmgrd /usr/local/rsi/idl_6.2/bin/

If njord is rebooted, then the local system startup file: /etc/init.d/rc.local 
gets run and that will run the old license manager program(lm\grd).  But maybe that won't matter. 
Lines from rc.local:

# Start license managers
        RSI_DIR=/nfs/idl_6.0
        export RSI_DIR
        IDL_DIR=/nfs/idl_6.0/idl
        export IDL_DIR
        umask 022;su flexlm -c "/nfs/idl_6.0/idl/bin/lmgrd -c /nfs/idl_6.0/license/license.dat > /var/adm/idl.log "

So looks like the new 6.2 license is installed but might have to be restarted by hand after a reboot.
........................................................................
To install IDL 6.2:
Some licensed packages supply the license manager software separately ( for instance Mathematica).  
IDL however, has license manager and app\lication software in the same place.
You have the 'license.dat' file already, so that no worry about getting that.

1.  In any case, to add the new version (6.2), first set the INSTALLATION PATH 
so you can supply that when the RSI installation procedure as\ks you where to put the 
new version.   To do this:
        a) decide where there is room for the package and make the directory. 
           Seems /w1 has a lot of space, so put it there:
                >  mkdir  /w1/idl_6.2
        b) BUT that can't be the INSTALLATION PATH as it won't show up on 
           the other Sun hosts, so make a link:
                > ln -s   /w1/idl_6.2   /nfs/idl_6.2
                (LATER we can change this link to point to the automount point of the new version)

So now the INSTALLATION PATH you will give to RSI installation procedure is:
            /nfs/idl_6.2
and the RSI installation procedure will put the entire software 
package (including the license manager programs(lmgrd, lmdown,etc.) there as\ well.  
It SHOULD use that path to tailor any startup scripts&license 
files (but seems it doesn't, it expands it to the physical one!) so on\e 
has to edit one or two files later.

2. So now after using the RSI installation procedure, and 
supplying it with:/nfs/idl_6.2 , the package should be installed.  
If any odd ques\tions in the RSI procedure, let me know.

3. Then edit file:
        > cp /nfs/idl_6.2/idl_6.2/bin/idl_setup  /tmp
        > emacs /tmp/idl_setup     (replace /w1/idl_6.2 with /nfs/idl_6.2)

        and add a new last line to start up IDL:
                $IDL_DIR/bin/idl

         > cp /tmp/idl_setup /nfs/bins/idl_6.2
         > chmod +x /nfs/bins/idl_6.2      (be sure it's executable)

 4. copy over the new license file:
         cp  /softW_4/idl_6.0/license/license.dat  /nfs/idl_6.2/license/license.dat

 5. I have already added an entry to /etc/auto.indirect_pkg for /nfs/idl_6.2 
assuming that it is at:
         njord:/w1/idl_6.2
     so now:
         > rm /nfs/idl_6.2
         > all_some8 ln -s /nfs/pkg/idl_6.2 /nfs/idl_6.2
         > ls /nfs/idl_6.2              (will show the new installation via the automounter)

 6. then on all Suns:
                 idl_6.2         (search path will find: /nfs/bins/idl_6.2)
     will start up IDL 6.2

 7.  May be an astro library that need to copy from IDL 6.0?  Otherwise, done.


         Claire

Installation

Carlos added this package to metis by Downloading the IDL 6.2 (RHE3.x_FC3_Intelx86) Demo archive and running the ./install script.

root@metis:~# mkdir /usr/local/rsi
root@metis:~# chmod a+rx /usr/local/rsi

root@metis:/usr/local/rsi# gzip -d idl_linux.x86.tar.gz
root@metis:/usr/local/rsi# tar xf idl_linux.x86.tar
root@metis:/usr/local/rsi# ./install


Do you accept all of the terms of the preceding license agreement? (y/n): y

    This script installs Unix IDL version 6.2. The current
    directory is assumed to be the RSI directory under
    which IDL is to be installed.

    Current directory:  /usr/local/rsi
    Current login: root

Do you wish to continue? (y/n): y

    There are 3 ways to create the symbolic links or define
    the environment variables necessary to run IDL:

    1) Allow this script to install IDL in the RSI recommended
       manner:

           - If the rsi directory tree (of which IDL is a
             subdirectory) is not located in /usr/local/rsi,
             create a symbolic link called /usr/local/rsi that points
             at it.

           - Create symbolic links in /usr/local/bin for IDL and
             related commands. To run IDL, users must put
             /usr/local/bin in their execution paths. At most sites,
             this is already the case.

    2) Manually create the symbolic links using the commands:

           setenv  RSI  /usr/local/rsi

           ln -s $RSI    /usr/local/rsi
           ln -s $RSI/ion_6.2/bin/iond    LOCAL_DIR/iond_6.2
 	   ln -s $RSI/ion/bin/iond    LOCAL_DIR/iond

           ln -s $RSI/ion_6.2/bin/ionstat    LOCAL_DIR/ionstat_6.2
           ln -s $RSI/ion/bin/ionstat    LOCAL_DIR/ionstat

           ln -s $RSI/ion_6.2/bin/iondown    LOCAL_DIR/iondown_6.2
           ln -s $RSI/ion/bin/iondown    LOCAL_DIR/iondown

           ln -s $RSI/idl_6.2/bin/idl    LOCAL_DIR/idl_6.2
           ln -s $RSI/idl/bin/idl  LOCAL_DIR/idl

           ln -s $RSI/idl_6.2/bin/idlde    LOCAL_DIR/idlde_6.2
           ln -s $RSI/idl/bin/idlde  LOCAL_DIR/idlde

           ln -s $RSI/idl_6.2/bin/idlrpc    LOCAL_DIR/idlrpc_6.2
           ln -s $RSI/idl/bin/idlrpc  LOCAL_DIR/idlrpc

           ln -s $RSI/idl_6.2/bin/idlhelp    LOCAL_DIR/idlhelp_6.2
           ln -s $RSI/idl/bin/idlhelp  LOCAL_DIR/idlhelp

           ln -s $RSI/idl_6.2/bin/idlman    LOCAL_DIR/idlman_6.2
           ln -s $RSI/idl/bin/idlman  LOCAL_DIR/idlman

           ln -s $RSI/idl_6.2/bin/idldemo    LOCAL_DIR/idldemo_6.2
           ln -s $RSI/idl/bin/idldemo    LOCAL_DIR/idldemo

           ln -s $RSI/idl_6.2/bin/rsilicense    LOCAL_DIR/rsilicense_6.2
           ln -s $RSI/idl/bin/rsilicense    LOCAL_DIR/rsilicense

           ln -s $RSI/idl_6.2/bin/idlman    LOCAL_DIR/ionman_6.2
           ln -s $RSI/idl/bin/idlman  LOCAL_DIR/ionman

           ln -s $RSI/idl_6.2/bin/idlhelp    LOCAL_DIR/ionhelp_6.2
           ln -s $RSI/idl/bin/ionhelp  LOCAL_DIR/ionhelp



      where LOCAL_DIR is the path of a directory on your system
      that commonly appears in users' paths.

    3) Files named idl_setup and idl_setup.ksh are
       automatically created by the installation script.  These
       files contain appropriate definitions for IDL-related
       environment variables and aliases.  If you choose this
       option, you must have your users set up their accounts
       as shown below:

           Have your C-shell users add the line:

               source /usr/local/rsi/idl/bin/idl_setup

           to their .cshrc files.

           Have your Korn shell users add the line:

               . /usr/local/rsi/idl/bin/idl_setup.ksh

           to their .profile files.

           Have your Bash shell users add the line:

               . /usr/local/rsi/idl/bin/idl_setup.bash

           to their .bashrc files.


Create the symbolic links described in option 1 above? (y/n): y



    Link Name: /usr/local/bin/idl_6.2
    Points at: /usr/local/rsi/idl_6.2/bin/idl

    Link Name: /usr/local/bin/iond_6.2
    Points at: /usr/local/rsi/idl_6.2/products/ion_6.2/ion_java/bin/iond

    Link Name: /usr/local/bin/iond
    Points at: /usr/local/rsi/idl/products/ion/ion_java/bin/iond

    Link Name: /usr/local/bin/ionstat_6.2
    Points at: /usr/local/rsi/idl_6.2/products/ion_6.2/ion_java/bin/ionstat

    Link Name: /usr/local/bin/ionstat
    Points at: /usr/local/rsi/idl/products/ion/ion_java/bin/ionstat

    Link Name: /usr/local/bin/iondown_6.2
    Points at: /usr/local/rsi/idl_6.2/products/ion_6.2/ion_java/bin/iondown

    Link Name: /usr/local/bin/iondown
    Points at: /usr/local/rsi/idl/products/ion/ion_java/bin/iondown

    Link Name: /usr/local/bin/idl_6.2
    Points at: /usr/local/rsi/idl_6.2/bin/idl

    Link Name: /usr/local/bin/idl
    Points at: /usr/local/rsi/idl/bin/idl

    Link Name: /usr/local/bin/idlde_6.2
    Points at: /usr/local/rsi/idl_6.2/bin/idlde

    Link Name: /usr/local/bin/idlde
    Points at: /usr/local/rsi/idl/bin/idlde

    Link Name: /usr/local/bin/idldemo_6.2
    Points at: /usr/local/rsi/idl_6.2/bin/idldemo

    Link Name: /usr/local/bin/idldemo
    Points at: /usr/local/rsi/idl/bin/idldemo

    Link Name: /usr/local/bin/idlhelp_6.2
    Points at: /usr/local/rsi/idl_6.2/bin/idlhelp

    Link Name: /usr/local/bin/idlhelp
    Points at: /usr/local/rsi/idl/bin/idlhelp

    Link Name: /usr/local/bin/ionhelp_6.2
    Points at: /usr/local/rsi/idl_6.2/bin/idlhelp

    Link Name: /usr/local/bin/ionhelp
    Points at: /usr/local/rsi/idl/bin/idlhelp

    Link Name: /usr/local/bin/idlman_6.2
    Points at: /usr/local/rsi/idl_6.2/bin/idlman

    Link Name: /usr/local/bin/idlman
    Points at: /usr/local/rsi/idl/bin/idlman

    Link Name: /usr/local/bin/ionman_6.2
    Points at: /usr/local/rsi/idl_6.2/bin/idlman

    Link Name: /usr/local/bin/ionman
    Points at: /usr/local/rsi/idl/bin/idlman

    Link Name: /usr/local/bin/idlrpc_6.2
    Points at: /usr/local/rsi/idl_6.2/bin/idlrpc

    Link Name: /usr/local/bin/idlrpc
    Points at: /usr/local/rsi/idl/bin/idlrpc

    Link Name: /usr/local/bin/rsilicense_6.2
    Points at: /usr/local/rsi/idl_6.2/bin/rsilicense

    Link Name: /usr/local/bin/rsilicense
    Points at: /usr/local/rsi/idl/bin/rsilicense


IDL Installation Complete.

Web Servers have a default directory in which Java files
are located.  Please enter the directory where the Java
files are located.
(e.g. /usr/local/apache2/htdocs) (webserver install????)

Web Servers have a default directory in which CGI executables
are located.  Please enter the directory where the server
executables are located.
(e.g. /usr/local/apache2/cgi-bin)

Please enter the fully qualified domain name and the path to
the CGI executables directory for your Web server.
(e.g. myhost.mydomain.com/cgi-bin)


root@metis:/usr/local/rsi# idldemo

IDL Version 6.2 (linux x86 m32). (c) 2005, Research Systems, Inc.

% Embedded IDL: Research Systems, Inc., IDL Demo System.
% Restored file: IDLRTMAIN.
% Embedded IDL: Research Systems, Inc., IDL Demo System.
% IDLRTMAIN: The following error was encountered:  Error loading sharable executable.
               Symbol: IDL_Load, File = /usr/local/rsi/idl_6.2/bin/bin.linux.x86/idl_xml.so ibstdc++.so.5: 
cannot open shared object file: No such file or directory  Please consult the supplier of the application.

Required Packages/Dependancies

Application required the installation of libstdc++5:


root@metis:/etc/apt/apt.conf.d# apt-get install libstdc++5

root@metis:/usr/local/rsi/idl/bin# idldemo
IDL Version 6.2 (linux x86 m32). (c) 2005, Research Systems, Inc.

% Embedded IDL: Research Systems, Inc., IDL Demo System.
% Restored file: IDLRTMAIN.
% Embedded IDL: Research Systems, Inc., IDL Demo System.
% Loaded DLM: XML.
% Restored file: D_ICONTOUR.
% Loaded DLM: JPEG.
% Loaded DLM: PNG.
root@metis:/usr/local/rsi/idl/bin#



Added the following definition to .bashrc:

. /usr/local/rsi/idl/bin/idl_setup.bash


Application launches, as well as the demo modules. 

Astro Modules

Need to find suitable installation packages.

TeXtoIDL:

The purpose of the TeXtoIDL routines is to make it simple to use Greek letters, 
subscripts and superscripts in making labels for plots in IDL. This is accomplished by 
allowing the user to use TeX control sequences for Greek letters and special 
symbols and for sub/superscripts. The TeX control sequences are simple and easy 
to remember, especially if you already use TeX for writing papers (for those 
unfamiliar with TeX, an explanation of that notation is below). The translation 
is done for either vector or PostScript fonts. 

IDLWAVE:
This package has been installed as part of Emacs to enable it to understand 
IDL syntax, which is very useful when writing IDL scripts. A number of lines 
should be added to your ~/.emacs file, and IDLWAVE online information which can 
be viewed with `M-x idlwave-info', or follow the Menu entry in the IDLWAVE menu. 
IDLWAVE also enables running an IDL shell within emacs - type:

	M-X idlwave-shell

which runs your settup defined by the environment variable IDL_STARTUP. 

Library Installation

Markwardt IDL Library

For more information see: http://cow.physics.wisc.edu/~craigm/idl/idl.html .

To install on a Configured Workstation:

[0 root@io ~]# cd /opt/itt/libs
[0 root@io libs]# mkdir markwardt
[0 root@io libs]# cd markwardt
[0 root@io markwardt]# wget http://cow.physics.wisc.edu/~craigm/idl/down/cmtotal.tar.gz
--17:10:59--  http://cow.physics.wisc.edu/~craigm/idl/down/cmtotal.tar.gz
           => `cmtotal.tar.gz'
Resolving cow.physics.wisc.edu... 128.104.220.128
Connecting to cow.physics.wisc.edu|128.104.220.128|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 479,063 (468K) [application/x-gzip]

100%[====================================>] 479,063      795.72K/s

17:11:00 (794.35 KB/s) - `cmtotal.tar.gz' saved [479063/479063]

[0 root@io markwardt]# tar zxf cmtotal.tar.gz
[0 root@io markwardt]# rm -f cmtotal.tar.gz
[0 root@io markwardt]# cd /opt/itt/idl/lib/
[0 root@io lib]# ln -s /opt/itt/libs/markwardt markwardt
[0 root@io lib]#

The IDL Astronomy User's Library

For more information see: http://idlastro.gsfc.nasa.gov/ .

To install on a Configured Workstation:

cd /opt/itt/libs/idlastro
wget http://idlastro.gsfc.nasa.gov/ftp/astron.dir.tar.gz
tar zxvf astron.dir.tar.gz
rm -f astron.dir.tar.gz
cd /opt/itt/idl/lib
ln -s /opt/itt/libs/idlastro/pro idlastro

IDL + C Code

This includes the following libraries:
idlutils
idlspec2d
photoop
elodie
specflat
speclog
ptcoeff
kcorrect

Installing IDL + C Code

For more installation information, see: http://www.astro.princeton.edu/~schlegel/code.html . [Note: the instructions on that page are a little out of date. The ones given here are more up to date.]

To install this code on a Configured Workstation, first install the installer, evilups:

export CVSROOT=:pserver:anonymous@sdsscvs.astro.princeton.edu:/usr/local/cvsroot
cvs login
  [hit enter when it asks for CVS password]
cvs export -d evilups-temp -r v0_7_27 evilups
cd evilups-temp
./configure --prefix=/opt/itt/libs/idl+c

If you leave off the --prefix switch on the configure script, it will default to /usr/local. For help with the configure options, enter:

./configure -h

If you want to see where it will install its files after running configure, you can enter:

make show

If that is satisfactory, you can install it (switching to root, if necessary) with:

make install

Now, you need to fix a line in /opt/itt/libs/idl+c/share/eups/bin/evilinstall. Near the end of that file, you will find a line that reads:

eups_declare -f $DECLAREFLAVOR $TABLEPARAM \
 -r $INSTALLFLAVOR/$PRODNAME/$PRODVERS -c $PRODNAME $PRODVERS --force

Change it to:

eups_declare -f $DECLAREFLAVOR $TABLEPARAM \
 -r $EUPS_PATH/$INSTALLFLAVOR/$PRODNAME/$PRODVERS -c $PRODNAME $PRODVERS --force

Now you are ready to install the idl libraries.

Change to a working directory that has sufficient space. The libraries are built in your current directory before being installed, and in the case of speclog, may need as much as 1GB of free space during the build process. To install them, simply run the following commands:

export CVSROOT=:pserver:anonymous@sdsscvs.astro.princeton.edu:/usr/local/cvsroot
. /opt/itt/libs/idl+c/share/eups/bin/setups.sh
evilinstall idlutils v5_1_6
evilinstall idlutils v5_2_0
setup idlutils v5_2_0
evilinstall idlspec2d v5_2_0
evilinstall photoop v1_7_14
evilinstall elodie v1_0
evilinstall specflat v1_6
evilinstall speclog v1_5
evilinstall ptcoeff v1_0
evilinstall kcorrect v4_1_4

cd /opt/itt/libs/idl+c/share/Linux/idlutils/v5_1_6
export IDLUTILS_DIR=$PWD
bin/evilmake

cd /opt/itt/libs/idl+c/share/Linux/idlutils/v5_2_0
export IDLUTILS_DIR=$PWD
bin/evilmake

cd /opt/itt/libs/idl+c/share/Linux/idlspec2d/v5_2_0
export IDLSPEC2D_DIR=$PWD
make

Each evilinstall command takes care of fetching the source code from Princeton's cvs server, compiling it, and installing it for use by the eups system. It can handle multiple versions of the same libraries, installing them in separate locations. Which version you actually use would be determined by which one you "setup" before starting idl, as described in the following section.

Note: kcorrect v4_1_4 may require that idlutils 5_1_6 be installed, even though that is no longer the latest version of idlutils.

Installation Problems

See ticket #568.

Using IDL + C Code

For the Configured Workstations, I wrote a script to prepare these libraries for use by idl. To run it, just enter:

idl+c-shell

Then you can run idl or idlde and have all these libraries available to you.

If you don't have a Configured Workstation, you can either copy that script (making appropriate adjustments to the directory paths), or, if you prefer to do things more manually (or if you just want to know more details so that you can customize your setup), read on.

To prepare these libraries for idl, you first need to run a script to set up some environment variables:

. /opt/itt/libs/idl+c/share/eups/bin/setups.sh

Then you can see the libraries that are available by running:

setup -l

And finally, you need to "setup" the ones you want to use in idl (setting more environment variables). For example, if you want to use kcorrect, you should run:

setup kcorrect

before starting idl or idlde. If you run setup -l after that, you will notice that it also "setup" idlutils as well because the eups apparatus is aware of dependencies and knew that kcorrect needed idlutils.

Part of the idea of the eups setup command is version control. If you wanted to use a particular version of a library, you would include its version number after the library name. For example, you could enter:

setup idlutils v5_2_0

to explicitly specify that you wanted to use version 5.2.0 of idlutils. If you leave off the version number, it will "setup" the 'current' version for that library. Again, you can run setup -l to see all the libraries, which versions are installed, and which of those versions are "setup" and ready for use through idl.

And one final note, if you want all the other idl libraries that were previously available in idl at the same time as these libraries, you should run:

export IDL_PATH=+/opt/itt/idl

before running the setup commands. All of this is packaged up in the script /usr/local/bin/idl+c-shell on the Configured Workstations.

And if you are completely lazy and don't even want to run idl+c-shell every time before you run idl, you can just add the lines:

. /opt/itt/libs/idl+c/share/eups/bin/setups.sh
export IDL_PATH=+/opt/itt/idl
setup idlutils
setup idlspec2d
setup ptcoeff
setup kcorrect

to the end of your .bashrc file. Then these libraries will always be available to idl without you having to enter any other commands first. Those lines above are--for the most part--all that is in the script, idl+c-shell.

Alternatively, if you run a cshell (csh or tcsh), you can add the following lines to the end of your .cshrc or .tcshrc:

source /opt/itt/libs/idl+c/share/eups/bin/setups.csh
setenv IDL_PATH +/opt/itt/idl
setup idlutils
setup idlspec2d
setup ptcoeff
setup kcorrect
Note: See TracWiki for help on using the wiki.