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

Building arc v0.8

From NorduGrid
Jump to navigationJump to search

Building ARC from the 0.8 bundle

The v0.8rcx candidate releases are initially distributed as a consistent single source bundle, the nordugrid-arc-bundle-0.8rcx package (where "x" is release candidate number). The bundle contains two sub-packages:

  • nordugrid-arc-0.8rcx.tar.gz is (generated from the "arc0/branches/v_0_8")
  • nordugrid-arc-arex-0.8rcx.tar.gz (generated from the "arc1/branches/components_for_the_0.8")

The two sub source packages should be built and installed separately, first the nordugrid-arc, then the nordugrid-arc-arex. We note here that the nordugrid-arc package can be used without the nordugrid-arc-arex and the nordugrid-arc-arex can be built/deployed on top of an existing ARC 0.6 installation as well.

Fetch the bundle 0.8 as described in Source section of the release page

ARC subpackage

Before trying to build and install the nordugrid-arc subpackage please make sure you have all the required dependencies installed.

We use rpath for hardcoding the location of libraries into ARC - beware that this implies that one cannot relocate the external software that ARC depends on (the adavantage is that we avoid problems with setting $LD_LIBRARY_PATH correctly). The use of $LD_LIBRARY_PATH here is only needed for building ARC (the build process invokes gsoap2cpp).

Note that on Ubuntu 6.06 or up to and including hardy on 64 bit (because gsoap is not compiled with -fPIC) you need to add -rpath=$GSOAP_LOCATION/lib to the CFLAGS line and also do export LD_LIBRARY_PATH=$GSOAP_LOCATION/lib.

   export CFLAGS="-Wl,-rpath=$GLOBUS_LOCATION/lib,-rpath=$LFC_LOCATION/lib"
   export CXXFLAGS=$CFLAGS
   export C_INCLUDE_PATH=
   export CPLUS_INCLUDE_PATH=

Configure and build

In order for ARC to find the globus installation, the following environment variables may have to be set (note that GPT_LOCATION is usually same as GLOBUS_LOCATION)

   export GLOBUS_LOCATION=path_to_globus_installation_directory
   export GPT_LOCATION=path_to_gpt_installation_directory
   export PATH=$PATH:$GLOBUS_LOCATION/sbin:$GLOBUS_LOCATION/bin:$GPT_LOCATION/sbin:$GPT_LOCATION/bin

Alternatively instead of last variable one may specify paths needed Globus/GPT utilities directly

   export GPT_FLAVOR_CONFIGURATION=$GPT_LOCATION/sbin/gpt-flavor-configuration
   export GPT_QUERY=$GPT_LOCATION/sbin/gpt-query
   export GLOBUS_MAKEFILE_HEADER=$GLOBUS_LOCATION/bin/globus-makefile-header

Depending on how Globus libraries were installed following variable may also need to be set

   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GLOBUS_LOCATION/lib

If You have some external packages installed in unusual location where pkg-config can't find them add them to PKG_CONFIG_PATH variable. For example if You have gSOAP installed in /opt/gsoap

   export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gsoap/lib/pkgconfig

Location of some packages may be specified as configuration parameters. In previous case that would be -with-gsoap-location=/opt/gsoap .

It was reported that on Ubuntu 6.06 and some 64 bit system one needs to add --with-gsoap-location=$GSOAP_LOCATION --with-voms-location=$VOMS_LOCATION --with-lfc-location=$LFC_LOCATION to the configure line.

After You unpacked subpackage nordugrid-arc-0.8rc2.tar.gz containing source files for ARC middleware change to nordugrid-arc-0.8rc2 and do following

   ./configure      
   make
   make install

You may add some options to ./configure command as described above. It is advisable to run ./configure --help first and check if there is something You would like to adjust. Observe output produced by those commands and report any error found to developers using Bugzilla interface at http://bugzilla.nordugrid.org/ .

If everything finishes without errors You will have ARC middleware installed. If You have not specified --prefix option that will be default location - /opt/nordugrid . Installation procedure also sets up configuration files in /etc location.

If you just want to install the binaries (for example to test it out as an ordinary user), then run:

   make install-exec
   cd arclib/arc
   make install-arcincludeHEADERS

If You also want to have arclib-python bindings then run these commands too

   cd arclib
   make install-pythonPYTHON
   make install-pythonLTLIBRARIES

Because of conflicts which may occur between core ARC and A-REX make sure ARC_LOCATION and ARC_CONFIG environment variables are not set at global system level.

Hint: You may run make distclean && ./bootstrap before ./configure to make all generated code re-created. That may make it more suitable for your distribution.

A-REX subpackage

One of the new components which is shipped with 0.8 release is the A-REX, next generation of ARC job management service. Below we describe how to build and install A-REX on generic Linux distribution. Note, the A-REX subpackage can be built and deployed either on top of a newly built ARC v0.8rcx (see above) or even on top of an existing ARC v0.6x deployment.

We recommend to unset the ARC_LOCATION variable before building the A-REX subpackage.

Before trying to build and install the nordugrid-arc-arex subpackage please make sure you have all the required dependencies installed.

Configure and build

Installation from source consists of the usual steps similar to those described in Core ARC section:

  • Unpack the nordugrid-arc-arex-0.8rc2 subpackage
  • Set environment variables
  • Change to nordugrid-arc-arex-0.8rc2 directory
  • Run following commands
  • Configure, build and install source tree with
   ./configure
   make
   make install

By default if --prefix option is not specified A-REX installs into /usr/local location.

Because of potential conflicts which may occur between core ARC and A-REX when using ARC_LOCATION environment variable it is advised to make sure it is not set as global variable.

On some systems You may need to use gmake instead of make.

Hint: You may run make distclean && ./autogen.sh before ./configure to make all generated code re-created. That may make it more suitable for your distribution.

When migrating to A-REX from Grid Manager you will find these instructions helpful.