Difference between revisions of "Installing EPrints on Debian/Ubuntu"

From EPrints Documentation
Jump to: navigation, search
m (Requirements)
(Requirements: user adduser rather than useradd)
 
(54 intermediate revisions by 5 users not shown)
Line 3: Line 3:
  
 
== Requirements ==
 
== Requirements ==
* Ubuntu 18.04 LTS or 20.04 LTS (non-LTS versions not recommended)  
+
* Ubuntu 22.04 LTS and Ubuntu 24.04 LTS (non-LTS versions not recommended)
** Debian 9 (Stretch) or 10 (Buster) but these are not as comprehensively tested.
+
* Debian 11 (Bullseye) or Debian 12 (Bookworm) - These are not as comprehensively tested as Ubuntu LTS versions.
** Ubuntu 22.04 LTS and Debian 11 (Bullseye) currently under testing.
 
  
== Installing from DEB ==
+
=== Dependencies and Pre-configuration ===
<ol><li>As the root user create a file at <code>/etc/apt/sources.list.d/eprints.list</code> containing</li>
+
'''The ideal way to install from source is via git using the Core Git repositories [https://github.com/eprints/eprints3.4 EPrints 3.4] or [https://github.com/eprints/eprints EPrints 3.3], and installing from a source tarball is generally discouraged.'''
<!--- http://deb.eprints.org/stable is the location of the 3.3 branch ... -->
 
deb http://deb.eprints.org/3.4/stable/ ./
 
<li>Ensure ''gnupg'' package is installed to allow APT keys to added, again as the root user</li>
 
apt-get install gnupg
 
<li>To allow the installation of EPrints and all its dependencies execute the following commands, again as the root user</li>
 
wget -O - http://deb.eprints.org/keyFile | apt-key add -
 
apt-get update
 
