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/$USER
ordf -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.sh
will create a directorymrbdev_vXX_YY_ZZ
depending 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_ZZ
directory$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_BUILDDIR
to initiate the local build.$MRB_INSTALL
... the install directory,mrbdev_vXX_YY_ZZ/localProducts*
that you will need totar
for 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
icaruscode
2. Setup cd $MRB_TOP/srcs
mrb g icaruscode