Set up ICARUS software development environment - NuSLAC/ICARUSCookbook GitHub Wiki
0. Connect to the ICARUS machine
To access the Fermilab machine, we use kerberos. So we will kinit first.
- kinit $[email protected]
- ssh $[email protected]
icarusbuild01 is not the only option: you can log into icarusgpvm0X (where X is an integer starting from 1) as well. In this tutorial we use icarusbuild01 exclusively, which is a physical server with real local space in /scratch unlike all other machines. In the following instruction we use /scratch space which is a local physical disk available on icarusbuild01 machine only. If you are using other machines, try to use /icarus/data or /icarus/app. These paths are also available on icarusbuild01 but slower as they are network mounted vs. /scratch is a local disk. For building a software, this makes a significant difference.
1. Setup your workspace
- Create a space under
/scratch/icarus/$USER
- Time to time, please check space usage:
du -hs /scratch/icarus/$USERordf -h /scratch
-
Copy setup scripts:
scp -r /pnfs/icarus/persistent/users/kterao/setup /scratch/icarus/$USER/ -
Modify setup/setup.sh script: EDITOR and MY_LARSOFT_VERSION to latest
- KAZU please explain how to get latest version.
cd /scratch/icarus/$USER && source setup/setup.shwill create a directorymrbdev_vXX_YY_ZZdepending on your larsoft version. This is the top directory of your local software development area. You can access this directory and some related important directories by the following shell environment variables:
$MRB_TOP...mrbdev_vXX_YY_ZZdirectory$MRB_BUILDDIR... the build directory,mrbdev_vXX_YY_ZZ/build*that will be created upon attempt to build the local installation. Useful formake --directory=$MRB_BUILDDIRto initiate the local build.$MRB_INSTALL... the install directory,mrbdev_vXX_YY_ZZ/localProducts*that you will need totarfor the grid job submission.$MRB_SOURCE... the software download directory. (ex.mrb g icaruscode)- Once you checkout the software, install with
mrb i -jN(-jNUMBER denotes the number of parallel processes reserved during installation) mrbsetenv: checks product dependencies.
printenv | grep LAR
These shell environment variables are set upon mrbsetenv. Any time you connect to the machine, begin with source /scratch/icarus/$USER/setup/setup.sh. Then you might do mrbsetenv for completion.
- KAZU please explain ups list command
- dependency tree
2. Setup icaruscode
cd $MRB_TOP/srcsmrb g icaruscode