Chapter 2. Installation

Table of Contents

2. GNU/Debian
2.1. GNU/Debian Linux on amd64/i386 Platform
2.2. GNU/Debian and Ubuntu on other architectures
3. Windows
4. Upgrading from Zebra version 1.3.x

Zebra is written in ANSI C and was implemented with portability in mind. We primarily use GCC on UNIX and Microsoft Visual C++ on Windows.

The software is regularly tested on Debian GNU/Linux, Red Hat Linux, FreeBSD (i386), MAC OSX, Windows 7.

Zebra can be configured to use the following utilities (most of which are optional):

YAZ (required)

Zebra uses YAZ to support Z39.50 / SRU. Zebra also uses a lot of other utilities (not related to networking), such as memory management and XML support.

For the DOM XML / ALVIS record filters, YAZ must be compiled with Libxml2 and Libxslt support and Libxml2 must be version 2.6.15 or later.

iconv (optional)

Character set conversion. This is required if you're going to use any other character set than UTF-8 and ISO-8859-1 for records. Note that some Unixes has iconv built-in.

Expat (optional)

XML parser. If you're going to index real XML you should install this (filter grs.xml). On most systems you should be able to find binary Expat packages.

Tcl (optional)

Tcl is required if you need to use the Tcl record filter for Zebra. You can find binary packages for Tcl for many Unices and Windows.

Autoconf, Automake (optional)

GNU Automake and Autoconf are only required if you're using the CVS version of Zebra. You do not need these if you have fetched a Zebra tar.

Docbook and friends (optional)

These tools are only required if you're writing documentation for Zebra. You need the following Debian packages: docbook, docbook-xml, docbook-xsl, docbook-utils, xsltproc.


On Unix, GCC works fine, but any native C compiler should be possible to use as long as it is ANSI C compliant.

Unpack the distribution archive. The configure shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a Makefile in each directory of Zebra.

To run the configure script type:


The configure script attempts to use C compiler specified by the CC environment variable. If this is not set, cc or GNU C will be used. The CFLAGS environment variable holds options to be passed to the C compiler. If you're using a Bourne-shell compatible shell you may pass something like this:

     CC=/opt/ccs/bin/cc CFLAGS=-O ./configure

The configure script support various options: you can see what they are with

     ./configure --help

Once the build environment is configured, build the software by typing:


If the build is successful, two executables are created in the sub-directory index:


The Z39.50 server and search engine.


The administrative indexing tool.


The .so-files are Zebra record filter modules. There are modules for reading MARC (, XML ( , etc.


Using configure option --disable-shared builds Zebra statically and links "in" Zebra filter code statically, i.e. no .so-files are generated

You can now use Zebra. If you wish to install it system-wide, then as root type

     make install

By default this will install the Zebra executables in /usr/local/bin, and the standard configuration files in /usr/local/share/idzebra-2.0. If shared modules are built, these are installed in /usr/local/lib/idzebra-2.0/modules. You can override this with the --prefix option to configure.