<chapter id="installation"><title>Compilation and Installation</title>
-
+
<sect1 id="installation-introduction"><title>Introduction</title>
<para>
The latest version of the software will generally be found at:
<para>
We have tried our best to keep the software portable, and on many
platforms, you should be able to compile everything with little or
- no changes.
+ no changes.
</para>
<para>
The software is regularly tested on
<ulink url="&url.debian;">Debian GNU/Linux</ulink>,
- <ulink url="&url.redhat;">Redhat Linux</ulink>,
+ <ulink url="&url.centos;">CentOS</ulink>,
<ulink url="&url.ubuntu;">Ubuntu Linux</ulink>,
<ulink url="&url.freebsd;">FreeBSD (i386)</ulink>,
<ulink url="&url.macosx;">MAC OSX</ulink>,
- <ulink url="&url.solaris;">SunOS 5.10 (sparc)</ulink>,
- <ulink url="&url.windows2000;">Windows 2000</ulink>,
- <ulink url="&url.windows2003server;">Windows 2003 server</ulink>.
+ <ulink url="&url.solaris;">Solaris</ulink>,
+ Windows 7, Windows Xp.
</para>
-
+
<para>
Some versions have be known to work on HP/UX,
DEC Unix, <ulink url="&url.netbsd;">NetBSD</ulink>,
<literal>#ifdefs</literal> for individual platforms, and we'd
like to keep it that way as far as it makes sense.
</para>
-
+
<para>
We maintain a mailing-list for the purpose of announcing new releases and
- bug-fixes, as well as general discussion. Subscribe by
+ bug-fixes, as well as general discussion. Subscribe by
filling-in the form
<ulink url="&url.yaz.mailinglist;">here</ulink>.
- General questions and problems can be directed at
+ General questions and problems can be directed at
<ulink url="&url.yaz.mail;"/>, or the address given at the top of
this document.
</para>
-
+
</sect1>
<sect1 id="installation.unix"><title>UNIX</title>
<para>
- We provide
- <ulink url="&url.debian;">Debian GNU/Linux</ulink>
- and
- <ulink url="&url.redhat;">Redhat</ulink> packages for &yaz;.
- Only i386 binary packages are available. You should be able to
- create packages for other CPUs by building them from the source
- package.
+ We provide
+ <ulink url="&url.debian;">Debian GNU/Linux</ulink> (i386 and amd64),
+ <ulink url="&url.ubuntu;">Ubuntu</ulink> (i386 and amd64)
+ and
+ <ulink url="&url.centos;">CentOS</ulink> (amd64 only) packages for &yaz;.
+ You should be able to create packages for other CPUs by building
+ them from the source package.
</para>
-
+
+ <para>
+ YAZ is also part of several packages repositories. Some of them are
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ Solaris CSW: <ulink url="http://www.opencsw.org/packages/yaz/"/>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Solaris: <ulink url="http://unixpackages.com"/>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ FreeBSD: <ulink url="http://www.freshports.org/net/yaz"/>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Debian: <ulink url="http://packages.debian.org/search?keywords=yaz"/>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Ubuntu: <ulink url="https://launchpad.net/ubuntu/+source/yaz"/>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ NetBSD:
+ <ulink url="http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/net/yaz/README.html"/>
+ </para>
+ </listitem>
+ </itemizedlist>
+
<sect2 id="installation.source.unix">
<title>Compiling from source on Unix</title>
-
+
<para>
Note that if your system doesn't have a native ANSI C compiler, you may
have to acquire one separately. We recommend
If you wish to use character set conversion facilities in &yaz; or if you
are compiling &yaz; for use with Zebra it is a good idea to ensure that
the iconv library is installed. Some Unixes today already have it
- - if not, we suggest
+ - if not, we suggest
<ulink url="&url.libiconv;">GNU libiconv</ulink>.
</para>
<para>
- YAZ 3.0.16 and later includes a wrapper for the
- <ulink url="&url.icu;">ICU</ulink>
+ YAZ 3.0.16 and later includes a wrapper for the
+ <ulink url="&url.icu;">ICU</ulink>
(International Components for Unicode).
In order to use this, the developer version of the ICU library
must be available.
GNU <ulink url="&url.bison;">Bison</ulink>.
This tool is only needed if you're using the CVS version of &yaz;.
</para>
-
+
<para>
&yaz; includes a tiny ASN.1 compiler. This compiler is
written in <ulink url="&url.tcl;">Tcl</ulink>.
But as for Bison you do not need it unless you're using CVS
version of &yaz; or you're using the compiler to built own codecs
- for private ASN.1.
+ for private ASN.1.
</para>
-
+
<para>
Generally it should be sufficient to run configure without options,
like this:
</para>
-
+
<screen>
./configure
</screen>
-
+
<para>
The configure script attempts to use use the C compiler specified by
the <literal>CC</literal> environment variable. If not set, GNU C will be
Bourne-compatible shell you may pass something like this to use a
particular C compiler with optimization enabled:
</para>
-
+
<screen>
CC=/opt/ccs/bin/cc CFLAGS=-O ./configure
</screen>
-
+
<para>
To customize &yaz;, the configure script also accepts a set of options.
The most important are:
-
+
<variablelist>
<varlistentry><term>
<literal>--prefix</literal>=<replaceable>prefix</replaceable></term>
<refentrytitle>hosts_access</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry>
- and
+ and
<citerefentry>
<refentrytitle>tcpd</refentrytitle>
<manvolnum>8</manvolnum>
equivalent to <literal>--enable-static</literal>.
</para></listitem>
</varlistentry>
-
+
<varlistentry><term>
<literal>--with-iconv</literal>[=<replaceable>prefix</replaceable>]
</term>
<listitem><para>Compile &yaz; with iconv library in directory
<replaceable>prefix</replaceable>. By default configure will
search for iconv on the system. Use this option if it
- doesn't find iconv. Alternatively,
+ doesn't find iconv. Alternatively,
<literal>--without-iconv</literal>, can be uset to force &yaz;
not to use iconv.
</para></listitem>
<varlistentry><term>
<literal>--with-xslt</literal>[=<replaceable>prefix</replaceable>]
</term>
- <listitem><para>Compile &yaz; with
+ <listitem><para>Compile &yaz; with
<ulink url="&url.libxslt;">libxslt</ulink> in directory
- <replaceable>prefix</replaceable>.
+ <replaceable>prefix</replaceable>.
Use this option if you want XSLT and XML support.
By default, configure will
search for libxslt on the system. Use this option if it
- libxslt is not found automatically. Alternatively,
+ libxslt is not found automatically. Alternatively,
<literal>--without-xslt</literal>, can be used to force &yaz;
not to use libxslt.
</para>
<varlistentry><term>
<literal>--with-xml2</literal>[=<replaceable>prefix</replaceable>]
</term>
- <listitem><para>Compile &yaz; with
+ <listitem><para>Compile &yaz; with
<ulink url="&url.libxml2;">libxml2</ulink> in directory
- <replaceable>prefix</replaceable>.
+ <replaceable>prefix</replaceable>.
Use this option if you want &yaz; to use XML and support SRU.
By default, configure will
search for libxml2 on the system. Use this option if it
- libxml2 is not found automatically. Alternatively,
+ libxml2 is not found automatically. Alternatively,
<literal>--without-xml2</literal>, can be used to force &yaz;
not to use libxml2.
</para>
<varlistentry><term>
<literal>--with-icu</literal>[=<replaceable>prefix</replaceable>]
</term>
- <listitem><para>&yaz; will be linked the
+ <listitem><para>&yaz; will be linked the
<ulink url="&url.icu;">ICU</ulink> library in the prefix if given.
If prefix is not given, the libraries exposed by the script
<application>icu-config</application> will be used if found.
</varlistentry>
</variablelist>
-
+
</para>
<para>
When configured, build the software by typing:
make
</screen>
</para>
-
+
<para>
The following files are generated by the make process:
<variablelist>
<listitem><para>
Main &yaz; library. This is no ordinary library. It's
a Libtool archive.
- By default, &yaz; creates a static library in
+ By default, &yaz; creates a static library in
<filename>lib/.libs/libyaz.a</filename>.
</para></listitem>
</varlistentry>
-
+
<varlistentry><term><filename>src/libyaz_server.la</filename></term>
<listitem><para>
Generic Frontend server. This is an add-on for libyaz.la.
threads are available on the platform.
</para></listitem>
</varlistentry>
-
+
<varlistentry><term><filename>src/libyaz_icu.la</filename></term>
<listitem><para>
Functions that wrap the ICU library.
</para></listitem>
</varlistentry>
-
+
<varlistentry><term><filename>ztest/yaz-ztest</filename></term>
- <listitem><para>Test Z39.50 server.
+ <listitem><para>Test Z39.50 server.
</para></listitem>
</varlistentry>
-
+
<varlistentry><term><filename>client/yaz-client</filename></term>
<listitem><para>Z39.50 client for testing the protocol.
See chapter <link linkend="yaz-client">
&yaz;.
</para></listitem>
</varlistentry>
-
+
<varlistentry><term><filename>util/yaz-asncomp</filename></term>
<listitem><para>The ASN.1 compiler for &yaz;. Requires the
Tcl Shell, <application>tclsh</application>, in
<literal>PATH</literal> to operate.
</para></listitem>
</varlistentry>
-
+
<varlistentry><term><filename>util/yaz-iconv</filename></term>
<listitem><para>This program converts data in one character set to
another. This command exercises the YAZ character set
conversion API.
</para></listitem>
</varlistentry>
-
+
<varlistentry><term><filename>util/yaz-marcdump</filename></term>
<listitem><para>This program parses ISO2709 encoded MARC records
and prints them in line-format or XML.
</para></listitem>
</varlistentry>
-
+
<varlistentry><term><filename>util/yaz-icu</filename></term>
<listitem><para>This program exposes the ICU wrapper library if that
is enabled for YAZ. Only if ICU is available this program is
useful.
</para></listitem>
</varlistentry>
-
+
<varlistentry><term><filename>zoom/zoomsh</filename></term>
<listitem><para>
- A simple shell implemented on top of the
+ A simple shell implemented on top of the
<link linkend="zoom">ZOOM</link> functions.
The shell is a command line application that allows you to enter
simple commands to perform ZOOM operations.
</para></listitem>
</varlistentry>
-
- <varlistentry><term><filename>zoom/zoomtst1</filename>,
+
+ <varlistentry><term><filename>zoom/zoomtst1</filename>,
<filename>zoom/zoomtst2</filename>, ..</term>
<listitem><para>
Several small applications that demonstrates the ZOOM API.
</para></listitem>
</varlistentry>
</variablelist>
-
+
</para>
-
+
<para>
- If you wish to install &yaz; in system directories
+ If you wish to install &yaz; in system directories
<filename>/usr/local/bin</filename>,
<filename>/usr/local/lib</filename> .. etc, you can type:
</para>
-
+
<screen>
make install
</screen>
-
+
<para>
You probably need to have root access in order to perform this.
You must specify the <literal>--prefix</literal> option for configure if
- you wish to install &yaz; in other directories than the default
+ you wish to install &yaz; in other directories than the default
<filename>/usr/local/</filename>.
</para>
-
+
<para>
If you wish to perform an un-installation of &yaz;, use:
</para>
-
+
<screen>
make uninstall
</screen>
-
+
<para>
This will only work if you haven't reconfigured &yaz; (and therefore
changed installation prefix). Note that uninstall will not
<screen>
#include <proto.h>
</screen>
- </para>
+ </para>
<para>
For Libtool users, the <filename>yaz-config</filename> script provides
a different variant of option <literal>--libs</literal>, called
</sect2>
</sect1>
<sect1 id="installation.win32"><title>WIN32</title>
-
+
<para>The easiest way to install YAZ on Windows is by downloading
- an installer from
+ an installer from
<ulink url="&url.yaz.download.win32;">here</ulink>.
The installer comes with source too - in case you wish to
- compile YAZ with different Compiler options etc.
+ compile YAZ with different Compiler options etc.
</para>
-
+
<sect2 id="installation.win32.source">
<title>Compiling from Source on WIN32</title>
<para>
<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>
(<filename>cql.y</filename>).
</para>
<para>
- A Windows version of GNU Bison is part of
+ A Windows version of GNU Bison is part of
<ulink url="&url.unxutils;">unxutils</ulink>.
</para></listitem>
</varlistentry>
<literal>ICONV_DIR</literal></term>
<listitem><para>
If <literal>HAVE_ICONV</literal> is set to 1, YAZ is compiled
- with iconv support. In this configuration, set
+ with iconv support. In this configuration, set
<literal>ICONV_DIR</literal> to the iconv source directory.
</para></listitem>
</varlistentry>
-
+
<varlistentry>
<term><literal>HAVE_LIBXML2</literal>,
<literal>LIBXML2_DIR</literal></term>
<listitem>
<para>
If <literal>HAVE_LIBXML2</literal> is set to 1, YAZ is compiled
- with SRU support. In this configuration, set
- <literal>LIBXML2_DIR</literal> to the
+ with SRU support. In this configuration, set
+ <literal>LIBXML2_DIR</literal> to the
<ulink url="&url.libxml2;">libxml2</ulink> source directory
and
<literal>ZLIB_DIR</literal> to the zlib directory.
<listitem>
<para>
If <literal>HAVE_LIBXSLT</literal> is set to 1, YAZ is compiled
- with XSLT support. In this configuration, set
- <literal>LIBXSLT_DIR</literal> to the
+ with XSLT support. In this configuration, set
+ <literal>LIBXSLT_DIR</literal> to the
<ulink url="&url.libxslt;">libxslt</ulink> source directory.
</para>
<para>
If <literal>HAVE_ICU</literal> is set to 1, YAZ is compiled
with <ulink url="&url.icu;">ICU</ulink> support.
- In this configuration, set
- <literal>ICU_DIR</literal> to the
+ In this configuration, set
+ <literal>ICU_DIR</literal> to the
<ulink url="&url.icu;">ICU</ulink> source directory.
</para>
</listitem>
</para>
<para>
The following files are generated upon successful compilation:
-
+
<variablelist>
- <varlistentry><term><filename>bin/yaz4.dll</filename> /
+ <varlistentry><term><filename>bin/yaz4.dll</filename> /
<filename>bin/yaz4d.dll</filename></term>
<listitem><para>
&yaz; Release/Debug DLL.
</para></listitem></varlistentry>
-
- <varlistentry><term><filename>lib/yaz4.lib</filename> /
+
+ <varlistentry><term><filename>lib/yaz4.lib</filename> /
<filename>lib/yaz4d.lib</filename></term>
<listitem><para>
Import library for <filename>yaz4.dll</filename> /
<filename>yaz4d.dll</filename>.
</para></listitem></varlistentry>
-
- <varlistentry><term><filename>bin/yaz_cond4.dll</filename> /
+
+ <varlistentry><term><filename>bin/yaz_cond4.dll</filename> /
<filename>bin/yaz_cond4d.dll</filename></term>
<listitem><para>
Release/Debug DLL for condition variable utilities (condvar.c).
</para></listitem></varlistentry>
-
- <varlistentry><term><filename>lib/yaz_cond4.lib</filename> /
+
+ <varlistentry><term><filename>lib/yaz_cond4.lib</filename> /
<filename>lib/yaz_cond4d.lib</filename></term>
<listitem><para>
Import library for <filename>yaz_cond4.dll</filename> /
<filename>yaz_cond4d.dll</filename>.
</para></listitem></varlistentry>
-
+
<varlistentry><term><filename>bin/yaz_icu4.dll</filename> /
<filename>bin/yaz_icu4d.dll</filename></term>
<listitem><para>
Release/Debug DLL for the ICU wrapper utility.
Only build if HAVE_ICU is 1.
</para></listitem></varlistentry>
-
+
<varlistentry><term><filename>lib/yaz_icu4.lib</filename> /
<filename>lib/yaz_icu4d.lib</filename></term>
<listitem><para>
Import library for <filename>yaz_icu4.dll</filename> /
<filename>yaz_icu4d.dll</filename>.
</para></listitem></varlistentry>
-
+
<varlistentry><term><filename>bin/yaz-ztest.exe</filename></term>
<listitem><para>
Z39.50 multi-threaded test/example server. It's a WIN32
console application.
</para></listitem></varlistentry>
-
+
<varlistentry><term><filename>bin/yaz-client.exe</filename></term>
<listitem><para>
&yaz; Z39.50 client application. It's a WIN32 console application.
See chapter <link linkend="yaz-client">YAZ client</link> for more
information.
</para></listitem></varlistentry>
-
+
<varlistentry><term><filename>bin/yaz-icu.exe</filename></term>
<listitem><para>This program exposes the ICU wrapper library if that
is enabled for YAZ. Only if ICU is available this program is
The application is a command line shell that allows you to enter
simple commands to perform ZOOM operations.
</para></listitem></varlistentry>
-
- <varlistentry><term><filename>bin/zoomtst1.exe</filename>,
+
+ <varlistentry><term><filename>bin/zoomtst1.exe</filename>,
<filename>bin/zoomtst2.exe</filename>, ..</term>
<listitem><para>
Several small applications that demonstrates the ZOOM API.
</para></listitem></varlistentry>
-
+
</variablelist>
-
+
</para>
</sect2>
</para></listitem></varlistentry>
<varlistentry><term>import library <filename>yaz4.lib</filename>
</term><listitem><para>
- You must link with this library. It's located in the
+ You must link with this library. It's located in the
sub directory <filename>lib</filename> of &yaz;.
If you want to link with the debug version of &yaz;, you must
link against <filename>yaz4d.lib</filename> instead.
</sect2>
</sect1>
</chapter>
-
+
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-namecase-general:t
End:
-->
-
+