Enterprise Linux GIS

From OSGeo
Jump to navigation Jump to search

This page gathers links and information about running FLOSS GIS software on Enterprise Linux (shortened EL hereafter) and derivatives, that is Red Hat Enterprise Linux (RHEL), CentOS and Scientific Linux.

EL is a popular and robust platform for servers and computing-heavy workstations, and is therefore a good fit for the specific requirements of GIS.

The mailing list el@lists.osgeo.org is used for communication (with an online archive).

Useful repositories for GIS software

  • EPEL is an official Fedora project which repackages many Fedora packages which are not part of the standard EL distribution. It contains quite a few GIS packages and base libraries. Note that one of the rules of the packages maintained in EPEL is that they should never require to change the base EL distribution.
  • ELGIS repository maintains versions of packages which cannot be maintained in EPEL. This is where our packaging effort currently takes place. It requires EPEL to be configured as a repository.
  • PostgreSQL RPM Building Project maintains many versions of the PostgreSQL database as well as PostGIS packages

One goal is also to integrate well with Debian GIS with regards to the versions maintained (see their Packages Thermometer) in order to improve interoperability.

Packages Status Summary

Detailed package lists for ELGIS are available here: http://elgis.argeo.org

Package Version (stable) Version (testing) Repository Comment
gdal 1.6.3 1.7.2 elgis testing is built against postgresql84
geos 3.2.2 elgis
gpsbabel 1.3.3 epel
grass 6.4.0RC6 6.4.0svn-r43144 elgis -wx UI broken since EPEL update to wxGTK/wxPython 2.8.11 (fixed in testing)
mapserver 5.6.5 elgis
postgis 1.5.1 elgis built against postgresql84
proj 4.7.0 elgis
qgis 1.4.0 elgis-plus Python plugins not working, probably requires a higher version of Python

How To

How to enable the ELGIS repository

sudo rpm -Uvh http://elgis.argeo.org/repos/5/elgis-release-5-5_0.noarch.rpm
  • if you want to install QGIS, edit the /etc/yum.repos.d/elgis.repo file and enable the 'elgis-plus'. WARNING: this updates the base distribution

How to hack and locally build the ELGIS packages

For the time being, the ELGIS packages (that is, those not maintained by EPEL) are versioned by and distributed through argeo.org.

You can see the currently versioned packages here:

Note: simply accept the self-signed certificate

You can checkout all the packages:

svn co https://projects.argeo.org/elgis/svn/factory/trunk/rpmbuild rpms

Or one by one, for example:

svn co https://projects.argeo.org/elgis/svn/factory/trunk/rpmbuild/elgis/gdal gdal

Each package directory follows the directory structure expected by rpmbuild (see how to set an rpmbuild environment).

We version only the spec files (under <package name>/SPECS/<package name>.spec) and the patches or some light sources (under <package name>/SOURCES). The source packages of the underlying libraries needs to be downloaded in the SOURCES directory.

Please send patches to the spec files to the el@lists.osgeo.org mailing-list.

In order to actually build, you can then configure %_topdir in your ~/.rpmmacros file to point to where you checked out a package, for example:

%_topdir %(echo $HOME)/dev/rpmbuild
%rhel 5
%packager Mathieu Baudier <mbaudier@argeo.org>
%dist .el5.elgis

A more persistent alternative is to have the two following files in each package directory:

  • <package directory>/rpmrc
include: /usr/lib/rpm/rpmrc
macrofiles: /usr/lib/rpm/macros:/usr/lib/rpm/ia32e-linux/macros:/usr/lib/rpm/redhat/macros:/etc/rpm/macros.*:/etc/rpm/macros:/etc/rpm/ia32e-linux/macros:~/.rpmmacros:<package directory>/rpmmacros

(note the ':<package directory>/rpmmacros' appended at the end of the macrofiles line)

  • <package directory>/rpmmacros
%_topdir <package directory>
%rhel 5
%packager Mathieu Baudier <mbaudier@argeo.org>
%dist .el5.argeo

And then call rpmbuild as follow

cd <package directory>
rpmbuild --rcfile=rpmrc -ba SPECS/<package name>.spec

These two files are registered in svn:ignore and can typically be automatically generated by scripts or a build framework.

Historical Reference