The install_project.py script is foreseen for project installation on any platform. It installs the required version of a project with all their dependencies. It installs the sources and, on request, the binaries. It does not overwrite any already installed project. To re-install a project it is necessary to remove it first. The removal of a project does not remove any dependency. All but only binaries available at CERN on afs are available. The list of available projects can be found on software distribution.

Project tar ball and dependencies

  • tar.gz <project> file are built at release time: one for the sources,cmt,options,etc.. (cvs checkout), one per binary (without *.o, *.obj) stored in
    • $LHCBTAR/<PROJECT> , url=http://cern.ch/lhcbproject/dist/<PROJECT>
  • A html file is associated to every tar file to give the list of dependent projects:
    • stored on $LHCBTAR/html, url=http://cern.ch/lhcbproject/dist/html
  • A system tar file contains all system routines required to run a project on the GRID:
    • stored on $LHCBTAR/system, url=http://cern.ch/lhcbproject/dist/system
  • A script tar file contains some usefull scripts:
    • stored on $LHCBTAR/scripts, url=http://cern.ch/lhcbproject/dist/scripts
  • All external project tar files are stored on $LHCBTAR/source, url=http://cern.ch/lhcbproject/dist/source:
    • CMT tar files are built for linux and win32 platforms
    • OpenScientist tar files are built for various cern binary platforms
    • All LCG projects and external packages used by GAUDI are collected in one LCGCMT tar file one per cern binary platform.
    • Generator packages used by GAUSS are collected in one GENSER tar file one per linux cern plarform


  • python version >= 2.2.3 on Linux and 2.4.2 on win32.
  • Two environment variables must be defined before running the script:
    • MYSITEROOT is the full path of the directory you want to install on (* no soft or hard links*)
      • cd <somewhere>
      • setenv MYSITEROOT $PWD


The configuration is described in LHCb_config.py. This file is imported everytime the script is run. It must be updated in case of new project, new application.

def help() :
  print ' install_project.py - version %s:  install a project in the current directory '%(script_version)
  print """
    python install_project.py -p <project> -v <version> [-b| --binary=<bin> ] [-d or --debug] [-m <do_config|global|select>]
        $CMTCONFIG  is the binary directory name
    creates log/         to receive log files
            scripts/     to receive script files
            lcg/         to receive lcg software
            lhcb/        to receive lhcb software
            contrib/     to receive CMT and OpenScientist
            targz/       to receive tar files from the web
            $CMTCONFIG/  to receive runtime libraries
    download necessary scripts in scripts/
    get the list of projects to download
    download project sources
    if binaries are required: download project binaries
    otherwise compile project sources
    -d or --debug      : to print more info
    -l or --list       : to list the <project>_<version>_*.tar.gz files available on the web
    -r or --remove     : remove the <project>/<version>
    -c or --cmtversion : download this CMT version
    -m do_config       : to make a 'cmt broadcast cmt config' of all projects but LCGCMT
    -m global          : to compile all projects but LCGCMT
    -m select          : to compile only the project given in -p argument
    -h or --help       : to print this help
    -b                 : to import $CMTCONFIG binaries
    --binary=<bin>     : to import another binary (i.e. $CMTCONFIG_dbg on Linux)
                         this triggers a 'cmt broadcast cmt config' of all projects but LCGCMT
    -f                 : to import source, $CMTCONFIG binaries, $CMTCONFIG_dbg binaries and
                         to make a 'cmt broadcast cmt config' of all projects but LCGCMT
    requires python version >= 2.3.4 on Win32 and python >=2.2.3 on Linux
    the following environment variables should have been set before invoking the script:
          $MYSITEROOT is the full path of the current directory
          $MYSITEROOT is not a link.
          > cd $MYSITEROOT
          the answer given by the pwd command should be strickly identical to $MYSITEROOT
          $CMTCONFIG  is the binary directory name
          if you want to download binaries $CMTCONFIG should be identical to
          one the LHCb CERN platforms
    scripts and system tar.gz files are always download
    project tar.gz files are not download if they already exist.
    tar.gz file which cannot be untared is removed and a message is printed

-- FlorenceRanjard - 27 Mar 2007

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2007-03-27 - FlorenceRanjard
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback