SFT
The CERN SFT group maintains a repository of all sorts of software. The PDP group has yet to explore all the options.
Setting up a C/C++ compiler
One question we are frequently asked is, "how do I I get gcc <instead version here> installed"? SFT can do this for you. SFT is accessible via the CVMFS service. Check to see if you have CVMFS and if SFT is configured:
stbc-i2:~> ls /cvmfs/atlas.cern.ch repo stbc-i2:~> ls /cvmfs/sft.cern.ch lcg
If you don't get the same output, contact the helpdesk. It should work on newer desktop machines and on all stoomboot machines (both batch and interactive).
To set up the C compiler, look here to find the releases you could use:
stbc-i2:~> ls -ld /cvmfs/sft.cern.ch/lcg/releases/LCG_* drwxr-xr-x. 67 cvmfs cvmfs 7 Jul 6 21:04 /cvmfs/sft.cern.ch/lcg/releases/LCG_78root6 drwxr-xr-x. 67 cvmfs cvmfs 90 Jul 16 17:23 /cvmfs/sft.cern.ch/lcg/releases/LCG_79 drwxr-xr-x. 71 cvmfs cvmfs 104 Oct 20 03:59 /cvmfs/sft.cern.ch/lcg/releases/LCG_80
The newest release of the SFT suite is hence LCG_80 right now, you will probably find a newer one when you run it. Pick the newest one.
stbc-i2:~> ls /cvmfs/sft.cern.ch/lcg/releases/LCG_80/gcc/ 4.8.4 4.9.3
These are the two gcc releases available. Suppose you want 4.8.4. Set it up with the command
source /cvmfs/sft.cern.ch/lcg/releases/LCG_80/gcc/4.8.4/x86_64-slc6/setup.sh stbc-i2:~> gcc --version gcc (GCC) 4.8.4
At this point you are ready to use gcc 4.8.4.
Setting up Geant4
As of this writing, Geant4 10.01.p02 is available in SFT. Scripts are available in
stbc-i2:~> ls /cvmfs/sft.cern.ch/lcg/releases/LCG_80/Geant4/10.01.p02/x86_64-slc6-gcc48-opt/bin/ geant4-config geant4.csh geant4.sh
geant4.(c)sh appear to make sure that all the needed libraries are in your path before you run a program requiring Geant4 libraries. geant4-config appears to print out the flags needed to compile and link with those libraries:
/cvmfs/sft.cern.ch/lcg/releases/LCG_80/Geant4/10.01.p02/x86_64-slc6-gcc48-opt/bin/geant4-config --cflags -DG4INTY_USE_XT -DG4VIS_USE_OPENGL -DG4UI_USE_TCSH -DG4INTY_USE_QT -DG4UI_USE_QT -DG4VIS_USE_OPENGLQT -I/cvmfs/sft.cern.ch/lcg/releases/qt/4.8.4-f642c/x86_64-slc6-gcc48-opt/include/QtCore -I/cvmfs/sft.cern.ch/lcg/releases/qt/4.8.4-f642c/x86_64-slc6-gcc48-opt/include/QtGui -I/cvmfs/sft.cern.ch/lcg/releases/qt/4.8.4-f642c/x86_64-slc6-gcc48-opt/include/QtOpenGL -DG4UI_USE_XM -DG4VIS_USE_OPENGLXM -DG4VIS_USE_RAYTRACERX -DG4VIS_USE_OPENGLX -W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow -pipe -pthread -ftls-model=initial-exec -std=c++11 -DG4USE_STD11 -DG4MULTITHREADED -I/cvmfs/sft.cern.ch/lcg/releases/LCG_80/Geant4/10.01.p02/x86_64-slc6-gcc48-opt/bin/../include/Geant4 -I/cvmfs/sft.cern.ch/lcg/releases/XercesC/3.1.1p1-8ccd5/x86_64-slc6-gcc48-opt/include
Make sure you use the matching gcc version when you do this ... if you've set up gcc 4.8.4 when this Geant (with x86_64-slc6-gcc48-opt) is the right one.