Skip to content

Usage at CERN

Marcel R edited this page Apr 12, 2019 · 3 revisions

Setup law on lxplus (CC7)

Plain setup

Method 1: Load from afs.
source /afs/cern.ch/user/m/mrieger/public/law_sw/setup.sh

which luigi
# /afs/cern.ch/user/m/mrieger/public/law_sw/luigi/bin/luigi

which law
# /afs/cern.ch/user/m/mrieger/public/law_sw/law/bin/law
Method 2: Install via pip
pip install --user six luigi law

# make sure to update your PATH and PYHTONPATH
export PATH="$HOME/.local/bin:$PATH"
export PYTHONPATH="$HOME/.local/lib/python2.7/site-packages:$PYTHONPATH"

which luigi
# $HOME/.local/bin/luigi

which law
# $HOME/.local/bin/law

Setup with CMSSW

The setup with CMSSW is identical to the plain setup without CMSSW shown above.

Remote root:// files

If you plan to use law's remote file targets (which are build ontop of GFAL2 python-bindings) with XRootD support, make sure to update your GFAL plugins via:

source "$(law location)/contrib/cms/scripts/setup_gfal_plugins.sh" <path_to_new_gfal_plugin_dir>

In a CMSSW environment, all gfal plugins appear to work except for the XRootD plugin (libgfal_plugin_xrootd.so). The command above creates a new directory, symlinks the working gfal plugins from your system into it, downloads a custom compiled XRootD plugin, and exports the directory as GFAL_PLUGIN_DIR. This was tested with SCRAM_ARCH=slc{6,7}_amd64_gcc{630,700} and CMSSW 9/10.

Command-line auto completion

bash
source "$( law completion )"
zsh

zsh is able to load and evaluate bash completion scripts via bashcompinit. In order for bashcompinit to work, you should run compinstall to enable completion scripts:

autoload -Uz compinstall && compinstall

After following the instructions, these lines should be present in your ~/.zshrc:

# The following lines were added by compinstall
zstyle :compinstall filename '~/.zshrc'

autoload -Uz compinit
compinit
# End of lines added by compinstall

If this is the case, just source the law completion script (which internally enables bashcompinit) and you're good to go:

source "$( law completion )"