Installing the LHCb Software on Ubuntu (and Debian)
Introduction
"we have no plans to create a traditional desktop product for the consumer market in the foreseeable future." --
redhat
, 2008/04/16. This leaves us with the real stuff:
Debian
, or rather Ubuntu.
Packages of CERN software residing in the CERN package repository can be found
here
.
System Installation and Tuning
In the following sections it is explained how to install Ubuntu and tune the installation in useful ways.
Getting Ubuntu
- Everything below works on 9.04 (and can upgrade flawlessly; but you do need to repeat the AFS step below).
- The smoothest way to install is simply to use the "Desktop" edition
- For LVM-s and funny hardware, choose the "Alternate" installation image. If you like KDE, you can do
sudo aptitude install kubuntu-desktop
, even if you didn't use Kubuntu install media
- When setting mirror for package sources, take care not to push "Select best mirror" button within CERN network, since it triggers ICMP traffic exceeding the CERN sec. policy threshold.
- make sure, that your system is up-to-date by typing:
sudo aptitude update
and sudo aptitude dist-upgrade
or sudo aptitude safe-upgrade
Installing "NICE" Alerter (RSS notifier)
-
sudo aptitude install liferea
and add a new feed http://cernalerts.web.cern.ch/cernalerts/alerts.aspx
. Adding the feed reader in System->Settings->Sessions will launch it upon login.
Installing ROOT (properly)
Note: this is not strictly needed because we distribute all the required special libraries in our software kits.
- ROOT has become part of Debian as of Lenny. Look for packages root-system (~-common and all other libraries, modules, plugins etc. )
Installing CLHEP and others (properly)
Note: this is not strictly needed because we distribute all the required special libraries in our software kits.
Installing required packages
-
sudo aptitude install cvs build-essential krb5-clients openafs-client openafs-modules-source module-assistant openafs-krb5 krb5-auth-dialog libmotif3 libmotif-dev xnest
. Our AFS Cell and Kerberos server is cern.ch
# => generate /afs dynamic => yes (but it will show up in the configuration tool...). If you think you made an error don't worry, you can always run sudo dpkg-reconfigure openafs-client
later on. Optionally you can sudo cp /afs/cern.ch/common/CellServDB /etc/openafs/
- ATTENTION! the following step will be needed after each kernel update:
sudo module-assistant auto-install openafs
- restart OpenAFS:
sudo /etc/init.d/openafs-client force-start
- and maybe you might also want to install a nice development environment (apart from emacs and vim
sudo aptitude install eclipse eclipse-cdt svn meld kompare maxima koctave libgnome-vfs-common sshfs openjdk-6-jre gnash gnome-do gnome-do-plugin* valgrind alleyoop kcachegrind
etc. feel free to browse "System->Administration->Synaptic" and "Applications->Add/Remove...". Optionally Oracle for Ubuntu
is available for local installation (though the LCG on AFS also works fine). I suggest using Eclipse with Open Java 6, it is much faster than gcj (look inside the file /etc/eclipse/java_home
and add the line /usr/lib/jvm/java-6-openjdk
if needed).
CERN issued multimedia keyboards
-
sudo aptitude install keytouch keytouch-data keytouch-editor
helps to bind special keys.
Using CMT
- after having installed everything above, you can authenticate yourself to access your AFS directories:
klog.afs cernUsername@cern.ch
- save your current PATH entries to SAVEPATH, because CMT scripts will overwrite it...
- now you can source the appropriate scripts (
CMT.[c]sh
likes to set gcc433-5ubuntu4
in CMTCONFIG), so take care to set CMTCONFIG before and after CMT.[c]sh:
. /afs/cern.ch/lhcb/scripts/lhcbsetup.sh
;
export CMTCONFIG=x86_64-slc5-gcc43-opt
;
. /afs/cern.ch/lhcb/scripts/CMT.sh
;
export CMTCONFIG=x86_64-slc5-gcc43-opt
CVS access via SSH
- after having sourced your project's setup, launch
eclipse&
from the given prompt. Then choose File->New Project->Standard Make C++ Project and navigate to your project directory. If you put a stub Makefile just below the project version directory and point eclipse project to this directory, then Build and Clean will also automagically work, along with the interactive debugging view.
- an example stub Makefile:
all:
$(MAKE) all -C cmt
# Any specified target is redirected to the cmt directory for
# building.
%:
$(MAKE) $* -C cmt
Vim with LHCb coding conventions
You might want to add the following lines to your
~/.vimrc
:
set showfulltag
set softtabstop=2
set tabstop=2
set shiftwidth=2
set expandtab
and optionally some other useful things:
syntax on
set number
Accessing CASTOR
You might also like to try to also mount CASTOR via fuse
CastorFS
.
Printing
CERN documentation
Select Administration-->Printing and select add new printer. Choose Network: Unix Printer (LPD/LPR Host or Printer).
- Enter the Host name as the full printer DNS name BUT without the letter "B" and ended by ".print.cern.ch" ex. "2-cor" must be entered as
2-cor.print.cern.ch
- Enter the Queue name, using the normal DNS name BUT also without the letter B ex. "B2-cor" must be entered as
2-cor
- Select the correct manufacturer and printer model or family ex. "HP" and
HP LaserJet 8150 Series Postscript (recommended)
, click on "Add" and "Continue"
Backup, restore
To backup your data, you might like
flyback
. For your package selection, type
sudo dpkg --get-selections > /tmp/dpkglist.txt
and after you have made a clean install (for whatever reason), you can type
sudo dpkg --set-selections < /tmp/dpkglist.txt
, then
sudo apt-get -y update
and finally
sudo apt-get dselect-upgrade
to restore your package selection.
Installing and Using LHCb Software
LHCb precompiled software can work on Ubuntu, but a few special actions are needed. (the following instructions have been tested on (K)Ubuntu 12.04)
First follow the installation instructions at
SoftwareInstallation, but set
CMTCONFIG
to
x86_64-slc5-gcc46-opt
, if the application you want to install has been built on gcc 4.6 (Panoramix, for example, does not have a gcc 4.6 build).
This is usually enough to be able to run applications, but if you want to compile, you have to follow the following steps:
- remove the directory
$MYSITEROOT/lcg/external/gcc
gcc 4.3 cannot understand some system headers present on recent platforms (gcc >= 4.4), so it is better to use the system compiler
- install the version of gccxml from Ubuntu (the version of gccxml we distribute does not understand the headers too)
sudo apt-get install gccxml
- create the directory
$MYSITEROOT/cmtusercontext
and create inside it a file called requirements
with this content:
macro_remove cpp_name "lcg-"
macro_remove cpp_name "-$(gcc_config_version)"
macro GCCXML_home "/usr"
- create the file
$MYSITEROOT/MyLbLogin.sh
, in which you should put something like this:
msr=/path/to/my/siteroot
export CMTUSERCONTEXT=$msr/cmtusercontext
. $msr/LbLogin.sh -c x86_64-slc5-gcc46-opt
where, of course, you replaced /path/to/my/siteroot
with the path you used to set $MYSITEROOT
, and the argument to LbLogin with the CMTCONFIG you actually used.