This wiki is obsolete, see the NorduGrid web pages for up to date information.

Arc prerequisities for v0.8

From NorduGrid
Jump to navigationJump to search

ARC prerequisities

In order to build and deploy the ARC v0.8 bundle you will need to satisfy some build and runtime dependencies. Most of the build dependencies come from the compiler-toolchain and common standard libraries. In addition to that, you also need some grid-specific libraries during both compilation and runtime.

ARC external dependencies are grouped into two categories:

  • First there is distribution provided software that you should be able to find in the repositories of your distribution (Ubuntu and CentOS) resp. in external repositories like RPMForge(CentOS specific).
  • Then there are those mostly grid-related software packages that are not available in the distros. We provide a guide on how to build the grid-related external dependencies

Distribution-specific software

These packages are needed by the grid-software which will be covered further down on this page.

These packages are needed

 Build for ARC-core

 * make
 * gcc/g++
 * autotools (autoconf > 2.56, automake >= 1.8)
 * libtool
 * gettext
 * openldap development packages
 * python development packages - needed if you want arclib pythonbindings, also needed for LFC
 * libxml2 development packages
 * expat development packages - needed for VOMS
 * doxygen - needed for VOMS documentation and installing CGSI-gSOAP
 * mysql client development packages - needed for Logger (12 on 6.06)
 * alien (for converting rpm to tgz)
 * flex, bison (for building gsoap)
 * uuid-dev
 * e2fsprogs
 * swig - needed by lfc
 * gsoap - for 32 bit 7.10 and newer, 6.06 or 64 bit you need to use the special NorduGrid version
 * wget - for downloading stuff from the commandline
 * openssl development packages - for compiling VOMS
 * pkg-config - needed to build ARC from trunk.
 
 Build for A-REX
 * make, autotools (autoconf>=2.56) (automake>=1.8)
 * libtool
 * pkg-config
 * gthread-2.0 development packages version 2.4.7 or later    
 * glibmm-2.4 development packages version 2.4.7 or later
 * libxml-2.0 development packages version 2.4.0 or later    
 * openssl version 0.9.7a or later
 * e2fsprogs
 * doxygen
 * gettext
 * CppUnit (optional)
 
 Please note that depending on operating system distribution in order 
 to build A-REX you may need to install development versions of mentioned packages.
 
 Runtime for ARC core
 * libxml-dom-perl
 * libxml-simple-perl
 * libcrypt-ssleay-perl - needed for VOMS
 * libnet-ldap-perl (might only aply to Gutsy, needed by nordugridmap)
 * openldap - needed for information system
 
 Runtime for A-REX
 * gthread-2.0 version 2.4.7 or later
 * glibmm-2.4 version 2.4.7 or later
 * libxml-2.0 version 2.4.0 or later
 * openssl version 0.9.7a or later
 * e2fsprogs
 * gettext

Ubuntu and Debian, Install with:

 aptitude install build-essential automake1.9 libtool gettext python-dev libxml2-dev libldap2-dev \
 libexpat1-dev doxygen libmysqlclient15-dev alien flex bison uuid-dev swig \
 gsoap wget libssl-dev pkg-config libglib2.0-dev libglibmm-2.4-dev libxml2-dev e2fsprogs libxml-dom-perl \
 libcrypt-ssleay-perl libnet-ldap-perl slapd

CentOS/Fedora/RedHat, Install with:

 yum install make automake autoconf libtool gettext python-devel libxml2-devel openldap-devel \
             expat-devel doxygen mysql-devel \
             flex bison e2fsprogs-devel swig gsoap wget openssl-devel pkgconfig \
             glibmm24-devel libxml2-devel openldap

For generic Linux distribution and for non-Linux OSes packages may be found at their respective websites:

* make, gcc, g++, autotools, libtool, gettext, bison, wget - are GNU packages and may be found at http://www.gnu.org/
* pkg-config (install it ASAP) - http://pkg-config.freedesktop.org/wiki/
* openldap - http://www.openldap.org/
* python - http://www.python.org/
* libxml2 -http://www.libxml.org/
* expat - http://expat.sourceforge.net/
* doxygen - http://www.doxygen.org/
* mysql - http://dev.mysql.com/
* flex - http://flex.sourceforge.net/
* e2fsprogs, uuid - http://e2fsprogs.sourceforge.net/
* swig - http://www.swig.org/
* gsoap - http://www.cs.fsu.edu/~engelen/soap.html 
* openssl - http://www.openssl.org/
* glib, gthread - http://www.gtk.org/
* glibmm - http://www.gtkmm.org/
* CppUnit - http://apps.sourceforge.net/mediawiki/cppunit/
* Crypt::SSLeay, XML::Simple, XML::LibXML::DOM, Net::LDAP - http://www.cpan.org/

