NOTE: if you just want to try out LORLS, why not try our virtual machine image?  This is based on CentOS Linux and is “ready to run” so may be quicker for many people than doing the full installation listed below.


You will require a server with:

  • Linux
  • a web server (e.g. Apache)
  • MySQL
  • Perl

To build some of the required Perl modules you will need

  • gcc (to build them)
  • libyaz (standard library + development library)


Making the required directories and setting the permissions

assuming you are wanting to use the standard install locations for LORLS you will need to make the following directories and make sure that the web server can write to them (After installation the write permission for the web server can be removed.)

  • /usr/local/LUMP
  • /usr/local/LUMP/bin
  • /var/www/html/CLUMP
  • /var/www/cgi-bin/CLUMP

If your Linux distribution uses different directories as standard for html and cgi-bin, then you can use them, just make a note of what the new paths are, the installer will give you chance to alter where it is going to install things.

Getting the installer

To install LORLS v7 copy the installer to your servers cgi-bin directory and make sure it is executable by the web server.  Then point your web browser to http://<YourServer>/cgi-bin/LUMPInstaller

Selecting the packages to install

The first question the installer asks is what you want to install.  The options are LUMP, CLUMP or ALL.  If you select LUMP then it will install the back end of the system.  If you select CLUMP then it will install the front end of the system. If you select ALL then it will install both the front and back end of the system.

Installing missing Perl modules

After selecting which parts of LORLS you want to install the installer will present you with a list of missing Perl modules and give you the option of installing them yourself or letting the installer attempt to install them for you.  If you install them yourself (our recommended method) then they will most likely be available for everyone on the machine.  If they are installed by the installer then they will only be available to LORLS.

If you choose to let the installer install the missing Perl modules then next question the installer asks is where to install the modules to.  This directory will need to be accessible to the web server (read, write and execute).

Important Note: If possible it is better to install the Perl modules manually as sometimes the installer can’t install all the required modules. Also if a module is available as part of your Linux distribution then it is generally better to use that one rather than building your own from CPAN.

Database Details

If installing LUMP then after all the required modules are available the installer will ask for the database details.  The required database details are

  • The name of the database
  • the database user
  • the database password

You don’t have to create the database, if it and the user doesn’t exist when you click on submit the installer will ask for the password for the root database account.  Once you have given this it will create the database and user with the details that you previously supplied and with the correct permissions for accessing the database.

Populate Database

If installing LUMP after creating the database you are offered the option to either install test data into the database or to skip installing the test data.  If you want to import an existing LORLS v6 database then skip installing the data.  If you are starting from scratch or just playing with the system then we recommend installing the test data.

Code Installation Details

The next stage is to install the code for LORLS v7. The installer will ask for the following information

