[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20010108: Multiple active Installations of McIDAS in same account



>From: Rita Edwards <address@hidden>
>Organization: NASA/MSFC
>Keywords: 200101081628.f08GSvo02818 McIDAS

Rita,

>I have received a request to install McIDAS-X 7.7
>on a SGI running IRIX 6.5.6f.  The issue is that
>the users do NOT want the 7.5 version removed until
>the 7.7 version has been tested.  Thus the question,
>can I place multiple active installation of McIDAS?

Yes.  I do this here for development purposes.

>My original thought was to set up an symbolic link
>for the home directory of McIDAS.  However, that 
>would not allow the users of the 7.5 version to
>continue work, while the testing of 7.7 is being
>conducted.

I took a different approach.  Please see below.

>My second thought was to use the ideas from
>your documentation "Testing the Build," 
>and have a script to set the environment variables 
>for a test session.
>
>However, I am not sure if this will provide the
>full functionality the user will require.  In 
>addition, I am unclear on about the impact of
>system resources.

The test setup is something I would not use for a lot of McIDAS
activity.  It works OK for testing, but I think that it has too
many negatives for use of two versions in parallel.

>Any ideas on tricks to pull this off?

Here is what I do (this is a little long, but I think it is pretty
clear, so hang in there):

1) the HOME directory for my 'mcidas' user is the "standard"
   /home/mcidas.

2) I _never_ put any "real" data files in /home/mcidas/data.  Instead,
   I put all data files off in either a separate directory or, better
   yet, on a different file system in a directory like /data/mcidas

3) I _never_ install a McIDAS distribution into /home/mcidas (i.e.,
   my McINST_ROOT is never defined to be /home/mcidas.  Instead, I
   install in a subdiretory of /home/mcidas.  In my situation, I not
   only want to keep different versions of McIDAS around and usable,
   but I also want to build the same distribution of McIDAS for
   different operating systems in the same account.

   To accomplish the needed separation, I create a set of SHELL
   definition files (i.e., .cshrc for the C shell which I use) that are
   setup to access an individual release of McIDAS or are for a
   particular operating system.  The OSes that I support are Solaris
   SPARC, Solaris x86, Linux, AIX, OSF/1, IRIX, IRIX64, and HP-UX.  My
   installation directories and corresponding C shell configuration
   files for these OSes are:

   home directory               C shell configuration file
   ----------------------------+--------------------------
   /home/mcidas/solaris         cshrc.solaris
   /home/mcidas/solarisx86      cshrc.solarisx86
   /home/mcidas/linux           cshrc.linux
   /home/mcidas/aix             cshrc.aix
   /home/mcidas/osf1            cshrc.osf1
   /home/mcidas/irix            cshrc.irix
   /home/mcidas/irix64          cshrc.irix64
   /home/mcidas/hpux            cshrc.hpux

   My main .cshrc file does a case switch on `uname -s` to figure out
   which cshrc.xxx file to source.  This way when I login, my
   environment is setup correctly for whatever OS I am running in:

# Set operating system name and release

   setenv OS      `uname -s`
   setenv RELEASE `uname -r`

   switch ($OS)
   case SunOS:
       switch ($RELEASE)
       case 4*:
           echo McIDAS-X is not supported under SunOS 4.x
           breaksw
       case 5*:
           switch (`uname -m`)
           case sun*:
               source $HOME/cshrc.solaris
               breaksw
           case i86pc:
               source $HOME/cshrc.solarisx86
               breaksw
           default:
               echo Unknown Solaris platform
               exit
           endsw
           breaksw
       default:
           echo Unknown SunOS version
           exit
       endsw
       breaksw
   case IRIX:
       source $HOME/cshrc.irix
       breaksw
   case IRIX64:
       source $HOME/cshrc.irix64
       breaksw
   case AIX:
       source $HOME/cshrc.aix
       breaksw
   case HP-UX:
       source $HOME/cshrc.hpux
       breaksw
   case OSF1:
       source $HOME/cshrc.osf1
       breaksw
   case Linux:
       source $HOME/cshrc.linux
       breaksw
   endsw

   Of course, the MCPATH, MCTABLE_READ, MCTABLE_WRITE, etc. settings
   in the cshrc files for the different OSes have to be setup correctly
   for things to work.

4) Step 3 is enough for running McIDAS on different operating systems,
   but it is not enough to be able to quickly swap in a new version of
   McIDAS on a particular operating system.  For this I do some
   additional setup that is fashioned after what users are advised to
   do for our LDM.  For different versions of McIDAS I have different
   install (McINST_ROOT) targets:

   /home/mcidas/mcidas77   ->  McIDAS-X 7.70
   /home/mcidas/mcidas76   ->  McIDAS-X 7.60
   etc.

   Since I may want to use McIDAS from one setup that looks "standard"
   (i.e., McINST_ROOT=/home/mcidas), I make links to the distribution
   to be used in the HOME directory of 'mcidas'.
   
   <login as 'mcidas'>
   cd /home/mcidas
   ln -s mcidas77 runtime
   ln -s runtime/bin bin
   ln -s runtime/data data
   ln -s runtime/inc inc
   ln -s runtime/tcl tcl
   ln -s runtime/help help
   ln -s runtime/man man
   etc.

   After doing this, the job of switching use between one version of McIDAS
   and another is very simple: just change the link for runtime:

   rm runtime
   ln -s mcidas76 runtime

   After doing this, I would be using the 7.6 version of McIDAS instead
   of the 7.7 version.

   I should mention that I only use this runtime setup for builds on
   one OS.  Since Solaris SPARC is the most popular OS in the Unidata
   community, the builds in the /home/mcidas/mcidas76 and
   /home/mcidas/mcidas77 directories are for Solaris SPARC.


I can tell you that this setup works nicely for me.  Also, at least one
Unidata site has adopted the same setup and seems pretty pleased with
it.

>Thanks for any help,

The above sketch of how I have setup my system may not be detailed enough
to "get" right off.  Please let me know if something seems lacking.

Tom Yoksas


NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.