viernes, 26 de junio de 2009

Installing Globus Toolkit 4.2.1 in Ubuntu 8.10 Intrepid

In my recent experience with Globus Toolkit 4.2.1, I was in need to install it in a Ubuntu Server 8.10 system running Xen and hosting virtual machines. Since these VMs are usually installed with debootstrap, installing GT 4.2.1 into that environment is trickier than dealing with the standard Ubuntu installation. While the Globus installation site provides a list of required software, it may turn out to be incomplete. I found that the following dependencies are needed to be installed as root (or with sudo)


  1. Java (v. 1.5+)
    You may download the latest binary here
    After installing, add the following entries in your .bashrc:

    export JAVA_HOME=your_java_path
    export PATH=your_java_path/bin:$PATH



  2. Ant (v. 1.6.2+)
    Download the source code here (I used version 1.7.1)
    You will also need JUnit

    # cd /opt
    # tar xf apache-ant-1.7.1.tar.gz
    # cd apache-ant-1.7.1
    # mkdir lib/optional
    # cp ../junit-4.5.tar.gz lib/optional
    # ./build.sh


    Also export the environment variables in your .bashrc:

    export ANT_HOME=/opt/apache-ant-1.7.1/bootstrap
    export PATH=$ANT_HOME/bin:$PATH



  3. gcc (v. 3.2.1+)

    # apt-get install gcc


    You should have the gcc and cc commands available after this.

  4. zlib (v. 1.1.4+)
    download

  5. make
    Otherwise you can't build anything :)

    # apt-get install make


  6. perl (with XML Parser)
    Needed to build and execute many of the GT commands, specially for GRAM. You will find that the default perl perl-modules is not enough, as the XML::Parser module is required. Thus, execute:

    # apt-get install perl perl-modules libxml-parser-perl


  7. 32-bit support (x64 only)
    If you are using Ubuntu 64-bit, you will find that you can't execute many GT commands, showing the infamous error: No such file or directory. This is because they are 32-bit binaries. Install 32-bit support by:

    # apt-get install ia32-libs


  8. OpenSSL (v. 0.9.7+)
    You will need the development headers:

    # apt-get install libssl-dev


  9. libssp
    This one was a pain, motivated me to write this blog entry. Since gcc 4.1, the ssp functionality has been merged into gcc and it does not longer provide the shared library. You will stumble on the following error after doing make install in GT:

    Unable to execute /usr/local/gt4/bin/ssh.d/ssh-keygen -t rsa1 -f /usr/local/gt4/etc/ssh/ssh_host_key -N "": No such file or directory

    And after running the command solo:

    /usr/local/globus/globus-4.2.1/bin/ssh.d/ssh-keygen: error while loading shared libraries: libssp.so.0: cannot open shared object file: No such file or directory

    This error will not stop you from deploying the container. However, it appears that GridFTP relies on this to work (I still can't get it to work properly though...)
    The only way I found to install this library was downloading a RPM for Arklinux. Alien did not work right away, so I had to use:

    # alien -g libssp-4.2.1-1ark.i586.rpm

    After that, move the libssp* libraries to /usr/lib and execute ldconfig. GT4 should finish the installation now:

    globus$ make postinstall