Install HallD Software on Ubuntu

From GlueXWiki
Revision as of 08:47, 21 February 2014 by Romanov (Talk | contribs)

Jump to: navigation, search

Here is a complete list of commands to install and run sim-recon on fresh installed Ubuntu. Tested with Ubuntu 13.10

Complete list means that one can open a terminal window after ubuntu instillation and setup halld software by copy/paste commands one by one.


0.

sudo apt-get update && apt-get upgrade


1. Install all things with dependencies. (Probably it is more than required for only gluex-software)

sudo apt-get install vim scons gcc subversion pythia8-root-interface python-dev libgeant321-2-dev 
sudo apt-get install geany-plugins clang llvm-dev build-essential libxft-dev cernlib-base-dev libxft-dev 
sudo apt-get install libfreetype6-dev:i386 paw libmysqlclient-dev libbz2-dev tcsh xutils-dev libcurl3-dev libatlas-base-dev


2. Create folder for HallD software in the home directory

cd
mkdir halld
cd halld


3. Get halld build scripts

svn checkout https://halldsvn.jlab.org/repos/trunk/scripts/build_scripts


4. Set halld environment on startup.

echo 'source ~/halld/build_scripts/gluex_env.sh'>>~/.bashrc

and update environment

source ~/.bashrc


5. Set clang to be a default compiler

sudo update-alternatives --set c++ /usr/bin/clang++

one can check and change it later by:

sudo update-alternatives --config c++


6. Build first bunch of things. Notice that clhep requires clhep directory to be created

make -f build_scripts/Makefile_all xerces_build
make -f build_scripts/Makefile_all hdds_build
make -f build_scripts/Makefile_all root_build
make -f build_scripts/Makefile_all ccdb_build
#to make clhep we have to create a dir 'clhep' in GLUEX_TOP
mkdir clhep
make -f build_scripts/Makefile_all clhep_make


7. Building cernlib requires several tricks.

First, cernlib requires gmake. Lets make gmake

sudo ln -s /usr/bin/make /usr/bin/gmake

There is a problem with freetype includes. We have to add it explicitly before building the lib. Add next environment variables in session where you build cernlib or add to ~/.bashrc

export C_INCLUDE_PATH=/usr/include/freetype2:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/include/freetype2:$CPLUS_INCLUDE_PATH

Apply fix for getarg_ problem (thanks for Mark's blog)

cp -v ~/halld/build_scripts/patches/getarg_fix/* programs/Simulation/HDGeant/

Finally build cernlib

make -f build_scripts/Makefile_all cernlib_build


8. JANA

SBMS looks for liblapack3 but ubuntu have it like liblapack.so.3 (This patch doesn't concern BMS build. But is required if one would like to use scons in future)

sudo ln -s /usr/lib/liblapack.so.3 /usr/lib/liblapack3.so

build

make -f build_scripts/Makefile_all jana_build


9. Finally we build sim-recon

make -f build_scripts/Makefile_all sim-recon_build


10. Test it working



SBMS

Alternative way is to build JANA and sim-recon using scons SBMS. Here are steps to steps 9 and 10 using SBMS


8. JANA

Create a directory for JANA

mkdir ~/halld/jana
cd ~/halld/jana

Choose and check out the latest tag. I use jana_0.7.1p1 as an example. Link 'prod' to jana_0.7.1p1

svn ls https://phys12svn.jlab.org/repos/tags
svn co https://phys12svn.jlab.org/repos/tags/jana_0.7.1p1
ln -s jana_0.7.1p1 prod

go to prod, build and install using scons.

cd ~/halld/jana/prod
scons
scons install

Jana created environment script which is have to be used before using jana. Add it to .bashrc

echo 'source ~/halld/jana/prod/$BMS_OSNAME/setenv.sh'>>~/.bashrc
source ~/.bashrc

9. sim-recon

Do the same steps to build sim-recon.

Create directory and checkout sim-recon

mkdir ~/halld/sim-recon
cd ~/halld/sim-recon
svn co https://halldsvn.jlab.org/repos/trunk/sim-recon trunk 
ln -s trunk prod

go to prod/src, build and install using scons.

cd ~/halld/sim-recon/prod/src
scons
scons install

Add environment script to .bashrc

echo 'source ~/halld/sim-recon/prod/$BMS_OSNAME/setenv.sh'>>~/.bashrc
source ~/.bashrc

Done!