This wiki is obsolete, see the NorduGrid web pages for up to date information.
Arc prerequisities for v0.8
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