This document describes the build procedure of the ARC v0.8.x middleware from tarball or from source RPM. This is a Web-friendly rendering of the INSTALL file distributed with the middleware. When building older versions of ARC, always consult the INSTALL file in the distribution.
Before trying to compile the ARC middleware make sure you have installed the following software packages:
More specifically, the contents available in these packages (names may vary depending on distribution):
Note that many Linux distributions provide packaged versions of these libraries and tools, including Globus, LFC, gSOAP and VOMS. It is highly recommended to use these packages if possible. All packages that are required but are not part of Linux distribution repositories are available from the NorduGrid repositories for supported platforms.
Recommended way of setting up your own build of ARC is to enable the NorduGrid repositories for your system, install all dependencies for ARC from there and then only build ARC yourself according to instructions below.
The build is using the GNU autotools. This means that a standard installation can be made with:
./configure
make
make install
If you are building from SVN you need to start with:
./bootstrap
If you want to create your own packages from SVN, you first run:
./bootstrap
./configure
make dist
then, depending on if you are on Debian or RedHat you run:
dpkg-buildpackage
or
rpmbuild -ba build/nordugrid-arc.spec
The configure script accepts the usual options with the addition of: (defaults in brackets)
--disable-python-wrappers | Disable Python wrappers for ARCLIB |
--enable-pkgdirs | Use pkg directories. Useful for /usr installations. |
--enable-globus-openldap | Use OpenLDAP provided as part of Globus |
--disable-voms | Disable VOMS support |
--disable-lcas | Disable LCAS support |
--disable-lcmaps | Disable LCMAPS support |
--disable-lfc | Disable LFC support |
--enable-experimental | Enable experimental code |
--disable-rpath-hack | Do not rpath external and internal libraries in libraries/binaries |
--enable-docs | Build documentation |
--disable-services | Do not build service components |
--with sysv-scripts-location=<PATH> | Location of the SYSV init scripts. [autodetect] |
--with-monitor-prefix=<PATH> | Specify the location of the Grid Monitor WWW scripts. [/LOCALSTATEDIR/www/html/gridmonitor] |
--with-monitor-local-prefix=<PATH> | Specify the relative location of the Grid Monitor WWW scripts. [gridmonitor] |
--with-cron-scripts-prefix=<PATH> | Specify the location of the cron directory. [/SYSCONFDIR/cron.d] |
--with-profile-scripts-prefix=<PATH> | Specify the location of the profile directory [/SYSCONFDIR/profile.d] |
--with-gsoap-location=<PATH> | Specify the gSOAP installation path [autodetect] |
--with-mysql-location=<PATH> | Specify the MySQL installation path [autodetect] |
--with-libxml-location=<PATH> | Specify the libxml2 installation path [autodetect] |
--with-gacl-location=<PATH> | Specify the GACL installation path [/opt/gridsite|autodetect] |
--with-nordugrid-location=<PATH> | OBSOLETE Specify the nordugrid installation path. [/usr] |
--with-flavor=<flavor> | Specify the globus build flavor or without-flavor for a flavor independent |
--with-default-globus-location=<PATH> | Specify the default globus location. [autodetect] |
--with-voms-location=<PATH> | Specify the VOMS installation path [/usr] |
--with-lcas-location=<PATH> | Specify the LCAS installation path [/opt/glite] |
--with-lcmaps-location=<PATH> | Specify the LCMAPS installation path [/opt/glite] |
--with-lfc-location=<PATH> | Specify the LFC installation path [/opt/glite] |
Note that using --disable-pkgdirs will install the software without package directories suitable for /opt/nordugrid installation:
/opt/nordugrid/bin
/opt/nordugrid/lib
/opt/nordugrid/libexec
..
For a "standard" install using the --prefix=/usr/local will place the software in nordugrid subdirectories:
/usr/local/bin
/usr/local/lib/nordugrid
/usr/local/libexec/nordugrid
..
'make' builds the full middleware containing server, client, monitor and documentation, currently modular builds (such as 'make client', or 'make server') are not supported yet.
ARC can be built using RPM. From a tar.gz file do:
rpmbuild -ta nordugrid-arc-<version>.tar.gz
and from a .src.rpm do:
rpmbuild --rebuild nordugrid-arc-<version>.src.rpm
Source RPMs are configured with the --disable-pkgdirs switch and binary builds are relocatable (consult the relocation instructions).
In terms of RPMs the build requirements can be satisfied with the following packages:
Note that the naming convention above might not correspond exactly to the naming used on your system.
The RPMs created by rpmbuild are:
nordugrid-arc-client | Client programs |
nordugrid-arc-server | Server-side meta-package with dependencies on all components |
nordugrid-arc-gridftpd | Gridftpd package |
nordugrid-arc-gridmanager | Grid-manager package |
nordugrid-arc-infosys-ldap | Information system and information index server |
nordugrid-arc-gridmap-utils | Utilities for managing gridmap-files |
nordugrid-arc-ca-utils | Utilities for mainting CA files |
nordugrid-arc-monitor | Grid monitor web interface (should be installed on a Web server) |
nordugrid-arc-doc | Documentation |
nordugrid-arc-libs | Runtime libraries |
nordugrid-arc-libs-devel | Development files |
nordugrid-arc-python | Python bindings of ARClib |
Special requirements of the Grid Monitor (not expressed in RPM requirements):
In order to have a fully functional Grid Monitor you should follow the instructions given in the README file of the nordugrid-arc-monitor package.
For server or client setup and configuration please refer to the server or client installation instructions available from the NorduGrid Web site. Reading the relocation instructions available in the doc/ folder can be useful as well. The middleware comes with documented server-side configuration templates (arc.conf.template). Client installation is also discussed in the "NorduGrid User Guide".