Upgrade the Evergreen code

The following steps guide you through a simplistic upgrade of a production server. You must adjust these steps to accommodate your customizations such as catalogue skins.

  1. Stop Evergreen and back up your data:

    1. As root, stop the Apache web server.
    2. As the opensrf user, stop all Evergreen and OpenSRF services:

      osrf_control --localhost --stop-all
    3. Back up the /openils directory.
  2. Upgrade OpenSRF. Download and install the latest version of OpenSRF from the OpenSRF download page.
  3. As the opensrf user, download and extract Evergreen 3.X.X:

    wget https://evergreen-ils.org/downloads/Evergreen-ILS-3.X.X.tar.gz
    tar xzf Evergreen-ILS-3.X.X.tar.gz

    Note

    For the latest edition of Evergreen, check the Evergreen download page and adjust upgrading instructions accordingly.

  4. As the root user, install the prerequisites:

    cd /home/opensrf/Evergreen-ILS-3.X.X

    On the next command, replace [distribution] with one of these values for your distribution of Debian or Ubuntu:

    • debian-stretch for Debian Stretch (9.0) (EDI compatibility in progress)
    • debian-jessie for Debian Jessie (8.0) (See Bug 134222 if you want to use EDI)
    • ubuntu-xenial for Ubuntu Xenial Xerus (16.04) (EDI compatibility in progress)
    make -f Open-ILS/src/extras/Makefile.install [distribution]
  5. As the opensrf user, configure and compile Evergreen:

    cd /home/opensrf/Evergreen-ILS-3.X.X
    PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf
    make

    These instructions assume that you have also installed OpenSRF under /openils/. If not, please adjust PATH as needed so that the Evergreen configure script can find osrf_config.

  6. As the root user, install Evergreen:

    cd /home/opensrf/Evergreen-ILS-3.X.X
    make install

    Note that this version of Evergreen does not use the legacy XUL staff client by default, but if you wish to use a versioned XUL staff client, you can supply STAFF_CLIENT_STAMP during the make install step like this:

    cd /home/opensrf/Evergreen-ILS-3.X.X
    make STAFF_CLIENT_STAMP_ID=rel_3_x_x install
  7. As the root user, change all files to be owned by the opensrf user and group:

    chown -R opensrf:opensrf /openils
  8. (Optional, only if you are using the legacy staff client) As the opensrf user, update the server symlink in /openils/var/web/xul/:

    cd /openils/var/web/xul/
    rm server
    ln -sf rel_3_x_x/server server
  9. As the opensrf user, update opensrf_core.xml and opensrf.xml by copying the new example files (/openils/conf/opensrf_core.xml.example and /openils/conf/opensrf.xml). The -b option creates a backup copy of the old file.

    cp -b /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml
    cp -b /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml

    Caution

    Copying these configuration files will remove any customizations you have made to them. Remember to redo your customizations after copying them.

  10. As the opensrf user, update the configuration files:

    cd /home/opensrf/Evergreen-ILS-3.X.X
    perl Open-ILS/src/support-scripts/eg_db_config --update-config --service all \
    --create-offline --database evergreen --host localhost --user evergreen --password evergreen
  11. As the root user, update the Apache files:

    Use the example configuration files in Open-ILS/examples/apache/ (for Apache versions below 2.4) or Open-ILS/examples/apache_24/ (for Apache versions 2.4 or greater) to configure your Web server for the Evergreen catalog, staff client, Web services, and administration interfaces. Issue the following commands as the root Linux account:

    Caution

    Copying these Apache configuration files will remove any customizations you have made to them. Remember to redo your customizations after copying them. For example, if you purchased an SSL certificate, you will need to edit eg.conf to point to the appropriate SSL certificate files. The diff command can be used to show the differences between the distribution version and your customized version. diff <customized file> <dist file>

    1. Update /etc/apache2/eg_startup by copying the example from Open-ILS/examples/apache/eg_startup.

      cp /home/opensrf/Evergreen-ILS-3.X.X/Open-ILS/examples/apache/eg_startup /etc/apache2/eg_startup
    2. Update /etc/apache2/eg_vhost.conf by copying the example from Open-ILS/examples/apache/eg_vhost.conf.

      cp /home/opensrf/Evergreen-ILS-3.X.X/Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/eg_vhost.conf
    3. Update /etc/apache2/sites-available/eg.conf by copying the example from Open-ILS/examples/apache/eg.conf.

      cp /home/opensrf/Evergreen-ILS-3.X.X/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf