How to install software
ILC software install on Scientific Linux 5.7
The instruction to install software for ILC detector studies are described below, assuming a user using Scientific Linux 5.7, 64 bit. Please note that the instruction below is not complete. Please use them with caution. Please notte that some commands is not applicable to 32 bit system.(i386)
As a summary following packages have to be installed.
Packages | Install location |
gfortran 4.6.2 ( because Whizard wants the latest gfortran ). | /opt/gcc-4.6.2 |
Utilities such as cernlib, QT, CMake, CLHEP, ROOT, ... | /proj/soft/gcc462/ext |
ilcsoft | /proj/soft/gcc462/ilcsoft/v01-13-01 |
SimTools | /proj/soft/gcc462/Release/1.48 |
GRID UI | /opt/ |
Don't forget to set LD_LIBRARY_PATH and PATH variables to point gcc lib and bin directory after gcc and gfortran are installed.
gfortran
Whizard event generator requires the latest gfortran. Thus the lates gcc and gfortran are installed and used in the following built. Packages installed are, gmp, mpfr, mpc, gcc. The working directory is ~/utils. Gfortran wiki page is found at http://gcc.gnu.org/wiki/GFortran
Prior to the installation, do
# yum install expect, dejagnu, tcl
as a super user. Then do following command.
$ export CFLAGS=" -fPIC -m64 "
$ export LD_LIBRARY_PATH=/opt/gcc-4.6.2
$ wget ftp://ftp.gmplib.org/pub/gmp-5.0.2/gmp-5.0.2.tar.bz2
$ tar jxvf ../orig/gmp-5.0.2.tar.bz2
$ ./configure --prefix=/opt/gcc-4.6.2
$ make
$ make check
$ make install ( as a user user )
$ wget http://www.mpfr.org/mpfr-current/mpfr-3.1.0.tar.gz
$ cd ../
$ mkdir mpfr
$ cd mpfr
$ tar zxvf ../orig/mpfr-3.1.0.tar.gz
$ cd mpfr-3.1.0
$ ./configure --prefix=/opt/gcc-4.6.2 --with-gmp=/opt/gcc-4.6.2
$ make
$ make check
$ make install ( as a super user )
$ wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
$ cd ../
$ mkdir mpc
$ cd mpc
$ tar zxvf ../orig/mpc-0.9.tar.gz
$ cd mpc-0.9
$ ./configure --prefix=/opt/gcc-4.6.2 --with-gmp=/opt/gcc-4.6.2 \
--with-mpfr=/opt/gcc-4.6.2
$ make
$ make check
$ make install ( as a user user )
$ wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.6.2/gcc-4.6.2.tar.gz
$ cd ../gcc
$ tar zxvf ../orig/gcc-4.6.2.tar.gz
$ mkdir build-4.6.2
$ cd build-4.6.2
$ /home/miyamoto/soft/utils/gcc-4.6.2/configure --enable-languages=c,c++,fortran --prefix=/opt/gcc-4.6.2 \
> --with-mpc=/opt/gcc-4.6.2 --with-mpfr=/opt/gcc-4.6.2 --with-gmp=/opt/gcc-4.6.2
# Path to configure must be full-path
$ make -j 16 ( instead of 16, use the number of cores of your system)
$ make check
$ make install ( as a super user )
# Test gcc
# See http://gcc.gnu.org/install/test.html
$ export TCL_LIBRARY=/usr/share/tcl8.4
$ export DEJAGNULIBS=/usr/share/dejagnu
$ make -k check
For easy set up of gcc-4.6.2 environment,
$ cat <<EOF > /opt/gcc-4.6.2/setup-gcc462.sh
export LD_LIBRARY_PATH=/opt/gcc-4.6.2/lib64:/opt/gcc-4.6.2/lib:${LD_LIBRARY_PATH}
export PATH=/opt/gcc-4.6.2/bin:${PATH}
EOF
Utilities
CLHEP
$ . /proj/soft/gcc462/setup-gcc462.sh
$ cd ~/soft/ext/CLHEP
$ ( cd orig && wget http:// somewhare ... )
$ version=2.1.0.1
$ prefixdir=/proj/soft/gcc462/ext/CLHEP/${version}
$ srctgz=../orig/clhep-${version}.tgz
$ tar zxvf ${srctgz}
$ cd ${version}/CLHEP
$ ./configure --prefix=${prefixdir}
$ make -j 8
$ make check
# make install ( as a super user )
CERNLIB
64-bit version of CERNLIB-2005 were installed. The installed script (install_whizard-64)include patch for 64 bit build were prepared by Mikael Berrgren and its copy is available in http://www-jlc-in.kek.jp/~miyamoto/CDS/tools/files-for-whizard-64-am.tar.gz. The script installs the package at current diretory, thus cernlib is installed directory to /proj/soft/gcc462/ext. The instruction is as follows.
$ cd /proj/soft/gcc462/ext/cernlib
$ wget http://www-jlc-in.kek.jp/~miyamoto/CDS/tools/files-for-whizard-64-am.tar.gz
$ tar zxf files-for-whizard-64-am.tar.gz
$ . install_whizard-64
$ define_cernlib install
$ ln -s cernlib_64/2005 2005
$ cd cernlib_64
$ tar zxf include.tar.gz
CMake
ilcsoft requires the latter version of CMake. The instruction is
$ cd ~/soft/ext/CMake/orig
$ wget http://www.cmake.org/files/v2.8/cmake-2.8.7.tar.gz
$ cd ~/soft/ext/CMake/
$ . /proj/soft/gcc462/setup-gc462.sh
$ version=2.8.7
$ destdir=/proj/soft/gcc462/ext/CMake/${version}
$ tar zxvf orig/cmake-${version}.tar.gz
$ cd cmake-${version}
$ ./configure --prefix=${destdir}
$ make -j 8
# make install ( as a super user )
GSL
gsl(gnu scientific library) is required to build ROOT library with mathmore option. It is also required by ilcsoft. To install
$ cd ~/soft/ext/gsl/orig
$ wget http://...../gsl-1.15.tar.gz
$ cd ~/soft/ext/gsl/
$ version=1.15
$ libdir=/proj/soft/gcc462/ext
$ prefixdir=${libdir}/gsl/${version}
$ makenum=8
$ tar zxf orig/gsl-${version}.tar.gz
$ cd gsl-${version}
$ ./configure --prefix=${prefixdir}
$ make -j ${makenum}
# make install ( as a super user )
QT
qt is a library for window display. it is used by geant4 and ilcsoft (OED ? ). To install,
$ cd ~/soft/ext/QT/orig
$ wget http://....somewhere.../qt-everywhere-opensource-src-4.8.0.tar.gz
$ cd ~/soft/ext/QT/
$ tar zxf orig/qt-everywhere-opensource-src-4.8.0.tar.gz
$ version=4.8.0
$ libdir=/proj/soft/gcc462/ext
$ prefixdir=${libdir}/QT/${version}
$ cd qt-everywhere-opensource-src-${version}
$ ./configure -prefix ${prefixdir}
==> reply to prompt and proper licence term, after end of configuration,
$ make -j 16
# make install ( as a super user )
Pythia
pythia is used by Whizard and root. For ILC DBD study, pythia version, 6.4.22 was selected. A script is prepared by Mikael to build library compatible with whizard and root. to install,
$ cd /proj/soft/gcc462/ext/pythia
$ wget http://www-jlc.kek.jp/~miyamoto/CDS/tools/pythia-build-tools.tar.gz
$ tar zxf pythia-build-tools.tar.gz
$ version=6.4.22
$ ver2=$(echo $version | sed -e s/\\./_/ | tr -d ".")
$ ver3=$(echo $ver2 | tr -d "_" )$ local here
$ here=`pwd`
$ bash ./tools/build_pythia6.sh ${version} gfortran
$ cd v${ver2}/src
$ cp ${here}/tools/upinit.f .
$ patch -p0 < ${here}/tools/pydecy.f-patch
$ make
$ cd ../lib
$ mv liblund.a ${here}/../cernlib/2005/lib/libpythia${ver3}.a
ROOT
$ cd ~/soft/ext/root/orig
$ wget http://..... some where .../root_v5.28.00h.source.tar.gz
$ cd ..
$ tar zxf orig/root_v5.28.00h.source.tar.gz
$ version=5.28.00h
$ extdir=/proj/soft/gcc462/ext
$ pythialibdir=${extdir}/pythia/6.4.22/lib
$ prefixdir=${extdir}/root/${version}
$ local here
$ here=`pwd`
$ mv root ${version}
$ cd ${version}
$ ./configure linuxx8664gcc \
--prefix=${prefixdir} \
--enable-gsl-shared \
--incdir=${prefixdir}/include \
--libdir=${prefixdir}/lib \
--with-gsl-incdir=${extdir}/gsl/1.15/include \
--with-gsl-libdir=${extdir}/gsl/1.15/lib \
--enable-minuit2 --enable-gdml --enable-mathmore \
--enable-python --enable-pythia6 \
--with-pythia6-libdir=${pythialibdir}
$ make -j 16
# make install ( as a super user )
stdhep
stdhep is a library for generator files. Patch file is prepared to build library on 64 bit system with fPIC option.
$ version=5-06-01
$ prefix=/proj/soft/gcc462/ext/stdhep
$ mkdir -p ${prefix}
$ pushd ${prefix}
$ wget http://cepa.fnal.gov/dist/stdhep/stdhep-${version}.tar.gz
$ tar -zxf stdhep-${version}.tar.gz
$ wget http://www-jlc.kek.jp/~miyamoto/CDS/tools/stdhep-${version}.diff
$ patchfile=stdhep-${version}.diff
$ cd stdhep-${version}
$ patch -b -p 1 < ../${patchfile}
$ gmake all
$ cd ${prefix}
$ vers=$( echo ${version} | sed -e "s/-/\./g" )
$ ln -sf stdhep-${version} ${vers}
$ rm -fv stdhep-${version}.tar.gz
ocaml
ocaml is used by whizard to build fortran program to calculate scattering amplitude.
$ cd ~/soft/ext/ocaml/orig
$ wget http://caml.inria.fr/pub/distrib/ocaml-3.12/ocaml-3.12.1.tar.gz
$ version=3.12.1
$ libdir=/proj/soft/gcc462/ext
$ prefixdir=${libdir}/ocaml/${version}
$ tar zxf orig/ocaml-${version}.tar.gz
$ cd ocaml-${version}
$ ./configure -prefix ${prefixdir}
$
# According to Mikael,
# ( sometimes the make gets a 'Text file busy' error, this is why
# it is re-run. boot/ocamlrun gives an error, but makes the
# file available in the the following step)
$ echo "`date` make world.opt 1st"
$ make world.opt
$ sleep 1
$ boot/ocamlrun
$ boot/ocamlrun
$ boot/ocamlrun
$ sleep 1
$ echo "`date` make world.opt 2nd"
$ make world.opt
$ sleep 1
$ boot/ocamlrun
$ boot/ocamlrun
$ boot/ocamlrun
$ sleep 1
$ echo "`date` make 1nstall 1st"
$ make install
$ sleep 1
$ boot/ocamlrun
$ boot/ocamlrun
$ boot/ocamlrun
$ sleep 1
$ echo "`date` make install 2nd"
# make install ( as a super user )
tauola
A script to build tauola will be found at http://www-jlc.kek.jp/~miyamoto/CDS/tools/tauola-buildcmd.sh To install,
$ wget http://www-jlc.kek.jp/~miyamoto/CDS/tools/tauola-buildcmd.sh
$ chmod +x tauola-buildcmd.sh
$ ./tauola-buildcmd.sh /proj/soft/gcc462/ext/tauola
A directory to install tauola can be specified as the first argument of tauola-buildcmd.sh script.
geant4
Get source code and data from http://geant4.cern.ch/, unpack and install. The procedure is
$ cd /proj/soft/gcc462/ext/geant4
$ tar zxf [somewhere]/geant4.9.4.p03.tar.gz
$ cd geant4.9.p03
$ ( mkdir data && unpack g4 data files )
$ ./Configure -build
reply to prompt properly. Example of geant4 configuration log will be found in geant4.9.4.p03-install-log.txt Make will start after configuration. When completed, do
$ ./Configure -install
This command will install library and include file in proper location.
ilcSoft install
ilcSoft are installed using a script, ilcsoft-install. The documentation will be found at http://ilcsoft.desy.de/portal/software_packages/ilcinstall/
Download ilcinstall
To get start, first down load ilcinstall as follows.
$ svn co https://svnsrv.desy.de/public/ilctools/ilcinstall/tags/v01-13-02 ilcinstall
Note to modify "v01-13-02" to a version number of your installation. README file in the ilcinstall directory describes how to use the ilcinstall. Please refer to README for complete help. A releases directory contains scripts and version number of relevant packages for a particular ilcsoft release.
Build base packages
If this is first time to install ilcSoft, packages which are not updated frequently could be installed using release-base.cfg. Example used to install on jlclogin3 are as follows.
Then base packages are installed as follows.
$ ./ilcsoft-install -p release-base.cfg
$ ./ilcsoft-install -i release-base.cfg
First line is does nothing except to check settings of release-base.cfg and release-version-base.py. It is recommended to do first line before actually install packages by the second line.
MySQL libraies at the standard location (/usr) could not use correctly. So, in my installation, I created a symbolic link of them under /proj/soft/gcc462/ext directory as follows.
$ cd /proj/soft/gcc462/ext
$ mkdir mysql && cd mysql
$ ( mkdir lib64 && cd lib64 && ln -s /usr/lib64/mysql . )
$ ln -s lib64 lib
$ ( mkdir include && cd include && ln -s /usr/include/mysql . )
$ ( mkdir bin && cd bin && find /usr/bin -name myxql* -exec -ln -s {} . )
Build ilcSoft release
Again, get the ilcsoft corresponding to the version you need, then prepare release-ilcsoft.cfg and release-versions.py according to your environment then install them by ilcsoft-install script. THe setting used for the installation to jlclogin3 are as follows.
Install GRID glite UI
Following example shows how to install glite 3.2 UI on SL5.7. The detail information will be found at following links.
- Glite 3.2 web http://glite.cern.ch/R3.2/
- Glite-UI install guide https://twiki.cern.ch/twiki/bin/view/LCG/GenericInstallGuide320
- Glite 3.2 UI installation by yum http://glite.cern.ch/glite-UI/
Glite UI are installed as follows. Execute commands as a super user
get glite-UI.repo
$ wget http://grid-deployment.web.cern.ch/grid-deployment/glite/repos/3.2/glite-UI.repo
getCA
$ wget http://repository.egi.eu/sw/production/cas/1/current/repo-files/EGI-trustanchors.repo
references will be found at https://wiki.egi.eu/wiki/EGI_IGTF_Release
According to the guide, how to install EGI-trustanchors.repo depends on previous activity. If this is first time to install EGI-trustanchors.repo, do as follows.
$ yum install ca-policy-egi-core
--> this will download and install CA of many sites.
Then, update dag as follows. In /etc/yum.d directory,
$ mv dag.repo dag.repo-backup
$ vi dag.repo
[main]
[dag]
name=DAG (http://dag.wieers.com) additional RPMS repository
baseurl=http://linuxsoft.cern.ch/dag/redhat/el5/en/$basearch/dag
gpgkey=http://linuxsoft.cern.ch/cern/slc5X/$basearch/RPM-GPG-KEYs/RPM-GPG-KEY-dag
gpgcheck=1
enabled=1
$ yum update
$ yum groupinstall glite-UI
Add following line in /etc/hosts
ip-address yourhosts.domain.domain yourhosts
( enter ip address and host name of your hosts )
Then do yaim as follows
$ cd /opt
$ /opt/glite/yaim/bin/yaim --verify --siteinfo site-info.def --nodetype UI
$ . /opt/external/etc/profile.d/grid-env.sh
$ /usr/sbin/fetch-crl -l /etc/grid-security/certificates -o /etc/grid-security/certificates
$ ( cd /opt/external && mkdir usr && cd usr && ln -s /usr/sbin . )
$ ( cd /opt/external/etc/grid-security && ln -s /etc/grid-security/certificates . )
$ /opt/glite/yaim/bin/yaim --configure --siteinfo site-info.def --nodetype UI
$ /opt/glite/yaim/bin/yaim --configure --siteinfo site-info.def --nodetype UI_TAR
( yaim command with --nodetype UI may be omotted )
site-info.def defines your UI site information.
That's it. glite UI is ready to use.