Note: If any directory doesn’t already exist the installer will try to create them.  Of course if the user that your CGI scripts are running under doesn’t have rights to make such directories this will fail and you’ll have to create the directories and make them writable to that user by hand.

  • LUMP Backend API Code
    LUMP Library Directory
    This is the directory that LUMP will install the majority of its code base (the web server needs to have read, write and execute permissions to this directory).
    LUMP Backend Binaries Directory
    This is the directory that stores backend tools (again the web server needs to have read, write and execute permissions).
    LUMP CGI Directory
    This is the directory that LUMP will install its CGI scripts in.
    LUMP CGI Path
    This is the URL path to the CGI directory for LUMP.
    This is the base part of the URL pointing at CLUMP.  Assuming you’re installing them on the same server and putting CLUMP in the HTML document root, this will be /CLUMP
    Kerberos Realm
    This is the Kerberos realm to use for AD authentication.
    Changes Script Target Email
    An email address to send librarians change information to from the backend changes script.
    Email address LUMP script send from
    An email address that is set as the “From” address for emails that the LUMP code generates. This may be a “no-reply” type address or maybe the general library enquires email address.
    URL of LMS script to get ISBN mappings
    If your Library Management System (for example Aleph) has a CGI script that allows you to get mappings of different ISBNs (ie FRBRization), put this in here.
    URL of LMS script to get loan transactions
    If your Library Management System has a CGI script that allows you to look up loan transactions for a work, put the URL for this script in here.  This is used by the academics’ dashboard to show how works on reading lists are being borrowed by students.
  • CLUMP AJAX Client Code
    LUMP Installation Base URL
    The base path of the URL to LUMP’s API.
    CLUMP CGI Directory
    The directory that the CLUMP CGI scripts are installed in.
    CLUMP CGI Scripts Base URL
    The base path of the URL to CLUMP’s CGI scripts.
    CLUMP HTML Directory
    The directory that CLUMP’s html, JavaScript, images, etc. are to be installed in.
    The base path of the URL to CLUMP’s html, JavaScript, images, etc.
    Library Feedback Email
    Email address for feedback/comments/etc from users to be sent to.
    Library Management System Name
    The name of the Library Management System (LMS) that you use.
    Library Management System Host
    The fully qualified domain name of your LMS server.
    Library Management System Z3950 Port
    The port number for your LMS’s Z3950 service.
    Library Management System Z3950 Database
    The database to use with your LMS’s Z3950 service.
    Library Management System Lookups
    If on CLUMP will look at your LMS to see if an item is owned by the Library and its current loan status.
    OpenURL Resolver Base URL
    The base URL of your OpenURL Resolver
    Library Ex-Libris X Server Base URL
    The base URL to your X-Server (Leave blank if you don’t have one)
    Library Ex-Libris X Server Username
    The username to use when accessing the X-Server.
    Library Ex-Libris X Server Password
    The password to use when accessing the X-Server.
    Library Ex-Libris X Server Bibliographic Library
    The bibliographic library to be used with the X-Server.
    Library Ex-Libris X Server Library
    The library to be used with the X-Server.
    Library Ex-Libris X Server Admin Library
    The admin library to be used with the X-Server.
    Use Google Books Thumbnail/Previews
    If set to On then the google books will be used to supply thumbnails and previews of books.
    Local Control Number Length
    How long your local control numbers are (assuming that you have local control numbers)
    Local Control Number Prefix
    The prefix that you have at the start of local control numbers (if any).
    User friend name for emails
    The human readable name (not email address) that emails from the reading list system should use.
    OPAC User Agent (can be used for OPAC Kiosks)
    The user agent that is used in web based OPAC kiosks.  This is used to allow the reading list system to be integrated into a such a kiosk.  If you don’t have OPAC kiosks, don’t worry about this parameter (just use the default).
  • Installation Source
    LUMP Source URL
    Don’t change this unless you know what you are doing.  This is where the installer will pull it’s files from.

If you see the Code Installation Details form again after clicking on submit then there is something wrong.  Go and look in the error logs for your web server to get some hints (Usually it is a directory that your web server doesn’t have the correct permissions to write to.)

Migrate data from LORLS v5

If you have an existing LORLS v5 installation then you may want to migrate your data from the old v5 system to a new v7 install.

Start playing

Point your browser to http://<yourServer>/CLUMP/

Additional Steps if you want to customize your installation


Here’s how to fix common errors you may see in your Apache logs

Can’t use ‘defined(@array)’ (Maybe you should just omit the defined()?)
run the following sed command against and

sed -i -e's|if(defined(@{$self->{_CACHE}->{$sql}})) {|if(@{$self->{_CACHE}->{$sql} // []}) {|' /usr/local/LUMP/ /usr/local/LUMP/
DBD::mysql::st execute failed: Data truncated for column ‘state’
You’ll get this error if you’ve got your MySQL/MariaDB sql_mode set to include the STRICT_TRANS_TABLES mode. To fix the issue remove STRICT_TRANS_TABLES from your sql_mode setting.
Go to Top