SFT Packages (lsetup sft)
WARNING: This page is obsolete.
Use lcgenv instead. SFT is depreciated
This is for power users or advanced users who need to setup LCG External packages standalone (i.e. outside Athena). These packages are available in the cvmfs sft repository and ATLASLocalRootBase provides a menu option to set this up. For usage, please type
lsetup sft --help
Requesting New Software or Versions in SFT
The SFT repository is not maintained by ATLAS but by CERN's SFT team and is intended for all experiments. As such, any new requests must go through ATLAS and our representative will then discuss it with the SFT Team and other experiments at scheduled meetings.
If there is a request it should be well explained (so that it can be understood), justified and then brought to few ATLAS experts (in SIT eGroup) for final discussion/agreement. Please also include information as to who else is requesting this and their institutes - it is useful to understand there is a general ATLAS need.
Note that if you find what you are looking for in
/afs/cern.ch/sw/lcg/releases or
/afs/cern.ch/sw/lcg/external but it is not yet available on
/cvmfs/sft.cern.ch/lcg, it will be easier to get that installed than a new package or version.
What is Setup
Only gcc and python will be setup; no other dependencies will be setup automatically. It is the user’s responsibility to setup any other dependent packages through
lsetup sft.
Available Packages
showVersions sft will show all available lcg external packages and versions.
If you have either Athena or standalone ROOT setup, it will show only those available for that cmtconfig value.
Alternately, you can specify
showVersions sft --cmtConfig=<value>
or
showVersions sft --cmtConfig=showAll
where value should be one of these ATLAS supported ones:
- i686-slc5-gcc43-opt
- x86_64-slc5-gcc43-opt
- x86_64-slc6-gcc47-opt
- x86_64-slc6-gcc48-opt
Note that there are many packages listed - some of which you should not setup (e.g. Grid related, ROOT, XROOTD, Python, gcc - which are already provided in the main menu when you type setupATLAS or done transparently for you). Rather than restrict these, I assume you are a power user who knows what you are doing !
# example: a snapshot of what is available in Feb 2014; this will change.
$ showVersions sft
sft versions:
external/Boost/1.42.0_python2.5
external/Boost/1.44.0_python2.5
external/Boost/1.44.0_python2.6
external/Boost/1.48.0_python2.6
external/Boost/1.48.0p1_python2.6
external/Boost/1.50.0_python2.6
external/Boost/1.50.0_python2.7
external/Boost/1.53.0_python2.4
external/Boost/1.53.0_python2.7
external/CMake/2.6.4
external/CMake/2.8.6
...
external/xrootd/3.2.4
external/xrootd/3.2.7
external/zlib/1.2.3p1
external/zlib/1.2.5
...Type lsetup sft --help for usage
Setup
- Type
setupATLAS to setup the ATLASLocalRootBase UI if you have not already done it. * Get a version of the lcg external package you want to setup as described in the previous section.
- Set up (you may need to specify the option
-cmtconfig if you do not have Athena or standalone ROOT setup before or set them up at the same time with sft using lsetup.):
-
lsetup "sft <package version>"
- note that you can setup multiple packages, delimit them with commas.
- You can also setup other non-sft tools with setup in addition to the sft packages. e.g., you can setup athena or root or an ASG release on the same line as setup (and you do not need to specify the --cmtconfig value).
- Note that you may need to setup additional environment variables which you can access through the conveniently defined
$SFT_HOME_<package> environment variable (listed in the output when setup).
- The setups only define generic environments - such as the PATH, LD_LIBRARY_PATH and PYTHONPATH. If you think others need to be defined (and is not convenient to use through
$SFT_HOME_<package>), let us know.
Examples
Boost
eg for a native SL6 version,
$ showVersions sft --cmtConfig=x86_64-slc6-gcc47-opt | grep -i boost
external/Boost/1.50.0_python2.7
external/Boost/1.53.0_python2.7
$ lsetup "sft--cmtconfig=x86_64-slc6-gcc47-opt external/Boost/1.50.0_python2.7"
************************************************************************
Current GCC version: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)
Setting up gcc version gcc472p1_x86_64_slc6
Python version in your path is 2.6
Setting up Python version 2.7.3-x86_64-slc6-gcc47
Setting up Boost 1.50.0_python2.7 ...
The env $SFT_HOME_Boost is the home dir
The env $SFT_BOOST_INCLUDE is the include dir
************************************************************************
If you are compiling and need the Boost header files, you may need to add to the gcc options
-I $SFT_BOOST_INCLUDE and / or define
export BOOST_ROOT=$SFT_HOME_Boost
fastjet
eg for a native SL6 version,
$ showVersions sft --cmtConfig=x86_64-slc6-gcc47-opt | grep -i fastjet
external/fastjet/3.0.3
$ lsetup "sft --cmtconfig=x86_64-slc6-gcc47-opt external/fastjet/3.0.3"
************************************************************************
Current GCC version: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)
Setting up gcc version gcc472p1_x86_64_slc6
Python version in your path is 2.6
Setting up Python version 2.7.3-x86_64-slc6-gcc47
Setting up fastjet 3.0.3 ...
The env $SFT_HOME_fastjet is the home dir
************************************************************************
pyanalysis (numpy, scipy, etc)
eg for a native SL6 version (note additional lapack and blas packages)
$ showVersions sft --cmtConfig=x86_64-slc6-gcc47-opt | grep -i -e pyanalysis -e lapack -e blas
external/blas/20110419
external/lapack/3.4.0
external/pyanalysis/1.3_python2.7
$ lsetup "sft --cmtconfig=x86_64-slc6-gcc47-opt external/pyanalysis/1.3_python2.7,external/lapack/3.4.0,external/blas/20110419"
************************************************************************
Current GCC version: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)
Setting up gcc version gcc472p1_x86_64_slc6
Python version in your path is 2.6
Setting up Python version 2.7.3-x86_64-slc6-gcc47
Setting up pyanalysis 1.3_python2.7 ...
The env $SFT_HOME_pyanalysis is the home dir
Setting up lapack 3.4.0 ...
The env $SFT_HOME_lapack is the home dir
Setting up blas 20110419 ...
The env $SFT_HOME_blas is the home dir
************************************************************************
import numpy or
import scipy or
import matplotlib should now work in python.
rivet
eg for a native SL6 version (you need gsl unless it is installed on your system)
$ showVersions sft --cmtConfig=x86_64-slc6-gcc47-opt | grep -i -e rivet -e gsl
external/GSL/1.10
external/MCGenerators_lcgcmt65/rivet/1.8.2
external/MCGenerators_lcgcmt65/rivet/1.8.3
external/MCGenerators_lcgcmt65/rivet/1.9.0
external/MCGenerators_lcgcmt65/rivet/2.0.0
external/MCGenerators_lcgcmt65/rivet/2.1.0
external/MCGenerators_lcgcmt65/rivet/2.1.1
external/MCGenerators_lcgcmt65a/rivet/1.8.2
external/MCGenerators_lcgcmt65a/rivet/1.8.3
external/MCGenerators_lcgcmt65a/rivet/1.9.0
external/MCGenerators_lcgcmt65a/rivet/2.0.0
external/MCGenerators_lcgcmt67b/rivet/1.8.3
external/MCGenerators_lcgcmt67b/rivet/1.9.0
external/MCGenerators_lcgcmt67b/rivet/2.0.0
external/MCGenerators_lcgcmt67b/rivet/2.1.0
external/MCGenerators_lcgcmt67b/rivet/2.1.1
external/MCGenerators_lcgcmt67b/rivet/2.1.2
external/MCGenerators_lcgcmt67b/rivet/2.2.0
external/MCGenerators_lcgcmt67c/rivet/1.8.3
external/MCGenerators_lcgcmt67c/rivet/1.9.0
external/MCGenerators_lcgcmt67c/rivet/2.1.1
external/MCGenerators_lcgcmt67c/rivet/2.1.2
external/MCGenerators_lcgcmt67c/rivet/2.2.0
$ lsetup "sft external/MCGenerators_lcgcmt65/rivet/1.8.3,external/GSL/1.10 --cmtconfig=x86_64-slc6-gcc47-opt"
************************************************************************
Current GCC version: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)
Setting up gcc version gcc472p1_x86_64_slc6
Python version in your path is 2.6
Setting up Python version 2.7.3-x86_64-slc6-gcc47
Setting up rivet 1.8.3 ...
The env $SFT_HOME_rivet is the home dir
Setting up GSL 1.10 ...
The env $SFT_HOME_GSL is the home dir
************************************************************************
You may need to set up these environment variables which are listed from
river --help
ENVIRONMENT:
* RIVET_ANALYSIS_PATH: list of paths to be searched for plugin
analysis libraries at runtime
* RIVET_REF_PATH: list of paths to be searched for reference
data files
* RIVET_INFO_PATH: list of paths to be searched for analysis
metadata files