Installing EPrints on RHEL/Fedora/CentOS

From EPrints Documentation
Revision as of 10:34, 1 September 2017 by (talk | contribs)
Jump to: navigation, search


  • RedHat Enterprise (RHEL) / CentOS 7 or Fedora 25+ (earlier versions may work)

Installing from EPrints 3.3.x RPM

Add the repository key:

rpm -ivh

... the EPrints repository:

rpm -ivh

Upgrade your XML libraries:

yum upgrade libxml2 libxslt perl-XML-LibXML perl-XML-LibXSLT

Install EPrints 3:

yum install eprints 

Other sources for dependencies

The following RPM repositories may be useful for finding other non-critical dependencies required by EPrints that are not part of the core RHEL system. - Fedora Extras for RHEL. - RPMforge, which covers a very large range of Perl modules plus others.

ImageMagick provide an RPM for RHEL/CentOS 5. At time of writing the RPM requires fftw3, fltk, jasper and openexr which are available from RPMForge. libwebp is available from

you may also need to tell SELinux to allow apache to talk on the network (maybe only if your database is on a separate server

setsebool -P httpd_can_network_connect=1

Installing EPrints 3.3.x from Source

N.B. Installing from source is generally discouraged particularly for production repositories. However, if want to develop the EPrints code or a plugin or Bazaar package it may be useful to install from source, ideally from EPrints Core Git repository.



Failed to parse XML file

When installing EPrints on RHEL6 (may apply to other versions), If you get the error:

Failed to parse XML file:
/usr/share/eprints/lib/lang/en/phrases/system.xml: Entity: line 396: parser error : Entity 'nbsp' not defined age or title page. If there are more...


sed -i 's/ / /g' /usr/share/eprints/lib/lang/en/phrases/system.xml

then navigate to the root of your EPrints install (/opt/eprints or /usr/share/eprints) and run

bin/generate_views *repository_id*
bin/epadmin reload *repository_id*

Upgrade from previous 3.3

After a upgrading from previous 3.3, your existing repository's database may need updating.

bin/epadmin update [archive_id]

Using SELinux

If you're using SELinux on your server you will need to give Apache read/write access to the documents directory for all repositories you create and the eprints var folder (indexer log, ticker files):

chcon -R -h -t httpd_sys_script_rw_t /usr/share/eprints/archives/[repoid]/documents/
chcon -R -h -t httpd_sys_script_rw_t /usr/share/eprints/var/