| Version 23 (modified by , 19 years ago) ( diff ) |
|---|
IDL
IDL is available from rsinc, for a licensing fee (apparently $480 for a "floating node license fee" for educational institutions). The current version appears to be 6.2.
They do support linux, and are moving to a kernel/glibc support indicator strategy (see here). This strategy apparently won't be ready until 6.3. However, that doesn't mean that the earlier systems won't have comparable support.
They also have a linux FAQ which seems somewhat out of date.
licensing
CAL has a "floating" 50 user license (meaning that a properly configured IDL installation requests a license while running and then returns the license when finished). The current license server runs on njord.phys.columbia.edu (a sun) and will serve licenses to any version 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.
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 manuallu 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.
