- 1 What Additional Software does EPrints Require?
- 2 MySQL
- 3 Apache/mod_perl
- 4 Perl 5.6 and Perl Modules
- 5 Optional GDOME support
- 6 Other Tools
What Additional Software does EPrints Require?
In brief, EPrints requires Apache (with mod_perl), MySQL and Perl with some extra modules. Ideally you also want wget, tar and unzip.
EPrints bundles some perl modules which it uses, to save you installing them.
Where to get the Required Software
It's up to you. We have had best results with installing MySQL from RPM and apache from source.
The best place to get a software tool is the official site, but we've put a mirror of versions known to work at: http://www.eprints.org/files/tools/ - you don't need to install everything in the tools directory - just those described below.
Tested on: 3.23.29a-gamma
Install a recent version of MySQL 3. You will need the .h and library files later to install the MySQL perl module. MySQL 4 is due soon, but we are not making plans to support it yet (if you try EPrints with MySQL 4 and it works, please let us know)
If installing from RPM you require: mysql-server, mysql-devel and mysql RPMs.
Tested on: apache 1.3.14 with mod_perl 1.25
Apache is the most commonly used webserver in the world, and it's free! EPrints requires Apache to be configured with mod_perl, as this allows Apache modules that are entirely written in perl, hence providing much improved efficiency.
Get Apache from http://httpd.apache.org/dist/httpd/
EPrints requires that the apache module mod_perl is enabled.
Apache with mod_perl Installation - Step by Step
- Download mod_perl and apache sources
- ; Make mod_perl, I use this command (in the modperl src dir): :
% perl Makefile.PL APACHE_PREFIX=/usr/local/apache \ APACHE_SRC=../apache-1.3.14/src DO_HTTPD=1 USE_APACI=1 \ EVERYTHING=1
Remeber to change ../apache-1.3.14/src to wherever your apache source is relative to this directory. The back slashes at the end of the line allow a single command to be split over multiple lines.
- Make and install apache. From the mod_perl src dir, I use
% make % make install
( mod perl should have already run the apache ./configure script for us. )
Perl 5.6 and Perl Modules
EPrints is currently begin developed with perl 5.6.1, there are currently no plans for to make EPrints run under perl 6 on the theory of if-it-ain't-broke-don't-fix-it.
Some perl modules are bundled with the EPrints2 package, others must be installed by you.
Installing a Perl Module
This describes the way to simple perl module, some require a bit more effort. We will use the non-existant FOO module as an example.
Some archives can be installed direct from CPAN. That's great when it works. It doesn't always work, but it's the quickest and easiest, so give it a go first. To install a perl module from CPAN run:
% perl -MCPAN -e 'install Foo::Bar'
Where Foo::Bar is the module you're installing.
I would like to make a list of which modules do/don't install OK from CPAN. If you're reading this before the end of Jan 2003, send me (Christopher Gutteridge) any comments on which ones worked, and on what operating system.
- Download the archive.
- Either from cpan.org, or from the tools directory on eprints.org described at the top of this chapter. Our example archive is FOO-5.23.tar.gz.
- Unpack the archive
% gunzip FOO-5.23.tar.gz % tar xf FOO-5.23.tar
- Enter the directory this creates
% cd FOO-5.23
- Run the following commands
% perl Makefile.PL % make % make test % make install
Perl Modules Bundled with EPrints
You don't have to install these. They are included as part of the EPrints distribution.
XML::DOM, XML::RegExp, Filesys::DiskSpace, URI, Apache::AuthDBI, Unicode::Normalize, Proc::Reliable.
Please note that these modules are not part of the EPrints system and are only included to make things easier. Please note that XML::DOM has has a few lines commented out to prevent it requiring additional modules.
Required Perl Modules (Which you will probably have to install)
This modules are not built into EPrints - you must install them yourself. We recommend installing them in the order they are listed.
- MySQL Interface Module requires this.
- Tested with: v1.14
MySQL Interface Module requires this.
- Msql-Mysql Module
- Tested with: v1.2215
This one can be tricky. It requires access to .h and library files from MySQL. I install MySQL from source first, but some installs of MySQL don't put the lib and include dirs where this module expects. The answer to the first question is that you only need MySQL support. Under Red Hat's GNU/Linux distribution, the zlib-devel RPM should be installed before you install this module.
- Tested with: v2.11
Unicode::String requires this.
- Used for Unicode support. No known problems. Tested with v2.06.
- Tested with v2.30
Used to parse XML files. Requres the expat library. A .tar.gz and an RPM are available in the tools dir on eprints.org.
- The perl Apache.pm module is acutally part of mod_perl - installing mod_perl as part of Apache should also have installed the perl Apache module.
Since version 2.3.7 The modules "Apache::Request" and "Apache::Test" (aka. "libapreq") are no longer required. They were a pain to install and the software has been redesigned to not use them at all.
Required Perl Modules (Which you will probably already have)
Most PERL 5.6 or later systems should already include the following modules, but you may have to install some by hand on certain platforms.
CGI, Carp, Cwd, Data::Dumper, Digest::MD5, File::Basename, File::Copy, File::Find, File::Path, Getopt::Long, Pod::Usage, Sys::Hostname.
Optional GDOME support
Since EPrints 2.2 you may use either XML::DOM or XML::GDOME. XML::GDOME is recommended as it's faster and uses much less RAM, but it does require you to install a whole lot of extra libraries and perl modules. If you are running a pilot or demonstration service then XML::DOM is fine, and you can always switch over later by installing the required tools and setting the GDOME flag in perl_lib/EPrints/SystemSettings.pm
Addional Libraries Required for GDOME support
either get the tarball from: ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/
or the RPMs (but we have had problems with complex RPM dependencies):
The GDOME Library
Obtain this from
You may either use the RPMs (gdome2 and gdome2-devel) or the tarball.
Additional Perl Modules Required for GDOME support
XML-LibXML-Common XML-NamespaceSupport XML-GDOME
All of which are in http://www.cpan.org/modules/by-module/XML/
wget, tar, gunzip and unzip are required to allow users to upload files as .tar.gz or .zip or to captures them from a URL.
These all come installed with most modern versions of linux. If you can get them working, you can remove the option by edditing "archive_formats" in SystemSettings.pm
Tested with wget 1.6.
If there are problems you may need to tweak how these are invoked in SystemSettings.pm
Full Text Indexing
The full text indexer requires various tools to index each kind of document. These tools may or may not be already installed in your system. EPrints uses these tools to build a "words" file for each document (which contains the text of the document in UTF-8). If it can't run the tool, the "words" file will be empty and EPrints will not retry creating it unless you manually remove it.
- To index pdfs you need "pdftotext" which is part of the "xpdf" package. RPM's are available.
- To index ASCII files you don't need anything. That's easy.
- Microsoft Word
- To index MS Word files you need a package called "wvware". It can be a bit of a bit of a pain to install.
- To index HTML files you need a tool called "lynx". It's a text-based web-browser.
There is an optional feature which allows you to set eprints to look in certain fields (eg. title and abstract) for stuff which looks like latex equations and display it as an image of that equation instead. These tools are only required if you want to use this feature.
latex, dvips and convert (convert is part of "imagemagick"). (These all ship with Red Hat's GNU/Linux distribution but you may have to install them yourself on other systems.)
This is a "cosmetic" feature, it only affects the rendering of information, so you can always add it later if you want to save time initially.