-<!-- $Id: installation.xml,v 1.20 2006-06-25 21:04:49 marc Exp $ -->
<chapter id="installation">
<title>Installation</title>
<para>
- Zebra is written in ANSI C and was implemented with portability in mind.
- We primarily use <ulink url="http://gcc.gnu.org/">GCC</ulink> on UNIX and
- <ulink url="http://msdn.microsoft.com/vstudio/">
- Microsoft Visual C++</ulink>
- on Windows.
+ &zebra; is written in &acro.ansi; C and was implemented with portability in mind.
+ We primarily use <ulink url="&url.gcc;">GCC</ulink> on UNIX and
+ <ulink url="&url.vstudio;">Microsoft Visual C++</ulink> on Windows.
</para>
<para>
The software is regularly tested on
- <ulink url="http://www.debian.org/">Debian GNU/Linux</ulink>,
- <ulink url="http://www.redhat.com/">Redhat Linux</ulink>,
- <ulink url="http://www.gentoo.org/">Gentoo Linux</ulink>,
- <ulink url="http://www.suse.com/">SuSE Linux</ulink>,
- <ulink url="http://www.freebsd.org/">FreeBSD (i386)</ulink>,
- <ulink url="http://www.apple.com/macosx/">MAC OSX</ulink>,
- <ulink url="http://www.sun.com/software/solaris/">SunOS 5.8
- (sparc)</ulink>,
- <ulink url="http://www.microsoft.com/windows2000/">Windows 2000</ulink>.
+ <ulink url="&url.debian;">Debian GNU/Linux</ulink>,
+ <ulink url="&url.redhat;">Red Hat Linux</ulink>,
+ <ulink url="&url.freebsd;">FreeBSD (i386)</ulink>,
+ <ulink url="&url.macosx;">MAC OSX</ulink>,
+ Windows 7.
</para>
-
+
<para>
- Zebra can be configured to use the following utilities (most of
+ &zebra; can be configured to use the following utilities (most of
which are optional):
<variablelist>
<varlistentry>
- <term><ulink url="http://www.indexdata.dk/yaz/">yaz</ulink>
+ <term><ulink url="&url.yaz;">&yaz;</ulink>
(required)</term>
<listitem>
<para>
- Zebra uses YAZ to support Z39.50/ <ulink url="http://www.loc.gov/standards/sru/srw/">SRW</ulink>. Also the memory management
- utilites from YAZ is used by Zebra.
+ &zebra; uses &yaz; to support <ulink url="&url.z39.50;">&acro.z3950;</ulink> /
+ <ulink url="&url.sru;">&acro.sru;</ulink>.
+ Zebra also uses a lot of other utilities (not related to networking),
+ such as memory management and XML support.
+ </para>
+ <para>
+ For the <link linkend="record-model-domxml">DOM XML</link>
+ / <link linkend="record-model-alvisxslt">ALVIS</link>
+ record filters, &yaz; must be compiled with
+ <ulink url="&url.libxml2;">Libxml2</ulink>
+ and
+ <ulink url="&url.libxslt;">Libxslt</ulink>
+ support and Libxml2 must be version 2.6.15 or later.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><ulink url="http://www.gnu.org/software/libiconv/">iconv</ulink>
+ <term><ulink url="&url.libiconv;">iconv</ulink>
(optional)</term>
<listitem>
<para>
</listitem>
</varlistentry>
<varlistentry>
- <term><ulink url="http://expat.sourceforge.net/">Expat</ulink>
+ <term><ulink url="&url.expat;">Expat</ulink>
(optional)</term>
<listitem>
<para>
- XML parser. If you're going to index real XML you should
+ &acro.xml; parser. If you're going to index real &acro.xml; you should
install this (filter grs.xml). On most systems you should be able
to find binary Expat packages.
</para>
</listitem>
</varlistentry>
-
- <varlistentry>
- <term><ulink url="http://www.perl.com/">Perl</ulink> (optional)</term>
- <listitem>
- <para>
- Perl is required if you're going to use the Zebra perl
- filter facility or the Zebra perl API. Perl is preinstalled
- on many Unixes. We've not tried the Perl extension on
- Windows ourselves.
- </para>
- </listitem>
- </varlistentry>
-
+
<varlistentry>
- <term><ulink url="http://www.tcl.tk/">Tcl</ulink> (optional)</term>
+ <term><ulink url="&url.tcl;">Tcl</ulink> (optional)</term>
<listitem>
<para>
Tcl is required if you need to use the Tcl record filter
- for Zebra. You can find binary packages for Tcl for many
+ for &zebra;. You can find binary packages for Tcl for many
Unices and Windows.
</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term>
- <ulink url="http://www.gnu.org/software/autoconf/">Autoconf</ulink>,
- <ulink url="http://www.gnu.org/software/automake/">Automake</ulink>
+ <ulink url="&url.autoconf;">Autoconf</ulink>,
+ <ulink url="&url.automake;">Automake</ulink>
(optional)</term>
<listitem>
<para>
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.
+ using the CVS version of &zebra;. You do not need these
+ if you have fetched a &zebra; tar.
</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
- <term><ulink url="http://docbook.org/">Docbook</ulink>
+ <term><ulink url="&url.docbook;">Docbook</ulink>
and friends (optional)</term>
<listitem>
<para>
These tools are only required if you're writing
- documentation for Zebra. You need the following
- Debian packages: jadetex, docbook, docbook-dsssl,
- docbook-xml, docbook-utils.
+ documentation for &zebra;. You need the following
+ Debian packages: docbook, docbook-xml, docbook-xsl,
+ docbook-utils, xsltproc.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
- <sect1 id="installation.unix"><title>UNIX</title>
+ <section id="installation-unix"><title>UNIX</title>
<para>
- On Unix, <literal>gcc</literal> works fine, but any native
- C compiler should be possible to use as long as it is
- ANSI C compliant.
+ On Unix, GCC works fine, but any native
+ C compiler should be possible to use as long as it is
+ &acro.ansi; C compliant.
</para>
-
+
<para>
Unpack the distribution archive. The <literal>configure</literal>
shell script attempts to guess correct values for various
system-dependent variables used during compilation.
It uses those values to create a <literal>Makefile</literal> in each
- directory of Zebra.
+ directory of &zebra;.
</para>
-
+
<para>
To run the configure script type:
-
+
<screen>
./configure
</screen>
-
+
</para>
-
+
<para>
The configure script attempts to use C compiler specified by
the <literal>CC</literal> environment variable.
The <literal>CFLAGS</literal> 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:
-
+
<screen>
CC=/opt/ccs/bin/cc CFLAGS=-O ./configure
</screen>
./configure --help
</screen>
</para>
-
+
<para>
Once the build environment is configured, build the software by
typing:
make
</screen>
</para>
-
+
<para>
If the build is successful, two executables are created in the
sub-directory <literal>index</literal>:
<variablelist>
-
+
<varlistentry>
<term><literal>zebrasrv</literal></term>
<listitem>
<para>
- The Z39.50 server and search engine.
+ The &acro.z3950; server and search engine.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><literal>zebraidx</literal></term>
+ <term><literal>zebraidx</literal></term>
<listitem>
<para>
The administrative indexing tool.
</para>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term><literal>index/*.so</literal></term>
+ <listitem>
+ <para>
+ The <literal>.so</literal>-files are &zebra; record filter modules.
+ There are modules for reading
+ &acro.marc; (<filename>mod-grs-marc.so</filename>),
+ &acro.xml; (<filename>mod-grs-xml.so</filename>) , etc.
+ </para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</para>
-
+
+ <note>
+ <para>
+ Using configure option <literal>--disable-shared</literal> builds
+ &zebra; statically and links "in" &zebra; filter code statically, i.e.
+ no <literal>.so-files</literal> are generated
+ </para>
+ </note>
+
<para>
- You can now use Zebra. If you wish to install it system-wide, then
+ You can now use &zebra;. If you wish to install it system-wide, then
as root type
<screen>
make install
</screen>
- By default this will install the Zebra executables in
+ By default this will install the &zebra; executables in
<filename>/usr/local/bin</filename>,
- and the standard configuration files in
- <filename>/usr/local/share/idzebra</filename>
+ and the standard configuration files in
+ <filename>/usr/local/share/idzebra-2.0</filename>. If
+ shared modules are built, these are installed in
+ <filename>/usr/local/lib/idzebra-2.0/modules</filename>.
You can override this with the <literal>--prefix</literal> option
to configure.
</para>
- </sect1>
+ </section>
- <sect1 id="installation.debian"><title>GNU/Debian</title>
- <sect2 id="installation.debianlinux"><title>GNU/Debian Linux</title>
+ <section id="installation-debian"><title>GNU/Debian</title>
+ <section id="installation-debian-linux"><title>GNU/Debian Linux on
+ amd64/i386 Platform</title>
<para>
- Index Data provides pre-compiled <literal>GNU/Debian
- Linux</literal> packages at our Debian package archive, both for
- the <literal>Sarge</literal> and the <literal>Etch</literal> release.
+ Index Data provides pre-compiled GNU/Debian and Ubuntu packages
+ at our Debian package archive, both for recent releases.
</para>
-
+
<para>
- To install these packages, you need to add two lines to your
- <literal>/etc/apt/sources.list</literal> configuration file,
- either the <literal>Sarge</literal> sources found at
- <screen>
- deb http://ftp.indexdata.dk/t/debian sarge main
- deb-src http://ftp.indexdata.dk/t/debian sarge main
- </screen>
- or the <literal>Etch</literal> sources from
- <screen>
- deb http://ftp.indexdata.dk/t/debian etch main
- deb-src http://ftp.indexdata.dk/t/debian etch main
- </screen>
+ For Debian, refer to
+ <ulink url="http://ftp.indexdata.dk/pub/zebra/debian/README"/>
+ for how to configure APT. For Ubuntu, refer to
+ <ulink url="http://ftp.indexdata.dk/pub/zebra/ubuntu/README"/>.
After refreshing the package cache with the command
<screen>
apt-get update
</screen>
- as <literal>root</literal>, the
- <ulink url="http://indexdata.dk/zebra/">Zebra</ulink> indexer is
+ as <literal>root</literal>, the
+ <ulink url="&url.idzebra;">&zebra;</ulink> indexer is
easily installed issuing
<screen>
- apt-get install idzebra idzebra-doc
+ apt-get install idzebra-2.0 idzebra-2.0-doc
</screen>
</para>
- </sect2>
-
- <sect2 id="installation.debianother">
- <title>GNU/Debian On Other Platforms</title>
+ </section>
+
+ <section id="installation-debia-nother">
+ <title>GNU/Debian and Ubuntu on other architectures</title>
<para>
- These <ulink url="http://indexdata.dk/zebra/">Zebra</ulink>
+ These <ulink url="&url.idzebra;">&zebra;</ulink>
packages are specifically compiled for
- <literal>GNU/Debian Linux</literal> systems. Installation on other
- <literal>GNU/Debian</literal> systems is possible by
- re-compilation the Debian way: you need to add only the
- <literal>deb-src</literal> sources lines to the
- <literal>/etc/apt/sources.list</literal> configuration file,
- that is either the <literal>Sarge</literal> sources
- <screen>
- deb-src http://ftp.indexdata.dk/t/debian sarge main
- </screen>
- or the <literal>Etch</literal> sources
- <screen>
- deb-src http://ftp.indexdata.dk/t/debian etch main
- </screen>
+ GNU/Debian Linux systems and Ubuntu. Installation on other
+ GNU/Debian systems is possible by
+ re-compilation the Debian way: you need to add only the
+ <literal>deb-src</literal> sources lines to the
+ <filename>/etc/apt/sources.list</filename> configuration file,
After refreshing the package cache with the command
<screen>
apt-get update
+ apt-get build-dep idzebra-2.0
</screen>
- as <literal>root</literal>, the
- <ulink url="http://indexdata.dk/zebra/">Zebra</ulink> indexer is
+ as <literal>root</literal>, the
+ <ulink url="&url.idzebra;">&zebra;</ulink> indexer is
recompiled and installed issuing
<screen>
- apt-get build-dep idzebra
- apt-get source --compile idzebra
+ fakeroot apt-get source --compile idzebra-2.0
</screen>
as normal user.
- The compiled <literal>GNU/Debian</literal> packages can then be
+ The compiled GNU/Debian packages can then be
installed as <literal>root</literal> issuing
<screen>
- dpkg -i install idzebra*.deb idzebra-doc*.deb
+ dpkg -i install idzebra-2.0*.deb libidzebra-2.0*.deb
</screen>
</para>
- </sect2>
- </sect1>
+ </section>
+ </section>
- <sect1 id="installation.win32"><title>WIN32</title>
- <para>The easiest way to install Zebra on Windows is by downloading
- an installer from
- <ulink url="http://ftp.indexdata.dk/pub/zebra/win32/">here</ulink>.
+ <section id="installation-win32"><title>Windows</title>
+ <para>The easiest way to install &zebra; on Windows is by downloading
+ an installer from
+ <ulink url="&url.idzebra.download.win32;">here</ulink>.
The installer comes with source too - in case you wish to
- compile Zebra with different Compiler options.
+ compile &zebra; with different Compiler options.
</para>
-
+
<para>
- Zebra is shipped with "makefiles" for the NMAKE tool that comes
- with <ulink url="http://msdn.microsoft.com/vstudio/">
- Microsoft Visual C++</ulink>.
- Version 6 has been tested. We expect that zebra compiles
- with version 5 as well.
+ &zebra; is shipped with "makefiles" for the NMAKE tool that comes
+ with <ulink url="&url.vstudio;">Microsoft Visual C++</ulink>.
+ Version 2013 has been tested.
</para>
<para>
Start a command prompt and switch the sub directory
<filename>WIN</filename> where the file <filename>makefile</filename>
is located. Customize the installation by editing the
<filename>makefile</filename> file (for example by using notepad).
-
+
The following summarizes the most important settings in that file:
-
+
<variablelist>
<varlistentry><term><literal>DEBUG</literal></term>
<listitem><para>
(code generation is multi-threaded DLL).
</para></listitem>
</varlistentry>
-
+
<varlistentry>
<term><literal>YAZDIR</literal></term>
<listitem><para>
- Directory of YAZ source. Zebra's makefile expects to find
- <filename>yaz.lib</filename>, <filename>yaz.dll</filename>
+ Directory of &yaz; source. &zebra;'s makefile expects to find
+ YAZ<filename>.lib</filename>, YAZ<filename>.dll</filename>
in <replaceable>yazdir</replaceable><literal>/lib</literal> and
<replaceable>yazdir</replaceable><literal>/bin</literal> respectively.
</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term><literal>HAVE_EXPAT</literal>,
<literal>EXPAT_DIR</literal></term>
<listitem><para>
- If <literal>HAVE_EXPAT</literal> is set to 1, Zebra is compiled
- with <ulink url="http://expat.sourceforge.net/">Expat</ulink> support. In this configuration, set
- <literal>ZEBRA_DIR</literal> to the <ulink url="http://expat.sourceforge.net/">Expat</ulink> source directory.
+ If <literal>HAVE_EXPAT</literal> is set to 1, &zebra; is compiled
+ with <ulink url="&url.expat;">Expat</ulink> support.
+ In this configuration, set
+ <literal>ZEBRA_DIR</literal> to the Expat source directory.
Windows version of Expat can be downloaded from
- <ulink url="http://sourceforge.net/projects/expat/">
- SourceForge
- </ulink>.
+ <ulink url="&url.expat;">SourceForge</ulink>.
</para></listitem>
</varlistentry>
-
- <varlistentry>
- <term><literal>HAVE_ICONV</literal>,
- <literal>ICONV_DIR</literal></term>
- <listitem><para>
- If <literal>HAVE_ICONV</literal> is set to 1, Zebra is compiled
- with iconv support. In this configuration, set
- <literal>ICONV_DIR</literal> to the iconv source directory.
- Iconv binaries can be downloaded from
- <ulink url="http://www.zlatkovic.com/projects/libxml/binaries.html">
- this site
- </ulink>.
- </para>
- </listitem>
- </varlistentry>
-
+
<varlistentry>
<term><literal>BZIP2INCLUDE</literal>,
<literal>BZIP2LIB</literal>,
<literal>BZIP2DEF</literal>
</term>
<listitem><para>
- Define these symbols if Zebra is to be compiled with
- <ulink url="http://sources.redhat.com/bzip2/">BZIP2</ulink>
- record compression support.
+ Define these symbols if &zebra; is to be compiled with
+ <ulink url="&url.bzip2;">BZIP2</ulink> record compression support.
</para></listitem>
</varlistentry>
-
+
</variablelist>
</para>
<warning>
<para>
- The <literal>DEBUG</literal> setting in the makefile for Zebra must
+ The <literal>DEBUG</literal> setting in the makefile for &zebra; must
be set to the same value as <literal>DEBUG</literal> setting in the
- makefile for YAZ.
- If not, the Zebra server/indexer will crash.
+ makefile for &yaz;.
+ If not, the &zebra; server/indexer will crash.
</para>
</warning>
<para>
</para>
</note>
<para>
- If you wish to recompile Zebra - for example if you modify
- settings in the <filename>makefile</filename> you can delete
+ If you wish to recompile &zebra; - for example if you modify
+ settings in the <filename>makefile</filename> you can delete
object files, etc by running.
<screen>
nmake clean
</para>
<para>
The following files are generated upon successful compilation:
-
+
<variablelist>
<varlistentry><term><filename>bin/zebraidx.exe</filename></term>
<listitem><para>
- The Zebra indexer.
+ The &zebra; indexer.
</para></listitem></varlistentry>
-
+
<varlistentry><term><filename>bin/zebrasrv.exe</filename></term>
<listitem><para>
- The Zebra server.
+ The &zebra; server.
</para></listitem></varlistentry>
-
+
</variablelist>
-
+
+ </para>
+ </section>
+
+
+ <section id="installation-upgrade">
+ <title>Upgrading from &zebra; version 1.3.x</title>
+ <para>
+ &zebra;'s installation directories have changed a bit. In addition,
+ the new loadable modules must be defined in the
+ master <filename>zebra.cfg</filename> configuration file. The old
+ version 1.3.x configuration options
+ <screen>
+ # profilePath - where to look for config files
+ profilePath: some/local/path:/usr/share/idzebra/tab
+ </screen>
+ must be changed to
+ <screen>
+ # profilePath - where to look for config files
+ profilePath: some/local/path:/usr/share/idzebra-2.0/tab
+
+ # modulePath - where to look for loadable zebra modules
+ modulePath: /usr/lib/idzebra-2.0/modules
+ </screen>
+ </para>
+ <note>
+ <para>
+ The internal binary register structures have changed; all &zebra;
+ databases must be re-indexed after upgrade.
+ </para>
+ </note>
+ <para>
+ The attribute set definition files may no longer contain
+ redirection to other fields.
+ For example the following snippet of
+ a custom <filename>custom/bib1.att</filename>
+ &acro.bib1; attribute set definition file is no
+ longer supported:
+ <screen>
+ att 1016 Any 1016,4,1005,62
+ </screen>
+ and should be changed to
+ <screen>
+ att 1016 Any
+ </screen>
+ </para>
+ <para>
+ Similar behaviour can be expressed in the new release by defining
+ a new index <literal>Any:w</literal> in all &acro.grs1;
+ <filename>*.abs</filename> record indexing configuration files.
+ The above example configuration needs to make the changes
+ from version 1.3.x indexing instructions
+ <screen>
+ xelm /*/alternative Body-of-text:w,Title:s,Title:w
+ xelm /*/title Body-of-text:w,Title:s,Title:w
+ </screen>
+ to version 2.0.0 indexing instructions
+ <screen>
+ xelm /*/alternative Any:w,Body-of-text:w,Title:s,Title:w
+ xelm /*/title Any:w,Body-of-text:w,Title:s,Title:w
+ </screen>
+ </para>
+ <para>
+ It is also possible to map the numerical attribute value
+ <literal>@attr 1=1016</literal> onto another already existing huge
+ index, in this example, one could for example use the mapping
+ <screen>
+ att 1016 Body-of-text
+ </screen>
+ with equivalent outcome without editing all &acro.grs1;
+ <filename>*.abs</filename> record indexing configuration files.
+ </para>
+
+ <para>
+ Server installations which use the special
+ <literal>&acro.idxpath;</literal> attribute set must add the following
+ line to the <filename>zebra.cfg</filename> configuration file:
+ <screen>
+ attset: idxpath.att
+ </screen>
</para>
- </sect1>
+ </section>
-
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
- sgml-parent-document: "zebra.xml"
+ sgml-parent-document: "idzebra.xml"
sgml-local-catalogs: nil
sgml-namecase-general:t
End: