======================================= Gfarm installation from the source code ======================================= This distribution is fully tested on Linux. The building tests were done on NetBSD, and Solaris. This section describes how to build Gfarm binaries from the source distribution. You can skip this document if you use a binary distribution. To build the Gfarm system, the OpenSSL library and either the OpenLDAP library, or the PostgreSQL library are required. Regarding RPM packages and Debian packages for them, see required package section below. The following is the installation procedure for the Gfarm system. Please use GNU make on operating systems other than Linux and NetBSD. % ./configure [options] % make % su Password: # make install Options for configure: --with-postgresql=directory Specifies an installation directory for PostgreSQL. When this option is not specified, the installation directory is searched for automatically. --with-openssl=PKG Specifies a package name for OpenSSL. The default is openssl. --with-globus=directory Specifies an installation directory for the Globus Toolkit to utilize the GSI authentication method. When a directory is not specified, pkg-config is tried at first, and then the environment variable GLOBUS_LOCATION is tried. This is optional. The flavor of the Globus library is searched for automatically. If you need to specify a flavor, specify it with the --with-globus-flavor=flavor option. --with-infiniband=directory Specifies to use RDMA through InfiniBand. When an original package is installed, appoint the directory. Memory resource limit must be enough to perform RDMA effectively. Please edit /etc/security/limits.conf and enlarge the limit. "* hard memlock unlimited" --without-mtsafe-netdb Specifies if either getaddrinfo(3) or getnameinfo(3) library function is not multi-thread safe. --prefix=directory Specifies a destination directory for installation. The default is /usr/local directory. This is optional. --sysconfdir=directory Specifies a directory where the ``gfarm2.conf'' configuration file is located. The default is the ``etc'' directory under the directory specified in the above --prefix option. This document assumes that --sysconfdir=/etc is specified. This is optional. --enable-voms Enables to compile the gfvoms-sync command to synchronize Gfarm group membership with VOMS (Virtual Organization Membership Service) servers. This option requires Python and ZSI (Zolera SOAP Infrastructure). This is optional. --enable-xmlattr Enables XML extended attribute feature that can be queried by the XML Path Language (XPath). For details, see manual pages of gfxattr and gffindxmlattr. This option requires postgresql-8.3 or later that configures with the --with-libxml option. See http://www.postgresql.org/docs/8.3/static/install-procedure.html for details. The -X option is also required to config-gfarm when setting up the Gfarm file system. This is optional. --enable-linuxkernel Enables to compile the Gfarm kernel driver on linux kernel 2.6. When you need to specify a compiler program explicitly, use the environment variable, CC. This is an example using gcc. % env CC=gcc ./configure [options] Required Package ---------------- * RPM Package openssl-devel (openssl11-devel(*) required for TLS/SASL on CentOS 7) postgresql-devel or libpq-devel cyrus-sasl-devel (required for SASL) cyrus-sasl-xoauth2-idp(**) (required for SASL XOAUTH2) krb5-devel (required for Kerberos) globus-gssapi-gsi-devel(*), pkgconfig (required for --with-globus option) rdma-core-devel (required for --with-infiniband option) postgresql, postgresql-server (required to execute config-gfarm) fuse-devel, libacl-devel (required to build gfarm2fs) ganglia-gmond-python (required to execute config-gf[ms]d-iostat) python3, python3-docopt(*), python3-schema(*) (required to execute gfptar) ruby (required to execute gfjournal{dump,admin}) golang (required for jwt-agent) (*) These packages are included in EPEL. EPEL packages can be used by # yum install epel-release (**) https://github.com/oss-tsukuba/cyrus-sasl-xoauth2-idp.git * Debian Package libssl-dev libpq-dev libsasl2-dev, sasl2-bin (required for SASL) cyrus-sasl-xoauth2-idp(**) (required for SASL XOAUTH2) libkrb5-dev (required for Kerberos) libglobus-gssapi-gsi-dev, pkgconf (required for --with-globus option) libibverbs-dev (required for --with-infiniband option) postgresql, postgresql-client (required to execute config-gfarm) libfuse-dev, libacl1-dev (required to build gfarm2fs) python3, python3-docopt, python3-schema (required to execute gfptar) ruby (required to execute gfjournal{dump,admin}) golang (required for jwt-agent) (**) https://github.com/oss-tsukuba/cyrus-sasl-xoauth2-idp.git Note ---- * Even if the required packages for TLS, SASL, SASL XOAUTH2, Kerberos are missing, it is still possible to build Gfarm without these authentication methods. $Id$