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

From EPrints Documentation
Jump to: navigation, search
(Added instruction about mysql)
(Removed old issue put caveat about using latest version)
Line 1: Line 1:
==== epadmin script errors with Perl version ====
+
'''N.B.  It is assumed that you are installing the latest version of 3.4 (currently 3.4.1)Earlier version may have issues not listed here.'''
When trying to run epadmin you will may see a couple of error messages that prevents you from creating an archive, especially if you are using the 3.4.0 tarball from files.eprints.org:
+
 
+
  Experimental keys on scalar is now forbidden at EPRINTS_PATH/bin/epadmin line 384
+
 
+
To fix this add the following line at the top of the epadmin file just after the ''use'' lines:
+
 
+
no if $] >= 5.017011, warnings => 'experimental::smartmatch';
+
 
+
A second error message you may see is:
+
 
+
Type of arg 1 to keys must be hash or array (not single ref constructor) at /usr/share/eprints/bin/epadmin line 384, near "};"
+
 
+
Go to the line number reported and change it to:
+
 
+
my @flavours = keys %{$conf->{flavours}};
+
 
+
You should now be able to run "epadmin create" without issue.
+
 
+
  
 
==== MySQL root user cannot be used ====
 
==== MySQL root user cannot be used ====

Revision as of 16:16, 5 April 2019

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

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;