<li>Select the appropriate current [http://files.eprints.org/view/type/release.html release] depending on output of</li>
 
apt-cache show eprints
 
<li>Finally install the selected version, e.g.</li>
 
apt-get install eprints=3.4.3
 
</ol>
 
EPrints ''3.3'' will be installed to <code>/usr/share/eprints3/</code>. EPrints ''3.4'' will be installed to <code>/usr/share/eprints/</code>.
 
  
However, '''you will not yet have a running archive'''.  Follow the [[Getting Started with EPrints 3]] instructions to set this up.
+
'''Installing from source via git is now the recommended  way to install EPrints for production repositories, after having proved to be a useful installation method to those seeking to develop the EPrints code, develop a plugin or develop a Bazaar package too.'''
  
Below are some [[Installing_EPrints_3_via_apt_(Debian/Ubuntu)#Operating_System_Version_Specific_Requirements | caveats for particular versions of Debian and Ubuntu]].
+
First, as the root user install all the dependencies for EPrints ('''N.B.''' Some dependencies may not be able in certain versions of Debian/Ubuntu.  See [[#Operating System Version Specific Requirements|Operating System Version Specific Requirements]] towards the end of this page):
  
=== Installing publications flavour ===
+
apt install perl libncurses5 libselinux1 apache2 libapache2-mod-perl2 libxml-libxml-perl \
EPrints 3.4 DEBs only come with the in-built 'zero' flavour and not the typical publications flavour.  Before trying to set up you archive you will need to (as the eprints user) download the latest publications flavour tarball from https://files.eprints.org/ and unpack it into /usr/share/eprints/:
+
  libunicode-string-perl libterm-readkey-perl libmime-lite-perl libmime-types-perl libdigest-sha-perl \
wget https://files.eprints.org/2551/8/eprints-3.4.3-flavours.tar.gz
+
  libdbd-mysql-perl libxml-parser-perl libxml2-dev libxml-twig-perl libarchive-any-perl libjson-perl \
tar -xzvf eprints-3.4.3-flavours.tar.gz -C /usr/share/eprints/
+
  liblwp-protocol-https-perl libtext-unidecode-perl lynx wget ghostscript poppler-utils antiword elinks \
mv /usr/share/eprints/eprints-3.4.3/flavours /usr/share/eprints/
+
  texlive-base texlive-binaries psutils imagemagick adduser tar gzip unzip libsearch-xapian-perl \
rmdir /usr/share/eprints/eprints-3.4.3/
+
  libtex-encode-perl libio-string-perl python3-html2text make libexpat1-dev libxslt1-dev
  
== Installing EPrints from Source ==
+
If you are installing on Ubuntu, install MySQL server and client:
  
=== Dependencies and Pre-configuration ===
+
  apt install mysql-server mysql-client libmysqlclient-dev
'''N.B. Installing from a source tarball is generally discouraged particularly for production repositories.  However, if you want to develop the EPrints code or a plugin or Bazaar package it may be useful to install from source, ideally from [https://github.com/eprints/eprints EPrints 3.3] or [https://github.com/eprints/eprints3.4 EPrints 3.4] Core Git repositories.'''
 
  
First, as the root user install all the dependencies for EPrints:
+
If you are installing on Debian, install MariaDB server and client:
  
apt-get install perl libncurses5 libselinux1 libsepol1 apache2 libapache2-mod-perl2 libxml-libxml-perl \
+
  apt install mariadb-server mariadb-client libmariadb-dev
  libunicode-string-perl libterm-readkey-perl libmime-lite-perl libmime-types-perl libdigest-sha-perl \
 
  libdbd-mysql-perl libxml-parser-perl libxml2-dev libxml-twig-perl libarchive-any-perl libjson-perl \
 
  liblwp-protocol-https-perl libtext-unidecode-perl lynx wget ghostscript antiword elinks texlive-base \
 
  texlive-base-bin psutils imagemagick adduser tar gzip mysql-server mysql-client unzip \
 
  libsearch-xapian-perl libtex-encode-perl libio-string-perl libdbd-mysql-perl
 
  
 
Next, create the eprints user
 
Next, create the eprints user
Line 52: Line 32:
 
  adduser eprints
 
  adduser eprints
  
Now, update Apache configuration to set it up to use the eprints user and group, by ensuring the following lines are set thus in <code>/etc/apache2/envvars</code>:
+
Now add the eprints user to the www-data group and vice-versa
  
  export APACHE_RUN_USER=eprints
+
  usermod -a -G eprints www-data
  export APACHE_RUN_GROUP=eprints
+
  usermod -a -G www-data eprints
  
 
=== Downloading and Deploying EPrints Source ===
 
=== Downloading and Deploying EPrints Source ===
==== EPrints 3.3.x for GitHub ====
 
 
apt-get install git
 
git clone https://github.com/eprints/eprints.git /usr/share/eprints
 
cd /usr/share/eprints
 
git checkout tags/v3.3.16
 
chown -R eprints:eprints .
 
  
 
==== EPrints 3.4.x for GitHub ====
 
==== EPrints 3.4.x for GitHub ====
  
  apt-get install git
+
  apt install git
  git clone https://github.com/eprints/eprints3.4.git /usr/share/eprints
+
mkdir /opt/eprints3
  cd /usr/share/eprints
+
chown eprints:eprints /opt/eprints3
  git checkout tags/v3.4.3
+
chmod 2775 /opt/eprints3
chown -R eprints:eprints .
+
su eprints
 +
  git clone https://github.com/eprints/eprints3.4.git /opt/eprints3
 +
  cd /opt/eprints3/
 +
  git checkout tags/v3.4.6
  
 
==== EPrints 3.4.x from files.eprints.org ====
 
==== EPrints 3.4.x from files.eprints.org ====
  
 
  cd /tmp/
 
  cd /tmp/
  wget https://files.eprints.org/2551/7/eprints-3.4.3.tar.gz
+
  wget https://files.eprints.org/3097/5/eprints-3.4.6.tar.gz
  tar -xzvf eprints-3.4.3.tar.gz
+
  tar -xzvf eprints-3.4.6.tar.gz
  
 
Then put in the source code in place:
 
Then put in the source code in place:
  
  mv eprints-3.4.3 /usr/share/eprints
+
  mv eprints-3.4.6 /opt/eprints3
  chmod 2775 /usr/share/eprints
+
  chmod 2775 /opt/eprints3
  chown -R eprints:eprints /usr/share/eprints
+
  chown -R eprints:eprints /opt/eprints3
  
 
If you want a publications flavoured repository, then also:
 
If you want a publications flavoured repository, then also:
  
  wget https://files.eprints.org/2551/8/eprints-3.4.3-flavours.tar.gz
+
  wget https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz
  tar -xzvf eprints-3.4.3-flavours.tar.gz
+
  tar -xzvf eprints-3.4.6-flavours.tar.gz
  mv eprints-3.4.3/flavours/pub_lib /usr/share/eprints/flavours
+
  mv eprints-3.4.6/flavours/pub_lib /opt/eprints3/flavours
  chmod -R g+w /usr/share/eprints/flavours/pub_lib
+
  chmod -R g+w /opt/eprints3/flavours/pub_lib
  chown -R eprints:eprints /usr/share/eprints/flavours/pub_lib
+
  chown -R eprints:eprints /opt/eprints3/flavours/pub_lib
  
=== Configuration ===
+
== Configuration ==
Next, as the eprints user copy <code>EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm.tmpl</code> to <code>EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm</code>
+
Next, as the eprints user copy <code>EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm.tmpl</code> to <code>EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm</code>, if it does not already exist.
  
<code>EPRINTS_PATH</code> will be either <code>/usr/share/eprints3/</code> or <code>/usr/share/eprints</code> depending on which instructions you followed above.
+
<code>EPRINTS_PATH</code> should now always be <code>/opt/eprints3</code>.  However, historically other paths have been used when EPrints was available as a Deb package.
  
 
EPrints is now fully installed at <code>EPRINTS_PATH/</code>. However, you will not yet have a running archive. Follow the [[Getting Started with EPrints 3]] instructions to set this up.
 
EPrints is now fully installed at <code>EPRINTS_PATH/</code>. However, you will not yet have a running archive. Follow the [[Getting Started with EPrints 3]] instructions to set this up.
Line 108: Line 84:
 
To enable this as root run the command:
 
To enable this as root run the command:
  
  a2ensite eprints
+
  root> a2ensite eprints
  
 
Also it may be necessary to disable the default site otherwise the default Apache page will still be shown:
 
Also it may be necessary to disable the default site otherwise the default Apache page will still be shown:
Line 119: Line 95:
  
 
You should now be able to access your vanilla repository at the hostname you specified when running '''epadmin create''' from the [[Getting Started with EPrints 3]] instructions.  You should then login as the admin user you created during this process and turn on the indexer.  This can be done by clicking on the '''Admin''' link under the Logged in menu, then clicking on the '''System Tools''' tab and finally the '''Start Indexer''' button.
 
You should now be able to access your vanilla repository at the hostname you specified when running '''epadmin create''' from the [[Getting Started with EPrints 3]] instructions.  You should then login as the admin user you created during this process and turn on the indexer.  This can be done by clicking on the '''Admin''' link under the Logged in menu, then clicking on the '''System Tools''' tab and finally the '''Start Indexer''' button.
 
=== Useful commands for source development and testing ===
 
The following commands may be useful for those developing or testing EPrints by are not necessary for installing EPrints.
 
==== Install EPrints build dependencies ====
 
apt-get build-dep eprints
 
==== Get EPrints source ====
 
apt-get source eprints
 
==== Rebuilding ====
 
To change the way the eprints builds you can edit the debian/rules file (the only line you will want is the configure one). Once done you can then type <code>dpkg-buildpackage -rfakeroot</code> from the root dir of the extracted tarball.
 
 
This will build you a .deb in the directory above your current location, which can then be installed usinging dpkg:
 
dpkg -i ../eprints-X.X.X_all.deb
 
 
Alternatively you can configure and install it yourself (a non debian specific version) by configuring manually and then running install.pl:
 
$ ./configure --with-smtp-server=smtp.yourdomain
 
$ sudo ./install.pl
 
  
 
== Operating System Version Specific Requirements ==
 
== Operating System Version Specific Requirements ==
  
=== Ubuntu 18.04 LTS ===
+
=== Ubuntu 22.04 LTS ===
{{:Issues with Installing EPrints on Ubuntu 18.04}}
+
{{:Issues with Installing EPrints on Ubuntu 22.04}}
  
=== Ubuntu 20.04 LTS ===
+
=== Ubuntu 24.04 LTS ===
{{:Issues with Installing EPrints on Ubuntu 20.04}}
+
{{:Issues with Installing EPrints on Ubuntu 24.04}}
  
 
=== Debian Known Issues ===
 
=== Debian Known Issues ===
 
See [[Debian Known Issues]]
 
See [[Debian Known Issues]]

Latest revision as of 11:06, 29 August 2025


Requirements

  • Ubuntu 22.04 LTS and Ubuntu 24.04 LTS (non-LTS versions not recommended)
  • Debian 11 (Bullseye) or Debian 12 (Bookworm) - These are not as comprehensively tested as Ubuntu LTS versions.

Dependencies and Pre-configuration

The ideal way to install from source is via git using the Core Git repositories EPrints 3.4 or EPrints 3.3, and installing from a source tarball is generally discouraged.

Installing from source via git is now the recommended way to install EPrints for production repositories, after having proved to be a useful installation method to those seeking to develop the EPrints code, develop a plugin or develop a Bazaar package too.

First, as the root user install all the dependencies for EPrints (N.B. Some dependencies may not be able in certain versions of Debian/Ubuntu. See Operating System Version Specific Requirements towards the end of this page):

apt install perl libncurses5 libselinux1 apache2 libapache2-mod-perl2 libxml-libxml-perl \
  libunicode-string-perl libterm-readkey-perl libmime-lite-perl libmime-types-perl libdigest-sha-perl \
  libdbd-mysql-perl libxml-parser-perl libxml2-dev libxml-twig-perl libarchive-any-perl libjson-perl \
  liblwp-protocol-https-perl libtext-unidecode-perl lynx wget ghostscript poppler-utils antiword elinks \
  texlive-base texlive-binaries psutils imagemagick adduser tar gzip unzip libsearch-xapian-perl \
  libtex-encode-perl libio-string-perl python3-html2text make libexpat1-dev libxslt1-dev

If you are installing on Ubuntu, install MySQL server and client:

 apt install mysql-server mysql-client libmysqlclient-dev

If you are installing on Debian, install MariaDB server and client:

 apt install mariadb-server mariadb-client libmariadb-dev

Next, create the eprints user

adduser eprints

Now add the eprints user to the www-data group and vice-versa

usermod -a -G eprints www-data
usermod -a -G www-data eprints

Downloading and Deploying EPrints Source

EPrints 3.4.x for GitHub

apt install git
mkdir /opt/eprints3
chown eprints:eprints /opt/eprints3
chmod 2775 /opt/eprints3
su eprints
git clone https://github.com/eprints/eprints3.4.git /opt/eprints3
cd /opt/eprints3/
git checkout tags/v3.4.6

EPrints 3.4.x from files.eprints.org

cd /tmp/
wget https://files.eprints.org/3097/5/eprints-3.4.6.tar.gz
tar -xzvf eprints-3.4.6.tar.gz

Then put in the source code in place:

mv eprints-3.4.6 /opt/eprints3
chmod 2775 /opt/eprints3
chown -R eprints:eprints /opt/eprints3

If you want a publications flavoured repository, then also:

wget https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz
tar -xzvf eprints-3.4.6-flavours.tar.gz
mv eprints-3.4.6/flavours/pub_lib /opt/eprints3/flavours
chmod -R g+w /opt/eprints3/flavours/pub_lib
chown -R eprints:eprints /opt/eprints3/flavours/pub_lib

Configuration

Next, as the eprints user copy EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm.tmpl to EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm, if it does not already exist.

EPRINTS_PATH should now always be /opt/eprints3. However, historically other paths have been used when EPrints was available as a Deb package.

EPrints is now fully installed at EPRINTS_PATH/. However, you will not yet have a running archive. Follow the Getting Started with EPrints 3 instructions to set this up.

Post-configuration

Next, add the file /etc/apache2/sites-available/eprints.conf with the following line:

Include EPRINTS_PATH/cfg/apache.conf

To enable this as root run the command:

root> a2ensite eprints

Also it may be necessary to disable the default site otherwise the default Apache page will still be shown:

a2dissite 000-default

Finally, restart Apache:

service apache2 restart

You should now be able to access your vanilla repository at the hostname you specified when running epadmin create from the Getting Started with EPrints 3 instructions. You should then login as the admin user you created during this process and turn on the indexer. This can be done by clicking on the Admin link under the Logged in menu, then clicking on the System Tools tab and finally the Start Indexer button.

Operating System Version Specific Requirements

Ubuntu 22.04 LTS

N.B. It is assumed that you are installing the latest version of 3.4. Earlier versions may have issues not listed here.

MySQL root user cannot be used

On Ubuntu 22.04 LTS rather than prompting you to set a password for MySQL server when installing this as a dependency, it just installs it without. However, this means on the root user can login to MySQL to add a database. As "epadmin create" runs at the eprints user, this will not be able to create a database for EPrints. The get round this as the root user connect to MySQL (just type "mysql" at the command line) and type the following two commands. You will want to set your own password (i.e. not 'changeme') , you may also want to restrict which databases the eprints user has control over. If you know the "Archive ID" you are going to use.

CREATE USER 'eprints'@'localhost' IDENTIFIED by 'changeme';
GRANT ALL PRIVILEGES ON *.* TO 'eprints'@'localhost' WITH GRANT OPTION;

Previous issues

libsepol1 Deb package no longer exists 
This has been removed as a dependency on 29th May 2022, as it is not specifically required by EPrints.
MySQL root user cannot be used 
This is now explained under EPrints' Getting Started instructions. as it is typical for most modern Linux operating systems.

Ubuntu 24.04 LTS

N.B. It is assumed that you are installing the latest version of 3.4. Earlier versions may have issues not listed here.

libncurses5 no longer available

libncurses5 APT package dependency no longer exists in Ubuntu 24.04 LTS, install libncurses6 instead.

Previous Issues

MySQL root user cannot be used 
This is now explained under EPrints' Getting Started instructions. as it is typical for most modern Linux operating systems.

Debian Known Issues

See Debian Known Issues