How to install ELFI
This page tells you how to download and install ELFI. EGRID provides precompiled RPM packages for Scientific Linux CERN that also fit other RPM-based distros. Instructions for compiling from source are given, for the really daring.
Note
We value your feed back!
This document is a first draft; if you find anything missing, incorrect, or simply unclear, please report it to the email address above, or to the ELFI mailing-list: elfi@egrid.it. Thank you!
Install from RPM packages
We describe here two ways of installing ELFI:
- Using apt-get
- This is the easiest method; it should work on any Scientific Linux CERN 3.0.x box, but might work on any other Linux distribution which uses the APT4RPM tools.
- Manual install RPMs
- These are generic installation instructions that should work on any RPM-based distribution.
Using apt-get
This is the easiest method; it should work on any Scientific Linux CERN 3.0.x box.
- Note: The version of the FUSE kernel module (package
- kernel-module-fuse) needs to match exactly the version of the kernel installed on the Linux box. EGRID provides RPMs of the FUSE kernel module, matching the latest Scientific Linux CERN 3 kernels. If you are using a different kernel, see section Recompiling the FUSE kernel module.
The following commands need to be entered as root user.
Add the EGRID RPM repository to the APT sources list:
echo 'rpm http://www.egrid.it/download/rpm . egrid' \ >> /etc/apt/sources.list.d/egrid.list echo 'rpm-src http://www.egrid.it/download/rpm . egrid' \ >> /etc/apt/sources.list.d/egrid.listUpdate the package availability list:
apt-get update
Install ELFI and its dependencies:
apt-get install elfi
Install the FUSE kernel module matching your running kernel:
apt-get install kernel-module-fuse-`uname -r`
If the installed version of kernel-module-fuse does not match the kernel installed on the Linux box, see the Recompiling the FUSE kernel module section.
Manual install RPMs
To install ELFI using only the rpm tool, you will need to also install a few packages (from the EGEE gLite distribution) that ELFI depends on.
Install the following system packages (any version later than written here should do fine):
cyrus-sasl-2.1.15-10 e2fsprogs-1.32-15.1 gdbm-1.8.0-20 glib2-2.2.3-2.0 glibc-2.3.2-95.39 krb5-libs-1.2.7-52.slc3.1 laus-libs-0.1-70RHEL3 libacl-2.2.23-1 libattr-2.4.16-1 libgcc-3.2.3-54 libstdc++-3.2.3-54 openldap-2.0.27-22 openssl-0.9.7a-33.17 pam-0.75-67 zlib-1.1.4-8.1
These are probably already present in your distro standard RPM repository (e.g., you just need issue a yum install "package" or apt-get install "package"); if not, you may download the RPM from http://www.rpmfind.net/
Install the gLite packages ELFI depends on:
- vdt_globus_essentials
at least version VDT1.2.2rh9_LCG-1
- CGSI_gSOAP_2.6
at least version 1.1.9-1.slc3
- DPM-client
at least version 1.4.5-1sec_sl3
- LFC-client
at least version 1.4.5-1sec_sl3
You will find these in the gLite RPM repository.
Download and install FUSE packages, at least version 2.5.3.
These are probably part of your Linux distro already; in the EGRID RPM repository you will find FUSE RPMs compiled for Scientific Linux CERN 3.0.x.
For instance, you can install FUSE version 2.5.3 on Scientific Linux CERN 3.0.x with the commands:
rpm -Uhv http://www.egrid.it/download/rpm/RPMS.egrid/fuse-2.5.2-3.i386.rpm
Download and install the FUSE kernel module matching the kernel installed on your Linux box. You can find binary packages of the FUSE kernel modules matching the official Scientific Linux CERN 3.0.x kernels in the EGRID RPM repository.
So, you can install the FUSE kernel module for your running kernel with:
rpm -Uhv http://www.egrid.it/download/rpm/RPMS.egrid/kernel-module-fuse-`uname -r`-2.5.2-3.i386.rpm
If no version of kernel-module-fuse in the EGRID RPM repository matches the kernel installed on the Linux box, see the Recompiling the FUSE kernel module section.
Download and install ELFI packages from the EGRID RPM repository. For instance, you can install ELFI version 20060919-1340 with the commands:
rpm -Uhv http://www.egrid.it/download/rpm/RPMS.egrid/elfi-20060919-1340.i386.rpm
ELFI packages are given version numbers after the date and time of their release; so, for instance, package version 20060919-1340 is the one released on September 19th, 2006, at 13L40 hrs.
Recompiling the FUSE kernel module
Note
Note:
The FUSE kernel module has been part of the standard Linux kernel since Linux 2.6.14; in case your Linux distro comes with a 2.6 kernel, you should seek instructions to install FUSE in your distro website. Please refer to the FUSE website for additional information on how to compile and install FUSE.
This section will tell you how to compile and install the FUSE kernel module, in case you cannot find a precompiled package that matches your running kernel.
cd to the directory at the top of the the RPM packages build hierarchy. This is directory /usr/src/redhat on Scientific Linux CERN 3.0.x ; but you can use any other directory, by following the directions at http://dag.wieers.com/howto/bits/rpm-build-user.php
# you will need to be ``root`` to compile here cd /usr/src/redhat
Download the source RPM from the EGRID RPM repository
The following commands (you may need root privileges) will download the fuse-*.src.rpm file in the current directory:
# add the EGRID RPM repository to system pkg list echo 'rpm http://www.egrid.it/download/rpm . egrid' \ > /etc/apt-sources.list.d/egrid.list # update package availability list apt-get update # download the source RPM package apt-get source fuseRebuild the binary package:
rpmbuild --rebuild -bb fuse*.src.rpm
The command above will put the binary RPM package in /usr/src/redhat/RPMS/fuse*.rpm.
Note
Note:
If your running kernel sources are not located under /usr/src/, then you will need to pass the location to the rpmbuild command as follows:
rpmbuild --define='kernelsrc PATH' --rebuild -bb fuse*.src.rpm
Install the generated RPM package:
rpm --nodeps -Uvh /usr/src/RPMS/*/kernel-module-fuse-`uname -r`*.rpm
How to build ELFI from source
ELFI can be compiled on a gLite User Interface: You will need to have the commands svn, rpm2cpio, and wget installed.
Unfortunately, the ELFI Makefile triggers a bug in GNU make 3.79, which is the make provided in Scientific Linux CERN 3, so you will need to install make-3.80 or later. We used the following on our SLC3 machines:
rpm -Uvh ftp://rpmfind.net/linux/fedora/core/3/i386/os/Fedora/RPMS/make-3.80-5.i386.rpm
Download the ELFI source code:
svn co http://www.egrid.it/srv/svn/products/elfi/current elfi-src
This will check out a copy of the latest sources of ELFI into a directory elfi-src.
Install build-time dependencies, step 1. Some packages are already provided from the OS vendor: you should install the following packages with apt-get install (choose the package name according to your distribution):
SLC3
Debian (etch) [#1]
libacl-devel libattr-devel glib2-devel openldap-devel fuse [#2]
libacl1-dev libattr1-dev libglib2.0-dev libldap2-dev libfuse-dev
[3] You may also compile and use ELFI on Debian sarge (current stable distro), but the FUSE version distributed with sarge is too old: you will need to download and install the FUSE development libraries from another source.
[4] Available from the EGRID RPM repository at http://www.egrid.it/download/rpm/RPMS.egrid/
Thus on Scientific Linux CERN 3 you would use:
# add the EGRID RPM repository to the APT sources list # (for the FUSE package) echo 'rpm http://egrid-doc.egrid.it/download/rpm . egrid' \ > /etc/apt/sources.list.d/egrid.list # update package availability apt-get update # on Scientific Linux CERN 3 apt-get install \ libacl-devel \ libattr-devel \ fuse \ glib2-devel \ openldap-develWhereas on Debian (etch) you would use the following commands instead:
# on Debian (etch) apt-get install \ libacl1-dev \ libattr1-dev \ libfuse-dev \ libglib2.0-dev \ libldap2-devInstall other build-time dependencies. The provided Makefile will download the other dependencies for you with the make needed target:
cd elfi-src/ make needed
Compile and install ELFI:
make -e make install
By default, ELFI is installed under the /opt/egrid directory hierarchy; to install in a different location, use:
make install prefix=/path/to/wanted/location
Details of build-time dependencies
- castor-devel
- http://linuxsoft.cern.ch/cern/slc30X/i386/apt/RPMS.updates/castor-devel-2.1.1-1.i386.rpm
- CGSI_gSOAP_2.6-dev
- http://glitesoft.cern.ch/EGEE/gLite/APT/R3.0/rhel30/RPMS.Release3.0/CGSI_gSOAP_2.6-dev-1.1.15-6.i386.rpm
- gSOAP
http://switch.dl.sourceforge.net/sourceforge/gsoap2/gsoap_linux_2.6.0.tar.gz
Warning! At present, ELFI will not compile with any later version of gSOAP -- this is a known bug, and will be worked out eventually (although with low priority)
- libfuse-dev
-
Warning! version >= 2.5 is needed
- libacl, libattr
- ftp://sunsite.dk/mirrors/xfs/cmd_tars/
- glib-2.0
- http://freshmeat.net/projects/glib/?branch_id=3342&release_id=79325
- libldap
- http://www.openldap.org/software
Configuring ELFI
ELFI needs no configuration files; only the system executable search path (environment variable PATH) and the library search path (environment variable LD_LIBRARY_PATH) need to be adjusted to match the location in which you installed ELFI.
The elfi program will look for the helper application elfi-bdii-cache in the system executable search path (environment variable PATH).
So, to run ELFI you must add to the PATH environment variable the directory containing the elfi-bdii-cache executables, which by default is /opt/egrid/bin. You can do this for just the current session by typing the following command in your shell:
export PATH=$PATH:/opt/egrid/bin
If you have installed ELFI in a location different from the default one, you will need to replace path /opt/egrid/bin (in the above line) with the directory where you copied the elfi-bdii-cache program.
To set the executable search path for all users and all sessions, you can run the following commands (as root user):
# create a file that will be loaded at every login echo 'export PATH=$PATH:/opt/egrid/bin' \ > /etc/profile.d/elfi.sh
(The above recipe will work in RedHat-like distros, for instance in Scientific Linux CERN; if you use ELFI on other systems, you might have to add the "export ..." line to file /etc/profile.)
ELFI will look for the libelfi_*.so libraries in the system library search path (environment variable LD_LIBRARY_PATH).
To set the LD_LIBRARY_PATH environment variable for just the current session, type the following command in your shell:
export LD_LIBRARY_PATH=/opt/egrid/lib:$LD_LIBRARY_PATH
If you have installed ELFI in a location different from the default one, you will need to replace path /opt/egrid/lib (in the above line) with the directory where you copied the libelfi_*.so libraries.
To set the library load path for all users and all sessions, you can run the following commands (as root user):
# add ELFI library dir to system library path # (mind the '>>' below!) echo /opt/egrid/lib >> /etc/ld.so.conf # update system library index ldconfig
Getting support
Mailing list
You can subscribe the ELFI mailing list at http://www.egrid.it/cgi-bin/mailman/listinfo/elfi ; the mailing list is a forum for discussing all issues about ELFI, including support requests and new feature suggestions.
You can post to the mailing list by sending mail to the address elfi@egrid.it.
IRC channel
You can join the ELFI team online on channel #egrid on the freenode IRC network server irc.freenode.net.
An IRC client is available online at http://www.egrid.it/irc which will take you directly to the EGRID suppport channel.
Bugs
Please report any bugs through our issue tracking web interface at http://www.egrid.it/bugs
Note
We value your feed back!
This document is a first draft; if you find anything missing, incorrect, or simply unclear, please report it to the email address above, or to the ELFI mailing-list: elfi@egrid.it. Thank you!
