Difference between revisions of "Issues with Installing EPrints on Ubuntu 20.04"

From EPrints Documentation
Jump to: navigation, search
m
(Added issue with change to mysql grant syntax.)
Line 15: Line 15:
 
  CREATE USER 'eprints'@'localhost' IDENTIFIED by 'changeme';
 
  CREATE USER 'eprints'@'localhost' IDENTIFIED by 'changeme';
 
  GRANT ALL PRIVILEGES ON *.* TO 'eprints'@'localhost' WITH GRANT OPTION;
 
  GRANT ALL PRIVILEGES ON *.* TO 'eprints'@'localhost' WITH GRANT OPTION;
 +
 +
==== MySQL deprecated syntax ====
 +
MySQL no longer supports creating a user as part of the GRANT PRIVILEGES command, which causes problems with EPrints if below version 3.4.2.  Therefore, perl_lib/EPrints/Database/mysql.pm needs to be patched.  This can be done by using the [https://raw.githubusercontent.com/eprints/eprints3.4/master/perl_lib/EPrints/Database/mysql.pm latest version of mysql.pm on GitHub] if the Eprints version being installed is under 3.4.2.

Revision as of 11:46, 19 May 2020

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

xpdf package no longer exists

The Deb package xpdf is no longer available in Ubuntu 20.04. xpdf is probably no longer needed so if installing from source use the following APT command line:

apt-get install perl libncurses5 libselinux1 libsepol1 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 xpdf antiword elinks \ 
 texlive-base texlive-base-bin psutils imagemagick adduser tar gzip mysql-server mysql-client unzip \
 libsearch-xapian-perl libtex-encode-perl

MySQL root user cannot be used

On Ubuntu 18.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;

MySQL deprecated syntax

MySQL no longer supports creating a user as part of the GRANT PRIVILEGES command, which causes problems with EPrints if below version 3.4.2. Therefore, perl_lib/EPrints/Database/mysql.pm needs to be patched. This can be done by using the latest version of mysql.pm on GitHub if the Eprints version being installed is under 3.4.2.