= Installing Alexandria

Alexandria is written in Ruby with a GTK+2/GNOME user-interface. It
currently only runs on UNIX-style systems, such as GNU/Linux.

Alexandria is not an easy project to build from scratch. Apart from
Ruby and GNOME, it has a lot of dependencies; however, many of these
are now optional as detailed below. Once the dependencies have been
installed, building and installing Alexandria is relatively
straightforward.


== Dependencies

The {Ruby-GNOME2}[http://ruby-gnome2.sourceforge.jp/] user-interface
involves a number of packages:

* <tt>ruby-gtk2</tt>
* <tt>ruby-gnome2</tt>
* <tt>ruby-libglade2</tt>
* <tt>ruby-gconf2</tt>
* <tt>ruby-pango</tt>

You should have GTK+ >= 2.8.0, and use Ruby-GNOME2 >= 0.16.0.

<tt>ruby-gettext</tt>[http://ponx.s5.xrea.com/hiki/ruby-gettext.html]
is required for the internationalisation of the user interface.
Requires version 1.7.0 or higher.

=== Hpricot

Alexandria uses +hpricot+[http://code.whytheluckystiff.net/hpricot] to
parse the HTML from web pages for providers such as DeaStore and
Siciliano. It is also used to parse the XML for the Amazon web
service. You can install the +hpricot+ package natively or as a
ruby gem.


== Build Dependencies

=== Ruby Dependencies

+rake+[http://rake.rubyforge.org] is required to build Alexandria from
the project +Rakefile+.

You also need +rubygems+[http://www.rubygems.org/] and
+rspec+[http://rspec.rubyforge.org/] to run the RSpec test suite.

=== Native Dependencies

The +gettext+[http://www.gnu.org/software/gettext] package is needed
to generate the binary +mo+ files used by <tt>ruby-gettext</tt> at
runtime. You also need the
+intltool+[http://www.freedesktop.org/wiki/Software/intltool] package
to merge translations into generated files (and to extract
translatable string from xml files during development).

To build deb files, you will need +dpkg+ and +fakeroot+ (which are
available on all Debian-based systems through <tt>apt-get</tt>).

== Optional Dependencies

=== Ruby/ZOOM and Yaz

For Z39.50 support and and the <b>Library of Congress</b> and
<b>British Library</b> book providers you will need
<tt>ruby-zoom</tt>[http://ruby-zoom.rubyforge.org], which in turn
requires the non-Ruby package +yaz+[http://www.indexdata.dk/yaz].

Note that if you install the recent Ruby/ZOOM as the +zoom+ gem, you
will also need to install the +marc+ gem. (Older implementations of
ruby-zoom contained their own implementation of MARC.)

The Z39.50 Object-Orientation Model (ZOOM) is an international
standard for communication between computer systems, particularly
libraries and information-related systems.

=== htmlentities

This is used by the <b>DeaStore</b> provider; DeaStore will not be
available without it. In the future, all web-based providers will
probably use +htmlentities+[http://htmlentities.rubyforge.org/] to
provide more flexible HTML parsing.

=== image_size

You will need
<tt>image_size</tt>[http://rubyforge.org/projects/imagesize/] for
optimizing the cover images in exported libraries.

=== Revolution

If you want to auto-complete the names of people you loan books to
from your Evolution contacts database, you can install
+revolution+[ http://revolution.rubyforge.org/].

== Build and Install

To build Alexandria from a subversion checkout, go to the base project
directory (where the Rakefile and this INSTALL file are located) and
issue the command
    rake build
If you have downloaded a source package, this step will not usually be
necessary.

You must have root priveledges to install, so use +su+
    su -c 'rake install'
or +sudo+
    sudo rake install

You can generate a .deb file using
    rake debian:deb
You can install the deb using dpkg. 

Now you can check the version of the installed Alexandria
    alexandria --version

To launch Alexandria, simply use
    alexandria

If you wish to see more output on the console, you can use
    alexandria --debug
