Title: Stuart K' Paterson
1Software Installation Using Pacman
Stuart K. Paterson
1
22/03/04
2- What does Pacman do?
- Can transparently fetch, install, and manage
software packages - Handles dependencies
- Updates are automatically searched for
- Can recognise natively installed software
- Is very robust
- How does Pacman do this?
- Package 'tarballs' are kept in a central web
based cache - Each package has a corresponding '.pacman' file
associated with it
Stuart K. Paterson
1
22/03/04
3- Very simple procedure
- First download the appropriate tarball
- Untar and unzip this
- Source the appropriate setup file (.sh .csh and
.ksh supported)
- Pacman can install itself
- Type- pacman -get Pacman
- Source the appropriate setup file
- Now Pacman can update itself when new versions
are released - Original installation can be removed
Stuart K. Paterson
1
22/03/04
4- Test Case 1- Installation of CMT
- Structure of a typical .pacman file
- To install CMT, simply type pacman -get
cmtv1r12t1
description'CMT v1r12 Test 2.00' suffixHandling0
download'''CMTv1r12t1.tar.gz' url'http
//www.ph.gla.ac.uk/stuart/' enviros
'pacname','CMT', 'installdir','lhcb/sw/cont
rib/CMT', 'tarball','CMTv1r12t1.tar.g
z'
Stuart K. Paterson
1
22/03/04
5- Test Case 1- Installation of CMT
install'' 'echo Starting pacname
Installation...', 'mkdir -p installdir', 'cd
installdir tar -zxf PACMAN_INSTALLATION/
tarball', 'cd installdir/v1r12/mgr/
./INSTALL cd ../../ source pwd/v1r12/mgr/setu
p.sh cd v1r12/mgr/ echo Executing gmake...
gmake', 'echo End of pacname setup.'
Stuart K. Paterson
1
22/03/04
6- How Pacman handles dependencies
depends 'cmtv1r12t1', 'aida-2-2-0'
- Recursive dependencies are dealt with
automatically
A
- If package A depends on B and C
- With package B also depending on C
- Pacman knows only to install one version of C
and to have it installed before A and B
B
C
C
Stuart K. Paterson
1
22/03/04
7- Test Case 2 Gaudi v12r0 on Scotgrid
- Gaudi v12r0 depends on many packages
- AIDA pre-compiled
- Boost (which also depends on Python)
- CERNLIB pre-compiled
- CLHEP
- CMT
- GSL
- HTL pre-compiled
- Python
- Root
- Xerces-C
- Nag-C linked to existing
version on Scotgrid
Stuart K. Paterson
1
22/03/04
8- Test Case 2 Gaudi v12r0 on Scotgrid
Installation
Stuart K. Paterson
1
22/03/04
9- Test Case 2 Gaudi v12r0 Some Notes
- Total time taken was just under 2 hours, 21
seconds of this was spent transferring tarballs - Installation can be interrupted at any point and
then restarted seamlessly - Limitations exist due to Nag-C dependency and
availability of pre-compiled packages such as
CERNLIB, HTL AIDA - More development time was spent learning how to
install the packages from scratch than applying
this knowledge to Pacman - Another useful feature of Pacman is the automatic
generation of an index page, accessible via
pacman -info
Stuart K. Paterson
1
22/03/04
10- Test Case 2 Gaudi v12r0 Sample Index Page
Stuart K. Paterson
1
22/03/04
11- Recognising natively installed software
nativelyInstalled 'inpath''python',
'enviros''pythonroot', 'scripts''ch
eckok.sh'
- Need a uniform naming scheme to utilize this
fully - Cache manager
- Can handle rpm files as well as tarballs
Stuart K. Paterson
1
22/03/04
12- Problems With Software Installation at External
Institutes
- Little or no documentation
- No way of tracking changes to structure and
setup from one package version to another - Core software group extremely helpful but cannot
be expected to answer a flood of queries - The use of Pacman would remove these issues
Stuart K. Paterson
1
22/03/04
13- Suggest centrally managed cache with individual
packages managed by those responsible and an
overall cache manager - Problems are solved once by the cache manager,
leaving one point of contact when problems arise
- Cache manager has tight control over the
structure of the software - Easier to establish conventions
- Could be little to do, version to version
- Much time saved for others
Stuart K. Paterson
1
22/03/04
14- Possible Use of Pacman for DC '04
- Modified versions of DaVinci could be
transported to Tier sites - Pre-compiled or otherwise
- Possibility of running trials on different
platforms - Durham (Fedora) and Liverpool (RH9) have been
contacted - Nodes without any software could become
effective with Pacman - Pacman can easily clean up after itself if
necessary - Updating package versions or applying patches
for all institutions would become trivial
Stuart K. Paterson
1
22/03/04
15- Pacman is a very powerful tool which has no
obvious drawbacks for LHCb - Automation of packages is very simple for someone
who knows how to do the installation - Several advantages are presented by having a
cache manager http
//ppewww.ph.gla.ac.uk/stuart/
Stuart K. Paterson
1
22/03/04