Up ILC Soft General Documentation ilcinstall documentation  · 

ilcinstall documentation

To install an iLCSoft release start by downloading the tarball from this location containing the appropriate ilcinstall version (e.g. v01-11) or use subversion as follows:

svn co https://svnsrv.desy.de/public/ilctools/ilcinstall/tags/$version ilcinstall-$version

After downloading (and unpacking the tarball in case you didn't use svn) you should find under the directory ./releases/ a folder containing all the configuration files to install the release, i.e.:

releases/v01-11/release-versions.py # this file contains the versions of the tools to be installed
releases/v01-11/release-base.cfg # this file contains the 'base-tools', i.e. tools with no dependencies
releases/v01-11/release-ilcsoft.cfg # this file contains the 'ilcsoft-tools' (needs to link with tools from 'base-tools')
releases/v01-11/release-scratch.cfg # this file contais both, 'base-tools' and 'ilcsoft-tools' together in one file (simpler to install)

Start by editing the file releases/v01-11/release-versions.py and modify the installation path ($ilcsoft_install_prefix) as needed.

Now one needs to choose if the whole release should be installed (using release-scratch.cfg) or just the ILCSoft tools (release-ilcsoft.cfg)
An installation of the 'base-tools' (installable with release-base.cfg) needs to be available in order to use release-ilcsoft.cfg, e.g. the afs reference installations:
/afs/desy.de/project/ilcsoft/sw/x86_64_gcc41_sl5/v01-11/init_ilcsoft.sh   # v01-11 for SL5 64bit or compatible
/afs/desy.de/project/ilcsoft/sw/i386_gcc41_sl5/v01-11/init_ilcsoft.sh         # v01-11 for SL5 32bit or compatible
/afs/desy.de/project/ilcsoft/sw/i386_gcc34_sl4/v01-11/init_ilcsoft.sh         # v01-11 for SL4 32bit or compatible

To proceed edit the appropriate configuration file (release-scratch.cfg or release-ilcsoft.cfg) and comment out any packages which you do not need by putting a '#' in front of the line, e.g.:
#ilcsoft.install( Eutelescope( Eutelescope_version ))
#ilcsoft.install( MarlinTPC( MarlinTPC_version ))

Note that packages might depend on each other, so commenting out a package might require to also comment out other packages depending on it (e.g. Mokka -> Geant4).
To check the dependencies run ./ilcsoft-install with your config file without any option, e.g.:
./ilcsoft-install releases/v01-11/release-scratch.cfg # this should display the installation summary (including inter-package dependencies)

Be aware that ilcinstall does not support installation of MYSQL, JAVA, ROOT, CERNLIB or GEANT4.
These tools should be installed locally by yourself or by your site administrator. ilcinstall needs to 'link' this tools in the configuration file by using the appropriate paths, examples:

ilcsoft.link( ROOT( ilcPath + "root/" + ROOT_version )) # if ilcPath is set to an ilcsoft 'base-tools' installation directory containing a subfolder root/5.xx.xx
ilcsoft.link( ROOT( "/path/to/my/root/" )) # just hard-code full path to a root installation (the version should be equal or compatible)
ilcsoft.link( MySQL( ilcPath + "mysql/" + MySQL_version )) # or: ilcsoft.link( MySQL( "/usr/" ))
ilcsoft.link( Java( ilcPath + "java/" + Java_version ))
ilcsoft.use( Geant4 ( "/path/to/geant4/" ))
ilcsoft.module("Geant4").env["G4ENV_INIT"] = "/path/to/my/geant4/env.sh" # script to initialize geant4 settings
ilcsoft.link( CERNLIB( "/path/to/cernlib/" ))

Note: the conventional paths to all packages should include the version number in the very last directory, e.g. /usr/local/root/5.28.00 (or /usr/local/root-5.28.00) and /usr/local/geant4/9.5. The version of GEANT4 is determined as e.g. 9.5 and NOT as 4.9.5, therefore the paths like /usr/local/geant_4.9.5 should be avoided. It would be easier to link the latter as

   ln -s [whatever geant4 path is] $ilcPath/geant4/9.5

or similar.

Note for non-SL users:
The tool was originally written to support the Scientific Linux installation, but it was also tested on different platforms (e.g. Arch Linux, Ubuntu 12.04). There are minor modifications that are needed to use ilcinstall. You might already have system-wide installation of several packages, e.g. QT or GSL. If this is the case and ilcinstall does not find some of them, you might want to modify some paths in the corresponding scripts. E.g. if the Qt is installed in /usr/lib/x86_64-linux-gnu/libQtCore.so (like in Ubuntu 12.04), you need to modify $ilctools/[version]/ilcsoft/qt.py

   self.reqfiles = [
       ["lib/libQtCore.so", "lib64/libQtCore.so", "lib/libQtCore.dylib", "lib/QtCore.la", \
        "lib/qt-3.1/lib/libqt.so", "lib/qt-3.3/lib/libqt-mt.so", "lib/x86_64-linux-gnu/libQtCore.so" ],
       [same for QtGui libraries]

and be sure to specify the path to QT as "/usr" in release-ilcsoft.cfg. The changes against this "hack" in the ilcinstall scripts are in progress.

After you have finalized editing the configuration file check once again if everything is ok by displaying the installation summary and finally call ilcsoft-install with option '-i' to start the installation procedure, e.g.:
./ilcsoft-install releases/v01-11/release-scratch.cfg -i # start installation!

Please use the forum if you encounter any problems.

Final note: there are a couple of required system packages which might not be installed per default in case you are using a debian / ubuntu distribution, such as: build-essential cmake subversion libmysqlclient-dev freeglut3-dev zlib1g-dev libqt4-dev cernlib-core-dev default-jdk libxpm-dev libxmu-dev lesstif2-dev doxygen latex2html

Good luck :)