Grid-specific software

The Grid-specific software is identical for all OS distributions and it includes:

 Build and Runtime for ARC-core
 * GPT
 * Globus - only a selected subset, read more here
 * LFC
 * VOMS
 * BDII
    
 Build and Runtime for A-REX
 * Grid Packaging Tools (GPT)
 * Globus - only a selected subset, read more here
 * LHC File Catalog (LFC)

Please note that depending on operating system distribution in order 
to build A-REX you may need to install development versions of mentioned packages.
 

These packages (except BDII) are available from EPEL for RHEL4 and RHEL5. For the other distributions and BDII, these packages can be found in the NorduGrid repositories. Alternatively, you can build them yourself.

EPEL can be configured by installing the RPMS from for example here:

# Change the 4 to 5 or i386 to x86_64 as needed for your distribution.
http://download.fedora.redhat.com/pub/epel/4/i386/repoview/epel-release.html


These packages will be installed automatically as needed when installing the nordugrid-arc-server or nordugrid-arc-client packages.

Globus Toolkit & GPT

ARC v0.8 can be built on top of any decent globus distribution, nevertheless we recommend to use the NorduGrid provided Globus packages. NorduGrid offers a patched and selected set of globus packages.

The migration to the new native LDAP-based information system resulted in a much shorter globus dependency list for the 0.8 ARC. There is no need to install globus-LDAP and globus-MDS packages any longer. The actual list of packages is given below.

The following Globus packages (and their prerequisities) needs to be installed in order to build and deploy ARC v0.8 including the A-REX component as well. We note that the A-REX subpackage has a smaller list of Globus dependencies:

 globus_common
 globus_ftp_client
 globus_ftp_control
 globus_gass_transfer
 globus_gsi_credential
 globus_gsi_sysconfig
 globus_gss_assist
 globus_io
 globus_rls_client
 globus_rsl

If You choose to build own Globus Toolkit You can find it and GPT at http://www.globus.org/toolkit/ . You will have to build modules specified above. ARC requires threaded flavor of Globus modules (for what flavor means read Globus documentation).

BDII

An improved BDII package, the "bdii-ng" is provided by Nordugrid and available from the nordugrid download area and via the repositories. The bdii-ng package has been tested with different OpenLDAP versions ranging from 2.2.13 to 2.4.15 on both 32 and 64bit. Other versions may work as well.

Note: After installation carefully read and apply BDII configuration instructions

Grid-specific software from NorduGrid repositories

All of the required Grid-specific software can be found in the NorduGrid repositories. Below we gave repository info.

RedHat derivatives

The easiest way to install the grid-specific software is by correctly configuring the NorduGrid repositories and using yum utility with syntax like

yum install *globus*

for e.g. installing all the globus packages.

Note: You can also use RPMs directly. They can be downloaded from http://download.nordugrid.org.

Debian and Ubuntu

For distributions squeeze and later the Globus packages are in the regular Debian repository. For Ubuntu the packages are in since Karmic.

For older Debian/Ubuntu you can find packages in the nordugrid download servers.

Debian (set etch or lenny as appropriate):

 deb http://download.nordugrid.org/repos/debian/ etch .
 deb-src http://download.nordugrid.org/repos/debian/ etch .

Ubuntu (change dapper to gutsy, hardy, intrepid or jaunty as appropriate):

 deb http://download.nordugrid.org/repos/ubuntu/ dapper .
 deb-src http://download.nordugrid.org/repos/ubuntu/ dapper .

Please see the dedicated pages on Debian and Ubuntu for details.

Grid-specific software from source

Some environment variables used frequently while building external software from source:

 * ARC_LOCATION, where NorduGrid ARC is to be installed (ex /opt/arc)
 * GLOBUS_LOCATION, ditto for Globus (ex /opt/globus)
 * VOMS_LOCATION, ditto for VOMS (ex /opt/voms)
 * CGSI_GSOAP_LOCATION, ditto for CGSI_gSOAP (ex /opt/cgsi_gsoap)
 * GSOAP_LOCATION, ditto for GSoap (only needed on 6.06) (ex /opt/lfc)
 * LFC_LOCATION, ditto for LFC (ex /opt/lfc)
 * LD_LIBRARY_PATH=$GSOAP_LOCATION/lib
 * CFLAGS=-Wl,-rpath=$GLOBUS_LOCATION/lib,-rpath=$GSOAP_LOCATION/lib
 * CXXFLAGS=$CFLAGS

Couple of guides describing building external software, some of these are fairly ubuntu-centric. Should you have any problems, please contact (daniel@ndgf.org):

 * GSOAP - Only needed on some versions of ubuntu (6.06 or if 64 bit and version <= 7.10)
 * Globus - If you want globus 4.2
 * VOMS
 * LFC