User Tools

Site Tools


Upgrading OpenSRF

Warning: These instructions are still being drafted and reviewed by the community for errors.

In the following instructions, you are asked to perform certain steps as either the root user or the opensrf user.

  • Debian To become the root user, issue the su - command and enter the password of the root user.
  • Ubuntu To become the root user, issue the sudo su - command and enter the password of your current user.

To switch from the root user to a different user, issue the su - <username> command; for example, su - opensrf. Once you have become a non-root user, to become the root user again simply issue the exit command.

Also, in the following instructions, /path/to/OpenSRF/ represents the path to the OpenSRF source directory.

Short Version

Currently upgrading from 1.6 to 2.0 is basically stopping OpenSRF processes, taking care of the makefile prereqs, then configure, make, make install the code and finally start the processes back up. -l -a --stop_all / configure / makefile prereqs / make / make install / -l -a --start_all
  • Warning: If you are running Evergreen you might need to possibly re-compile, we are unsure if a pre-compiled binary set for Evergreen will continue to work after upgrading OpenSRF.

Longer Version

  1. Stop OpenSRF, as the opensrf user: -l -a stop_all
  2. As the opensrf user, download and extract the source files for the latest OpenSRF version:
    tar xzf opensrf-X.X.X.tar.gz

    A new directory opensrf-X.X.X is created.

  3. As the root user, install the software prerequisites using the automatic prerequisite installer.
    • Important: Experienced system administers might want to diff the new Makefile.install with the one in your current version of OpenSRF to see if this step is required & the consequences.
    • Replace <distribution> below with the following value for your distribution:
      • debian-lenny for Debian Lenny (5.0)
      • debian-squeeze for Debian Squeeze (6.0)
      • fedora13 for Fedora 13
      • ubuntu-hardy for Ubuntu Hardy Heron (8.04)
      • ubuntu-lucid for Ubuntu Lucid Lynx (10.04)
      • centos for CentOS 5
      • rhel for Red Hat Enterprise Linux 5
        cd /path/to/OpenSRF
        make -f src/extras/Makefile.install <distribution>

        This will install a number of packages required by OpenSRF on your system, including some Perl modules from CPAN. We suggest that you let CPAN auto-configure itself. Also, always allow the CPAN installer to install prerequisite modules when it asks.

  4. Build OpenSRF:
    1. As the opensrf user, configure and compile OpenSRF. You can include the –enable-python configure options if you want to include support for Python:
      cd /path/to/OpenSRF
      ./configure --prefix=/openils --sysconfdir=/openils/conf
    2. As the root user, return to your OpenSRF build directory and install OpenSRF:
      cd /path/to/OpenSRF
      make install
    3. As the root user, change the ownership of the installed files to the opensrf user:
      chown -R opensrf:opensrf /openils
  5. Jot down the usernames/passwords of the two Jabber users created when OpenSRF was previously installed these users will correspond to entries in opensrf_core.xml.
  6. Important: Backup your current opensrf.xml and opensrf_core.xml configuration files.
    cp -p /openils/conf/opensrf.xml /openils/conf/opensrf.xml.backup
    cp -p /openils/conf/opensrf_core.xml /openils/conf/opensrf_core.xml.backup
  7. As the opensrf user, copy the /openils/conf/opensrf_core.xml and /openils/conf/opensrf.xml configuration files from the example templates:
    cp /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml
    cp /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml
    1. Edit /openils/conf/opensrf_core.xml to change the Jabber usernames and passwords you jotted down earlier.
  8. As the root user, Run the following command:

Starting OpenSRF

Before starting OpenSRF, ensure that your Jabber and memcached daemons are running. As the root user:

/etc/init.d/ejabberd start
/etc/init.d/memcached start

Starting OpenSRF with the start_all option starts the OpenSRF router, Perl services, and C services. As the opensrf user, start OpenSRF (NOTE: use the -l flag only if you wish to force the hostname for the <hosts> section in opensrf.xml to be localhost): -l -a start_all
  • If you receive the error message bash: command not found, then your environment variable PATH does not include the /openils/bin directory; this should have been set by .bashrc when you logged in as the opensrf user, but you can manually set it using the following command:
    export PATH=$PATH:/openils/bin

Testing connections to OpenSRF

Once you started OpenSRF, test your connection to OpenSRF via srfsh:

  1. Start srfsh and try calling the add method on the OpenSRF math service:
    srfsh#  request opensrf.math add 2 2

    You should see a result like:

    Received Data: 4
    Request Completed Successfully
    Request Time in seconds: 0.007519

    If this does not work, it's time to do some troubleshooting. Please do not make any significant changes to your configuration. Gather your configuration files and log files in /openils/var/log and contact the Evergreen development mailing list for assistance before making any drastic changes to your system configuration.

Roll back configuration

Since we have confirmed that OpenSRF work correctly. We now will go back to the Evergreen configuration files we previously backed up unless you are using OpenSRF for another project.

  1. As the opensrf user, stop OpenSRF: -l -a stop_all
  2. As the opensrf user backup the OpenSRF config files
    cp -p /openils/conf/opensrf.xml /openils/conf/opensrf.xml.opensrf.backup
    cp -p /openils/conf/opensrf_core.xml /openils/conf/opensrf_core.xml.opensrf.backup
  3. As the opensrf user, copy the /openils/conf/opensrf_core.xml and /openils/conf/opensrf.xml configuration files from the example templates:
    cp /openils/conf/opensrf.xml.backup /openils/conf/opensrf.xml
    cp /openils/conf/opensrf_core.xml.backup /openils/conf/opensrf_core.xml
  4. As the opensrf start OpenSRF -l -a start_all
upgrading/opensrf.txt · Last modified: 2018/04/25 15:39 by dbwells

© 2008-2017 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a member of Software Freedom Conservancy.