The Cern Virtual Machine File System (CernVM-FS or CVMFS) is a read only HTTP based file system which appears as a normal file system on the grid UI and on the nodes. It is not meant for distributing data but files that you need to run your program. For example, c++ libraries your program depends on.
If you need Fastjet, HepMC, ROOT, Rivet, CLHEP or LHAPDF, you can benefit from other people's suffering. To set the environment, add the following lines into your "~/.bashrc"
export PATH=/cvmfs/pheno.egi.eu/HEJ/Dependencies/bin/:/cvmfs/pheno.egi.eu/HEJ/Dependencies/Rivet/bin/:$PATH export LD_LIBRARY_PATH=/cvmfs/pheno.egi.eu/HEJ/Dependencies/lib/:/cvmfs/pheno.egi.eu/HEJ/Dependencies/Rivet/lib/:$LD_LIBRARY_PATH source /cvmfs/pheno.egi.eu/HEJ/Dependencies/root-6.02.08/bin/thisroot.sh source /cvmfs/pheno.egi.eu/compilers/GCC/4.9.2/setup.sh export CC=gcc export CXX=g++
The default verion of gcc is quite old on the gridui, thus also a newer versio of the compiler is set up. To be able to link on the nodes, you need to add the same variabels to your diver script.
def SetEnv(self): os.environ["LFC_HOST"]="lfc01.dur.scotgrid.ac.uk" os.environ["LCG_CATALOG_TYPE"]="lfc" os.environ["LFC_HOME"]="/grid/pheno/hapola" os.environ["LCG_GFAL_INFOSYS"]="lcgbdii.gridpp.rl.ac.uk:2170" os.environ["CXX"]="g++" os.environ["CC"]="gcc" os.environ["PATH"]=os.environ.get("PATH",'')+":/cvmfs/pheno.egi.eu/HEJ/Dependencies/bin/" os.environ["PATH"]=os.environ.get("PATH",'')+":/cvmfs/pheno.egi.eu/HEJ/Dependencies/Rivet/bin/" os.environ["LD_LIBRARY_PATH"]="/cvmfs/pheno.egi.eu/HEJ/Dependencies/lib/" os.environ["LD_LIBRARY_PATH"]=os.environ.get("LD_LIBRARY_PATH",'')+":/cvmfs/pheno.egi.eu/HEJ/Dependencies/Rivet/lib/" scmd = "source /cvmfs/pheno.egi.eu/HEJ/Dependencies/root-6.02.08/bin/thisroot.sh;" scmd = scmd + "source /cvmfs/pheno.egi.eu/compilers/GCC/4.9.2/setup.sh;" scmd = scmd + "env -0" process = Popen(scmd, stdout=PIPE, stdin=PIPE, shell=True, executable="/bin/bash") output, unused_err = process.communicate() os.environ.update(line.partition('=')[::2] for line in output.split('\0'))
If you need other libraries to be added, check out the info in IPPP help.