Project

General

Profile

Software Installation From Source

Introduction

The entire LBNE software suite can be installed from source in an automated fashion. The automation is based on three ingredients:

Simple, Automated Installation

The simplest way to install from source is with the "lbneist" script.

  1. Download the high-level script: lbneinst
  2. Run it:
$ chmod +x ./lbneinst
$ ./lbneinst <tag>

The tag is of the form:

<name>-<version>-build-<buildversion>

The list of available tags can be found by checking LBNE_Software_Releases.

Note, the "lbneinst" script comes from this same repository and you may need to get a particular version of the script that matches the version of the LBNE suite you want to install.

Example with LArSoft

$ ./lbneinst larsoft-1.00.02_build-1

Piece-wise, Automated Installation

The "lbneinst" script simply automates some high-level steps and encodes a connection between the version of LBNE specific worch extensions and worch+waf themselves. These high level steps can be done explicitly:

Get the LBNE worch configuration

$ git clone http://cdcvs.fnal.gov/projects/lbne-software-worch

Note, if you wish to commit back you should either do the initial clone or add another remote using the URL:

ssh://p-lbne-software@cdcvs.fnal.gov/cvs/projects/lbne-software-worch

Select the suite version (optional)

The lbne-software-worch repository is tagged to indicate what it can build. The tag is composed of four parts as seen in the above example:

  • suite name :: this is a common name for the suite of software that can be built by the tagged release. It often is taken to be the name of the primary application (eg, "larsoft")
  • suite version :: this is a version string associated with the suite or primary application from the suite.
  • build-N :: a simple version indicating improvements in the build process itself for the particular suite
$ cd lbne-worch-config/
$ git checkout <tag>

Get worch itself

Worch is at:

$ git clone https://github.com/brettviren/worch.git

The specific version of worch should be relatively independent from the version of lbne-software-worch used but a specific version may be indicated by the settings in the file:

lbne-software-worch/scripts/lbneinst-config

It can be used to checkout a specific version.

Running waf

The git clone of worch contains a copy of waf. Currently a few fiddly-bits need massaging.

$ cp worch/wscript .
$ export PYTHONPATH=`pwd`/lbne-software-worch:`pwd`/worch
$ alias waf=`pwd`/worch/waf  # optional but convenient
$ waf [options] configure build

The required option is:

--orch-config=lbne-software-worch/config/suite-SUITE.cfg

Replace SUITE with the desired suite name.

Other likely options are:

--prefix=/path/to/final/install
--out=/path/to/fast/temporary/disk