Using the MINOS Software

Setting up the software at FNAL

  1. ensure that you are not initializing any other UPS installation (especially in AFS)
  2. define setup alias or function in .bashrc or .cshrc:
    bash-like shell:
         export MINOS_SETUP_DIR=/grid/fermiapp/minos/minossoft/setup
         source $MINOS_SETUP_DIR/ $*
    csh-like shell:
       setenv MINOS_SETUP_DIR /grid/fermiapp/minos/minossoft/setup
       alias setup_minos 'source $MINOS_SETUP_DIR/setup_minossoft_FNALU.csh \!*'
  3. in any given session:
      setup_minos -r R3.01.00
    or for optimized build
      setup_minos -r R3.01.00 -O

Passing the -O flag sets up the code build using the gcc optimizer. The setup_minos has a few other optional flags which you can see using the -h flag.

In case of problems see below

Working with a test release

Creating a test release

  cd /path/to/above/

Add packages to test release

  cd /path/to/above/TEST_RELEASE_NAME
  setup_minos -r BASE_RELEASE  [-O]
  srt_setup -a
  addpkg -h MinosPackage

Building a test release

It is good to ensure that any test release that you use is consistently built for both optimized and default setups. If you fail to build one or the other and then if you attempt to use the test release for the unbuilt version then everything defaults to the base release (and sees none of your modifications ... leading to confusion).

  cd /path/to/above/TEST_RELEASE_NAME
  setup_minos -r BASE_RELEASE
  srt_setup -a
  gmake all
  setup_minos -r BASE_RELEASE -O
  srt_setup -a
  gmake all

Problems setting up a release?;b7253053.13

If you encounter a message similar to:

could not find a gcc version for release "RX.XX" on LinuxXXXXXX
-bash: "minos_offline": No such file or directory

This means your UPS setup is corrupted by a version mismatch. You'll need to track down all the problems setups and remove them and then start a new terminal session.

The problematic lines are generally found in one or more of your shell initialization script found in your home directory. Look for the patterns below and comment them out of any and all of your shell setup scripts, such as:

  • .shrc
  • .bashrc
  • .cshrc
  • .tcshrc
  • .profile
  • .login
  • .bash_profile
  • possibly others, try cd ~ ; grep setups .*)

The lines to be removed for sh or bash look like

# if [ -f "/afs/" ]
# then
#     . "/afs/" 
# fi
# if ups exist shrc
# then
#     setup shrc
# fi

or, for csh or tcsh:

# if ( -f "/afs/" ) then
#     source "/afs/" 
# endif
# if ( { ups exist shrc } ) then
#     setup shrc
# endif 

Look for references to UPS in /afs or /local in conjunction with a setup command.

Doing this will only help for new login sessions. If problems continue check the state of $PRODUCTS environment. It is best not to do any setup of UPS directly in ones .*rc scripts. Rather define functions that can be invoked as necessary on a session-by-session basis.