updates to section 'Installing OpenSRF 1.6.3';
authorSteve Sheppard <ssheps@gmail.com>
Sat, 16 Apr 2011 22:02:32 +0000 (18:02 -0400)
committerSteve Sheppard <ssheps@gmail.com>
Sat, 16 Apr 2011 22:02:32 +0000 (18:02 -0400)
2.0/admin/serversideinstallation_2.0.xml

index 601a212..7b1b1bd 100644 (file)
@@ -9,7 +9,9 @@
                </abstract>\r
        </info>\r
        <para>Installing, configuring and testing the Evergreen server-side software is straightforward with the current\r
-       stable software release. </para>\r
+       stable software release. See <xref linkend="serversideinstallation-all"/> for instructions tailored to\r
+       installing on some particular distributions of the <systemitem class="osname">Linux</systemitem> operating\r
+       system.</para>\r
        <para>The current version of the Evergreen server-side software runs as a native application on any of several\r
        well-known <systemitem class="osname">Linux</systemitem> distributions \r
        (e.g., <systemitem class="osname">Ubuntu</systemitem> and <systemitem class="osname">Debian</systemitem>). \r
@@ -22,7 +24,9 @@
        to emulate a <systemitem class="osname">Linux</systemitem>\r
        environment). It can also be installed to run on other <systemitem class="osname">Linux</systemitem> \r
        systems via virtualized environments (using, for example, <application>"VirtualBox"</application> or\r
-       <application>"VMware"</application>).</para>\r
+       <application>"VMware"</application>). More information on virtualized environments can be found in \r
+       <xref linkend="serversideinstallation-virtual"/>.</para>\r
+       <para>Installation of the Evergreen Staff Client software is reviewed in <xref linkend="staffclientinstallation"/>. </para>\r
        <para>The Evergreen server-side software has dependencies on particular versions of certain major software\r
        sub-components. Successful installation of Evergreen software requires that software versions agree with those\r
        listed here:</para>\r
                                        <entry>1.6.3</entry>\r
                                        <entry>8.4</entry>\r
                                </row>\r
+                               <row>\r
+                                       <entry>1.6.1.x</entry>\r
+                                       <entry>1.4.0</entry>\r
+                                       <entry>8.2 / 8.3</entry>\r
+                               </row>\r
+                               <row>\r
+                                       <entry>1.6.0.x</entry>\r
+                                       <entry>1.2</entry>\r
+                                       <entry>8.2 / 8.3</entry>\r
+                               </row>\r
+                               <row>\r
+                                       <entry>1.4.x</entry>\r
+                                       <entry>1.0</entry>\r
+                                       <entry>8.1 / 8.2</entry>\r
+                               </row>\r
+                               <row>\r
+                                       <entry>1.2.x</entry>\r
+                                       <entry>0.9</entry>\r
+                                       <entry>8.1 / 8.2</entry>\r
+                               </row>\r
                        </tbody>\r
                </tgroup>\r
        </table>\r
                        continue with any further Evergreen installation steps\r
                        until you have verified that OpenSRF has been successfully installed and tested.</para>\r
                        <note>\r
-                               <para>The following steps have been tested on the x86 (32-bit) and x86-64 (64-bit)\r
-                               platforms. OpenSRF 1.6.3 has been tested on <systemitem class="osname">Debian Lenny (5.0)</systemitem>,  <systemitem class="osname">Debian Squeeze (6.0)</systemitem> \r
-                               and <systemitem class="osname">Ubuntu Lucid Lynx (10.04)</systemitem>, <systemitem class="osname">Debian Lenny (5.0)</systemitem>, \r
-                               <systemitem class="osname">CentOS 5</systemitem>, <systemitem class="osname">Red Hat Enterprise Linux 5</systemitem>.</para>\r
+                               <para>The following steps have been tested on the x86 (32-bit) architecture of\r
+                               <systemitem class="osname">Debian Squeeze (6.0)</systemitem>,\r
+                               <systemitem class="osname">Ubuntu Lucid Lynx (10.04)</systemitem>, and on\r
+                               <systemitem class="osname">Fedora 13</systemitem> and\r
+                               <systemitem class="osname">Fedora 14</systemitem>.</para>\r
                                <para>In the following instructions, you are asked to perform certain steps as \r
                                either the <systemitem class="username">root</systemitem> user, the \r
                                <systemitem class="username">opensrf</systemitem> user, or the \r
                                        In the following example, the default shell for the \r
                                        <systemitem class="username">opensrf</systemitem> user is automatically set\r
                                        to <command>/bin/bash</command> to inherit a reasonable environment:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        useradd -m -s /bin/bash opensrf\r
        passwd opensrf</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step>\r
                                        <title>Download and Unpack Latest OpenSRF Version</title>\r
                                        the directory <filename class="directory">/home/opensrf</filename> then download\r
                                        and extract OpenSRF. The new subdirectory\r
                                        <filename class="directory">/home/opensrf/OpenSRF-1.6.3</filename> will be created:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        cd /home/opensrf\r
        wget http://evergreen-ils.org/downloads/OpenSRF-1.6.3.tar.gz\r
        tar zxf OpenSRF-1.6.3.tar.gz</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step>\r
                                        <title>Install Prerequisites to Build OpenSRF</title>\r
                                        below to build the prerequisites from the software distribution that you just downloaded\r
                                        and unpacked. Remember to replace <emphasis>[DISTRIBUTION]</emphasis> in the following\r
                                        example with the keyword corresponding to the name of one of the\r
-                                       <systemitem class="osname">Linux</systemitem> listed distributions. \r
+                                       <systemitem class="osname">Linux</systemitem> distributions listed in the\r
+                                       distribution keywords table <xref linkend="serversideinstallation-keywords-opensrf"/> . \r
                                        For example, to install the prerequisites for Ubuntu version 10.04 (Lucid Lynx) you would\r
                                        enter this command: <command>make -f src/extras/Makefile.install ubuntu-lucid</command> .</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        cd /home/opensrf/OpenSRF-1.6.3\r
        make -f src/extras/Makefile.install [DISTRIBUTION]</userinput>\r
-                                       </screen>\r
-                                       <itemizedlist>\r
-                                       <listitem>\r
-                                               <para><option>debian-squeeze</option> for <systemitem class="osname">Debian Squeeze (6.0)</systemitem>\r
-                                               <indexterm><primary>Linux</primary><secondary>Debian</secondary></indexterm></para>\r
-                                       </listitem>\r
-                                       <listitem>\r
-                                               <para><option>fedora13</option> for <systemitem class="osname">Fedora 13</systemitem>\r
-                                               <indexterm><primary>Linux</primary><secondary>Fedora</secondary></indexterm></para>\r
-                                       </listitem>                                             \r
-                                       <listitem>\r
-                                               <para><option>ubuntu-lucid</option> for <systemitem class="osname">Ubuntu Lucid Lynx\r
-                                               (10.04)</systemitem></para>\r
-                                       </listitem>\r
-                                       <listitem>\r
-                                               <para><option>centos</option> for <systemitem class="osname">CentOS 5</systemitem></para>\r
-                                       </listitem>\r
-                                       <listitem>\r
-                                               <para><option>rhel</option> for <systemitem class="osname">Red Hat Enterprise Linux 5</systemitem></para>\r
-                                       </listitem>\r
-                               </itemizedlist>\r
+</screen>\r
+                                       <table xml:id="serversideinstallation-keywords-opensrf">\r
+                                               <?dbfo keep-together="always" ?>\r
+                                               <title>Keyword Targets for OpenSRF <application>"make"</application> Command</title>\r
+                                               <tgroup align="left" cols="2" colsep="1" rowsep="1">\r
+                                                       <colspec colname="keyword" colnum="1" colwidth="1.0*"/>\r
+                                                       <colspec colname="linux_version" colnum="2" colwidth="3.0*"/>\r
+                                                       <thead>\r
+                                                               <row>\r
+                                                                       <entry>Keyword</entry>\r
+                                                                       <entry>Linux Version</entry>\r
+                                                               </row>\r
+                                                       </thead>\r
+                                                       <tbody>\r
+                                                               <row>\r
+                                                                       <entry>debian-squeeze</entry>\r
+                                                                       <entry>Debian "Squeeze" (6.0)</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>debian-etch</entry>\r
+                                                                       <entry>Debian "Etch" (4.0)</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>debian-lenny</entry>\r
+                                                                       <entry>Debian "Lenny" (5.0)</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>ubuntu-hardy</entry>\r
+                                                                       <entry>Ubuntu "Hardy Heron" (8.04)</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>ubuntu-karmic</entry>\r
+                                                                       <entry>Ubuntu "Karmic Koala" (9.10)</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>ubuntu-lucid</entry>\r
+                                                                       <entry>Ubuntu "Lucid Lynx" (10.04)</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>fedora13</entry>\r
+                                                                       <entry>Fedora "Goddard" (13)</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>fedora13</entry>\r
+                                                                       <entry>Fedora "Laughlin" (14)</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>centos</entry>\r
+                                                                       <entry>CentOS 5</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>rhel</entry>\r
+                                                                       <entry>Red Hat Enterprise Linux 5</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>gentoo</entry>\r
+                                                                       <entry>Gentoo</entry>\r
+                                                               </row>\r
+                                                       </tbody>\r
+                                               </tgroup>\r
+                                       </table>\r
+                                       <indexterm><primary>Linux</primary><secondary>Debian</secondary></indexterm>\r
+                                       <indexterm><primary>Linux</primary><secondary>Fedora</secondary></indexterm>\r
+                                       <indexterm><primary>Linux</primary><secondary>Ubuntu</secondary></indexterm>\r
+                                       <indexterm><primary>Linux</primary><secondary>CentOS</secondary></indexterm>\r
+                                       <indexterm><primary>Linux</primary><secondary>Red Hat</secondary></indexterm>\r
+                                       <indexterm><primary>Linux</primary><secondary>Gentoo</secondary></indexterm>\r
                                        <para>This will install a number of packages on the system that are required by OpenSRF,\r
                                        including some Perl modules from CPAN. You can say <literal>No</literal> to the initial\r
                                        CPAN configuration prompt to allow it to automatically configure itself to download and\r
                                                        include support for Python and Java, add the configuration\r
                                                        options <option>--enable-python</option> and\r
                                                        <option>--enable-java</option>, respectively:</para>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        cd /home/opensrf/OpenSRF-1.6.3\r
        ./configure --prefix=/openils --sysconfdir=/openils/conf\r
        make</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                        <para>This step will take several minutes to complete.</para>\r
                                                </step>\r
                                                <step>\r
                                                        user, return to the new OpenSRF build directory and use the\r
                                                        <command>make</command> utility to compile, link and install\r
                                                        OpenSRF:</para>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        cd /home/opensrf/OpenSRF-1.6.3\r
        make install</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                        <para>This step will take several minutes to complete.</para>\r
                                                </step>\r
                                                <step>\r
                                                        your system to recognize the newly installed libraries. As the\r
                                                        <systemitem class="username">root</systemitem> user, do this by\r
                                                        creating the new file\r
-                                                       <filename>/etc/ld.so.conf.d/osrf.conf</filename> containing a\r
-                                                       new library path, then run the command\r
+                                                       <filename>/etc/ld.so.conf.d/osrf.conf</filename> containing two\r
+                                                       new library paths, then execute the command\r
                                                        <command>ldconfig</command> to automatically read the file and\r
                                                        modify the system dynamic library path:</para>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
-       echo "/openils/lib" > /etc/ld.so.conf.d/osrf.conf\r
+       echo "/openils/lib"   > /etc/ld.so.conf.d/osrf.conf\r
+       echo "/usr/local/lib >> /etc/ld.so.conf.d/osrf.conf\r
        ldconfig</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                </step>\r
                                                <step xml:id="serversideinstallation-definedomains">\r
                                                        <title>Define Public and Private OpenSRF Domains</title>\r
                                                        <indexterm>\r
                                                                <primary>Jabber</primary>\r
                                                        </indexterm>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        127.0.1.2  public.localhost   public\r
        127.0.1.3  private.localhost  private</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                </step>\r
                                                <step>\r
                                                        <title>Change File Ownerships</title>\r
                                                        user, change the ownership of all files installed in the\r
                                                        directory <filename class="directory">/openils</filename> to the\r
                                                        user <systemitem class="username">opensrf</systemitem>:</para>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        chown -R opensrf:opensrf /openils</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                </step>\r
                                        </substeps>\r
                                </step>\r
                                        <para>Before continuing with configuration of <systemitem class="service">ejabberd</systemitem>\r
                                        you must stop that service. As the <systemitem class="username">root</systemitem> user,\r
                                        execute the following command to stop the service:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        /etc/init.d/ejabberd stop</userinput>\r
-                                       </screen>\r
+</screen>\r
                                        <para>If <systemitem class="service">ejabberd</systemitem> reports that it \r
                                        is already stopped, there may have been a problem when it started back\r
                                        in the installation step. If there are any remaining daemon processes such as\r
                                        <systemitem class="daemon">beam</systemitem> or\r
                                        <systemitem class="daemon">epmd</systemitem> \r
                                        you may need to perform the following commands to kill them:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        epmd -kill\r
        killall beam; killall beam.smp\r
        rm /var/lib/ejabberd/*\r
        echo 'ERLANG_NODE=ejabberd@localhost' >> /etc/default/ejabberd</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step>\r
                                        <title>Edit the <systemitem class="service">ejabberd</systemitem> configuration</title>\r
                                                        <para/>\r
                                                </step>\r
                                                <step>\r
-                                                       <para>Change the line:</para>\r
+                                                       <para>Change the line for older versions of <systemitem class="service">ejabberd</systemitem>:</para>\r
                                                        <literal>{max_user_sessions, 10}</literal>\r
                                                        <para>to instead read:</para>\r
                                                        <literal>{max_user_sessions, 10000}</literal>\r
                                                        <para/>\r
-                                                       <para>If the line looks something like this:</para>\r
+                                                       <para>Change the line for newer versions of <systemitem class="service">ejabberd</systemitem>:</para>\r
                                                        <literal>{access, max_user_sessions, [{10, all}]}</literal>\r
-                                                       <para>then change it to instead read:</para>\r
+                                                       <para>to instead read:</para>\r
                                                        <literal>{access, max_user_sessions, [{10000, all}]}</literal>\r
                                                </step>\r
                                                <step>\r
                                        <para>As the <systemitem class="username">root</systemitem> user, restart the\r
                                        <systemitem class="service">ejabberd</systemitem> service to test the\r
                                        configuration changes and to register your users:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        /etc/init.d/ejabberd start</userinput>\r
-                                       </screen>\r
+       </screen>\r
                                </step>\r
                                <step>\r
                                        <title>Register <systemitem class="username">router</systemitem> and\r
                                        for the users <systemitem class="username">router</systemitem> and\r
                                        <systemitem class="username">opensrf</systemitem> on each domain (remember to replace\r
                                        <emphasis>NEWPASSWORD</emphasis> with the appropriate password):</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        # Note: the syntax for registering a user with ejabberdctl is:\r
        #    ejabberdctl register USER DOMAIN PASSWORD\r
        ejabberdctl register router  public.localhost  NEWPASSWORD\r
        ejabberdctl register opensrf private.localhost NEWPASSWORD\r
        ejabberdctl register opensrf public.localhost  NEWPASSWORD</userinput>\r
-                                       </screen>\r
-                                       <para>Note that the users <systemitem class="username">router</systemitem> and\r
+</screen>\r
+                                       <para>The users <systemitem class="username">router</systemitem> and\r
                                        <systemitem class="username">opensrf</systemitem> and their respective passwords \r
                                        will be used again in <xref linkend="serversideinstallation-passwords"/> when\r
                                        we modify the OpenSRF configuration file <filename>/openils/conf/opensrf_core.xml</filename> .</para>\r
+                                       <note>\r
+                                               <para>\r
+                                               There appears to be a problem with <command>ejabberdctl</command> in\r
+                                               that it does not escape input correctly, so a password like\r
+                                               <literal>'0P3N$SRF'</literal> will be created as <literal>'0P3N'</literal>.\r
+                                               A bug against ejabberd has been filed. To register a password using\r
+                                               <command>ejabberdctl</command> with special shell characters until such\r
+                                               time as that bug is resolved, the workaround is to specify a\r
+                                               double-escaped character at the command line, for example,\r
+                                               <literal>'0P3N\\\\$RF'</literal> .</para>\r
+                                       </note>\r
                                </step>\r
                                <step xml:id="serversideinstallation-opensrf-createconfig">\r
                                        <title>Create OpenSRF configuration files</title>\r
                                        execute the following commands to create the new configuration files\r
                                        <filename>/openils/conf/opensrf_core.xml</filename> and\r
                                        <filename>/openils/conf/opensrf.xml</filename> from the example templates:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        cd /openils/conf\r
        cp opensrf.xml.example      opensrf.xml\r
        cp opensrf_core.xml.example opensrf_core.xml</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step xml:id="serversideinstallation-passwords">\r
                                        <title>Update usernames and passwords in the OpenSRF configuration file</title>\r
                                        to match values for your own systems.</para>\r
                                </step>\r
                                <step>\r
-                                       <title>Set location of the persistent database</title>\r
+                                       <title>Set the location of the persistent database</title>\r
                                        <para>As the <systemitem class="username">opensrf</systemitem> user, edit the\r
-                                       file <filename>/openils/conf/opensrf.xml</filename>, then find and modify the \r
-                                       element <literal>dbfile</literal> (near the end of the file) to set the \r
-                                       location of the persistent database. Change the default line:</para>\r
+                                       file <filename>/openils/conf/opensrf.xml</filename>, then find and verify that\r
+                                       the element <literal>dbfile</literal> (near the end of the file) is set to the \r
+                                       location of the persistent database. If necessary, change the default line:</para>\r
                                        <literal>/openils/var/persist.db</literal>\r
                                        <para>to instead read:</para>\r
                                        <literal>/tmp/persist.db</literal>\r
                                                <primary>srfsh</primary>\r
                                        </indexterm>\r
                                        <para>The software installation will automatically create the utility\r
-                                       <command>srfsh</command> (surf shell), a command line diagnostic tool for\r
-                                       testing and interacting with <application>OpenSRF</application>. It will be used\r
+                                       <command>srfsh</command>, a command line diagnostic tool for testing and\r
+                                       interacting with <application>OpenSRF</application>. It will be used\r
                                        in a future step to complete and test the Evergreen installation. See \r
                                        <xref linkend="serversideinstallation-testing"/> for further information.</para>\r
                                        <para>As the <systemitem class="username">root</systemitem> user, copy the\r
                                        to the home directory of each user who will use <command>srfsh</command>. \r
                                        For instance, do the following for the \r
                                        <systemitem class="username">opensrf</systemitem> user:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        cp /openils/conf/srfsh.xml.example  /home/opensrf/.srfsh.xml</userinput>\r
-                                       </screen>\r
+</screen>\r
                                        <para>Edit each user's file <filename>~/.srfsh.xml</filename> and make the\r
                                        following changes:</para>\r
                                        <itemizedlist>\r
                                        environmental variable <envar>PATH</envar> by adding a new file path to the\r
                                        <systemitem class="username">opensrf</systemitem> user's shell configuration\r
                                        file <filename>~/.bashrc</filename>:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        echo "export PATH=/openils/bin:\$PATH" >> ~/.bashrc</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step>\r
                                        <title>Start OpenSRF</title>\r
                                        <para>As the <systemitem class="username">root</systemitem> user, start the\r
                                        <systemitem class="service">ejabberd</systemitem> and \r
                                        <systemitem class="service">memcached</systemitem> services:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        /etc/init.d/ejabberd start\r
        /etc/init.d/memcached start</userinput>\r
-                                       </screen>\r
-                                       <para>As the <systemitem class="username">opensrf</systemitem> user,\r
+</screen>\r
+                                       <para>Then as the <systemitem class="username">opensrf</systemitem> user,\r
                                        start OpenSRF as follows:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        osrf_ctl.sh -l -a start_all</userinput>\r
-                                       </screen>\r
+</screen>\r
                                        <para>The flag <option>-l</option> forces Evergreen to use \r
                                        <systemitem class="domainname">localhost</systemitem> (your current system) \r
-                                       as the hostname. The flag <option>-a start_all</option>  starts the other \r
+                                       as the hostname. The flag <option>-a start_all</option> starts the\r
                                        OpenSRF <systemitem class="service">router</systemitem> , \r
                                        <systemitem class="service">Perl</systemitem> , and\r
                                        <systemitem class="service">C</systemitem> services.</para>\r
                                <step>\r
                                        <title>Test connections to OpenSRF</title>\r
                                        <para>Once you have installed and started OpenSRF, as the \r
-                                       <systemitem class="username">root</systemitem> user, test your connection to \r
-                                       <systemitem class="service">OpenSRF</systemitem> using the <command>srfsh</command> \r
-                                       utility and trying to call the <command>add</command> method on the OpenSRF \r
+                                       <systemitem class="username">root</systemitem> user test your connection to \r
+                                       <systemitem class="service">OpenSRF</systemitem> with the <command>srfsh</command> \r
+                                       utility and try to call the <command>add</command> method on the OpenSRF \r
                                        <systemitem class="service">math</systemitem> service:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        /openils/bin/srfsh</userinput>\r
-                                               <computeroutput>\r
+       <computeroutput>\r
        srfsh# <userinput>request opensrf.math add 2 2</userinput></computeroutput>\r
-                                               <computeroutput>\r
+       <computeroutput>\r
        Received Data: 4\r
        ------------------------------------\r
        Request Completed Successfully\r
        Request Time in seconds: 0.007519\r
        ------------------------------------</computeroutput>\r
-                                       </screen>\r
+</screen>\r
                                        <para>For other <command>srfsh</command> commands, type in\r
                                        <userinput>help</userinput> at the prompt.</para>\r
                                </step>\r
                                        <command>osrf_ctl.sh</command> again. As the \r
                                        <systemitem class="username">opensrf</systemitem> \r
                                        user, stop OpenSRF as follows:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        osrf_ctl.sh -l -a stop_all</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                        </procedure>\r
                </section>\r
                                        the directory <filename class="directory">/home/opensrf</filename> then download\r
                                        and extract Evergreen. The new subdirectory\r
                                        <filename class="directory">/home/opensrf/Evergreen-ILS-2.0.4</filename> will be created:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        cd /home/opensrf\r
        wget http://evergreen-ils.org/downloads/Evergreen-ILS-2.0.4.tar.gz\r
        tar zxf Evergreen-ILS-2.0.4.tar.gz</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step xml:id="serversideinstallation-installprereq">\r
                                        <title>Install Prerequisites to Build Evergreen</title>\r
                                        For example, to install the prerequisites for Ubuntu version 10.05 (Lucid Lynx) you would\r
                                        enter this command: <command>make -f Open-ILS/src/extras/Makefile.install\r
                                        ubuntu-lucid</command>.</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        cd /home/opensrf/Evergreen-ILS-2.0.4\r
        make -f Open-ILS/src/extras/Makefile.install [DISTRIBUTION]</userinput>\r
-                                       </screen>\r
+</screen>\r
                                        <itemizedlist>\r
                                        \r
                                        <listitem>\r
                                        modules:</para>\r
                                        <para>as the root user, ensure the gcc compiler is installed:</para>\r
 <screen>\r
-<userinput>aptitude install gcc libxml-libxml-perl libxml-libxslt-perl</userinput>\r
+       <userinput>aptitude install gcc libxml-libxml-perl libxml-libxslt-perl</userinput>\r
 </screen>\r
                                        <para>then install the Perl modules:</para>\r
 <screen>\r
-<userinput>perl -MCPAN -e shell</userinput>\r
-<prompt>cpan></prompt> <userinput>Business::ISBN</userinput>   \r
-<prompt>cpan></prompt> <userinput>install JSON::XS</userinput>\r
-<prompt>cpan></prompt> <userinput>Library::CallNumber::LC</userinput>\r
-<prompt>cpan></prompt> <userinput>install MARC::Record</userinput>\r
-<prompt>cpan></prompt> <userinput>install MARC::File::XML</userinput>\r
-<prompt>cpan></prompt> <userinput>cpan UUID::Tiny</userinput>\r
+       <userinput>perl -MCPAN -e shell</userinput>\r
+       <prompt>cpan></prompt> <userinput>Business::ISBN</userinput>    \r
+       <prompt>cpan></prompt> <userinput>install JSON::XS</userinput>\r
+       <prompt>cpan></prompt> <userinput>Library::CallNumber::LC</userinput>\r
+       <prompt>cpan></prompt> <userinput>install MARC::Record</userinput>\r
+       <prompt>cpan></prompt> <userinput>install MARC::File::XML</userinput>\r
+       <prompt>cpan></prompt> <userinput>cpan UUID::Tiny</userinput>\r
 </screen>\r
                                        <para>For more information on installing Perl Modules vist the official\r
                                        <link xl:href="http://www.cpan.org/">CPAN</link> site.</para>\r
                                        do this by creating the new file <filename>/etc/ld.so.conf.d/osrf.conf</filename>\r
                                        containing a new library path, then run the command <command>ldconfig</command> to\r
                                        automatically read the file and modify the system dynamic library path:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        echo "/usr/local/lib"     >> /etc/ld.so.conf.d/osrf.conf\r
        echo "/usr/local/lib/dbd" >> /etc/ld.so.conf.d/osrf.conf\r
        ldconfig</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step performance="optional">\r
                                        <title>Restart the PostgreSQL Server</title>\r
                                        execute the following command (remember to replace\r
                                        <emphasis>PGSQL_VERSION</emphasis> with your installed PostgreSQL version,\r
                                        for example <literal>8.4</literal>):</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        /etc/init.d/postgresql-PGSQL_VERSION restart</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step xml:id="serversideinstallation-configure">\r
                                        <title>Configure Evergreen</title>\r
                                        and linked later in <xref linkend="serversideinstallation-compile"/>.</para>\r
                                        <para>As the <systemitem class="username">opensrf</systemitem> user, return to\r
                                        the Evergreen build directory and execute these commands:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        cd /home/opensrf/Evergreen-ILS-2.0.4\r
        ./configure --prefix=/openils --sysconfdir=/openils/conf\r
        make</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step xml:id="serversideinstallation-compile">\r
                                        <title>Compile, Link and Install Evergreen</title>\r
                                        default Evergreen Staff Client.</para>\r
                                        <para>As the <systemitem class="username">root</systemitem> user, return to the\r
                                        Evergreen build directory and use the <command>make</command> utility as shown below:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        cd /home/opensrf/Evergreen-ILS-2.0.4\r
        make STAFF_CLIENT_BUILD_ID=rel_2_0_4 install</userinput>\r
-                                       </screen>\r
+</screen>\r
                                        <para>The Staff Client will also be automatically built, but you must remember\r
                                        to set the variable <envar>STAFF_CLIENT_BUILD_ID</envar> to match the version of the \r
                                        Staff Client you will use to connect to the Evergreen server.</para>\r
                                        directory <filename class="directory">/openils/var/web/xul</filename> that points to the\r
                                        subdirectory <filename class="directory">/server</filename> of the new Staff Client\r
                                        build:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        cd /openils/var/web/xul\r
        ln -sf rel_2_0_4/server server</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step>\r
                                        <title>Copy the OpenSRF Configuration Files</title>\r
                                        to <systemitem class="username">opensrf</systemitem>.\r
                                        As the <systemitem class="username">root</systemitem> user, execute the following\r
                                        commands:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        cd /openils/conf\r
        cp opensrf.xml        opensrf.xml.BAK\r
        cp opensrf_core.xml.example opensrf_core.xml\r
        cp oils_web.xml.example     oils_web.xml\r
        chown -R opensrf:opensrf /openils/</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step>\r
                                        <title>Create and Configure PostgreSQL Database</title>\r
                                                        <para>As the <systemitem class="username">postgres</systemitem>\r
                                                        user on the PostgreSQL system create the PostgreSQL database,\r
                                                        then set some internal paths:</para>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the postgres user:\r
        createdb evergreen -E UTF8 -T template0\r
        createlang plperl   evergreen\r
        createlang plperlu  evergreen\r
        createlang plpgsql  evergreen</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                        <para>Continue as the <systemitem class="username">postgres</systemitem> user\r
                                                        and execute the SQL scripts as shown below (remember to adjust the paths as needed,\r
                                                        where <emphasis>PGSQL_VERSION</emphasis> is your installed PostgreSQL\r
                                                        version, for example <literal>8.4</literal>).</para>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the postgres user:\r
        psql -f /usr/share/postgresql/PGSQL_VERSION/contrib/tablefunc.sql evergreen\r
        psql -f /usr/share/postgresql/PGSQL_VERSION/contrib/tsearch2.sql  evergreen\r
        psql -f /usr/share/postgresql/PGSQL_VERSION/contrib/pgxml.sql     evergreen</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                </step>\r
                                                <step xml:id="serversideinstallation-postgresqlcreateuser">\r
                                                        <title>Create <systemitem class="username">evergreen</systemitem> PostgreSQL user</title>\r
                                                        named <systemitem class="username">evergreen</systemitem> and\r
                                                        assign a password (remember to replace <emphasis>NEWPASSWORD</emphasis>\r
                                                        with an appropriate new password):</para>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the postgres user:\r
        createuser -P -s evergreen</userinput>\r
-                                                               <computeroutput>\r
+       <computeroutput>\r
        Enter password for new role: <userinput>NEWPASSWORD</userinput>\r
        Enter it again: <userinput>NEWPASSWORD</userinput></computeroutput>\r
-                                                       </screen>\r
+</screen>\r
                                                </step>\r
                                                <step>\r
                                                        <title>Create database schema</title>\r
@@ -1094,13 +1178,13 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                                        <indexterm>\r
                                                                <primary>Apache modules</primary>\r
                                                        </indexterm>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        a2enmod ssl     # enable mod_ssl\r
        a2enmod rewrite # enable mod_rewrite\r
        a2enmod expires # enable mod_expires</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                        <para>As the commands execute, you may see warnings similar to:\r
                                                        <literal>Module SOMEMODULE already enabled</literal> but you can\r
                                                        safely ignore them.</para>\r
@@ -1111,14 +1195,14 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                                        Evergreen installation directory to the Apache directory. As the\r
                                                        <systemitem class="username">root</systemitem> user, perform the\r
                                                        following commands:</para>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        cd /home/opensrf/Evergreen-ILS-2.0.4\r
        cp Open-ILS/examples/apache/eg.conf     /etc/apache2/sites-available/\r
        cp Open-ILS/examples/apache/eg_vhost.conf  /etc/apache2/\r
        cp Open-ILS/examples/apache/startup.pl     /etc/apache2/</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                </step>\r
                                                <step xml:id="serversideinstallation-createsslcertificate">\r
                                                        <title>Create a Security Certificate</title>\r
@@ -1129,13 +1213,13 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                                        accept the warnings in the Staff Client and browser during testing and\r
                                                        development. As the <systemitem class="username">root</systemitem> user,\r
                                                        perform the following commands:</para>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        mkdir /etc/apache2/ssl\r
        cd /etc/apache2/ssl\r
        openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                        <para>You will be prompted for several items of information; enter\r
                                                        the appropriate information for each item. The new files\r
                                                        <filename>server.crt</filename> and <filename>server.key</filename> will\r
@@ -1191,11 +1275,11 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
 <userinput>export APACHE_RUN_GROUP=www-data</userinput>\r
 </screen>\r
                                                                        <para>to instead read:</para>\r
-                                                                       <screen>\r
-                                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        export APACHE_RUN_USER=opensrf\r
        export APACHE_RUN_GROUP=opensrf</userinput>\r
-                                                                       </screen>\r
+</screen>\r
                                                                </listitem>\r
                                                                <listitem>\r
                                                                        <para>As the \r
@@ -1205,11 +1289,11 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                                                        modify the value for <literal>KeepAliveTimeout</literal>\r
                                                                        and <literal>MaxKeepAliveRequests</literal> to match\r
                                                                        the following:</para>\r
-                                                                       <screen>\r
-                                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        KeepAliveTimeout       1\r
        MaxKeepAliveRequests 100</userinput>\r
-                                                                       </screen>\r
+</screen>\r
                                                                </listitem>\r
                                                                <listitem>\r
                                                                        <para>Further configuration changes to Apache may be\r
@@ -1242,15 +1326,15 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                                        following Apache configuration commands to disable the default\r
                                                        <emphasis>It Works</emphasis> web page and enable the Evergreen\r
                                                        web site, and then restart the Apache server:</para>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        # disable/enable web sites\r
        a2dissite default\r
        a2ensite eg.conf\r
        # restart the server\r
        /etc/init.d/apache2 reload</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                </step>\r
                                        </substeps>\r
                                </step>\r
@@ -1367,12 +1451,12 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                                        <emphasis>before</emphasis> the line <literal>[ -z "$PS1" ] &amp;&amp;\r
                                                        return </literal>. This will allow headless (scripted) logins to load the\r
                                                        correct environment.</note>\r
-                                                       <screen>\r
-                                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        echo "export PERL5LIB=/openils/lib/perl5:\$PERL5LIB" >> ~/.bashrc\r
        . ~/.bashrc</userinput>\r
-                                                       </screen>\r
+</screen>\r
                                                </listitem>\r
                                        </itemizedlist>\r
                                </step>\r
@@ -1385,6 +1469,10 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                </step>\r
                        </procedure>\r
                </section>\r
+               <section xml:id="serversideinstallation-fedora">\r
+                       <title>Installing Evergreen 2.x On <systemitem class="osname">Fedora 13</systemitem> or\r
+                               <systemitem class="osname">Fedora 14</systemitem> </title>\r
+               </section>\r
                <section xml:id="serversideinstallation-starting">\r
                        <title>Starting Evergreen</title>\r
                        <para>In this section you will learn how to start the Evergreen services. \r
@@ -1395,24 +1483,24 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                        <para>As the <systemitem class="username">root</systemitem>\r
                                        user, start the <systemitem class="service">ejabberd</systemitem> and \r
                                        <systemitem class="service">memcached</systemitem> services as follows:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        /etc/init.d/ejabberd start\r
        /etc/init.d/memcached start</userinput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step>\r
                                        <para>As the <systemitem class="username">opensrf</systemitem> user,\r
-                                       start Evergreen as follows:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+                                       start the OpenSRF router service as follows:</para>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        osrf_ctl.sh -l -a start_all</userinput>\r
-                                       </screen>\r
-                                       <para>The flag <option>-l</option> forces Evergreen to use \r
+</screen>\r
+                                       <para>The flag <option>-l</option> forces Evergreen to use\r
                                        <systemitem class="domainname">localhost</systemitem> (your current system) \r
-                                       as the hostname. The flag <option>-a start_all</option>  starts the other \r
+                                       as the hostname. The flag <option>-a start_all</option> starts the \r
                                        OpenSRF <systemitem class="service">router</systemitem> , \r
                                        <systemitem class="service">Perl</systemitem> , and\r
                                        <systemitem class="service">C</systemitem> services.</para>\r
@@ -1456,12 +1544,12 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                        changes to the library hierarchy.</para>\r
                                        <para>As the <systemitem class="username">opensrf</systemitem> user, execute the\r
                                        following command and review the results:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        cd /openils/bin\r
        ./autogen.sh -c /openils/conf/opensrf_core.xml -u</userinput>\r
-                                               <computeroutput>\r
+       <computeroutput>\r
        Updating Evergreen organization tree and IDL using '/openils/conf/opensrf_core.xml'\r
        Updating fieldmapper\r
        Updating web_fieldmapper\r
@@ -1478,16 +1566,16 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
        Refreshing proximity of org units\r
        Successfully updated the organization proximity\r
        Done</computeroutput>\r
-                                       </screen>\r
+</screen>\r
                                </step>\r
                                <step>\r
                                        <para>As the <systemitem class="username">root</systemitem> user, restart the\r
                                        Apache Web server:</para>\r
-                                       <screen>\r
-                                               <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        /etc/init.d/apache2 restart</userinput>\r
-                                       </screen>\r
+</screen>\r
                                        <note>If the Apache Web server was running when you started the OpenSRF\r
                                        services, you might not be able to successfully log into the OPAC or Staff\r
                                        Client until the Apache Web server has been restarted.</note>\r
@@ -1508,11 +1596,11 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                <command>srfsh</command> commands, type <userinput>help</userinput> at the prompt.\r
                                As the <systemitem class="username">opensrf</systemitem> user,\r
                                execute the following commands to test your Evergreen connection:</para>\r
-                               <screen>\r
-                                       <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        /openils/bin/srfsh</userinput>\r
-                                       <computeroutput>\r
+       <computeroutput>\r
        srfsh% <userinput>login admin open-ils</userinput>\r
        Received Data: "250bf1518c7527a03249858687714376"\r
        ------------------------------------\r
@@ -1534,19 +1622,19 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
        Request Completed Successfully\r
        Request Time in seconds: 1.336568\r
        ------------------------------------</computeroutput>\r
-                               </screen>\r
+</screen>\r
                                <para>If this does not work, try the following:</para>\r
                                <itemizedlist>\r
                                        <listitem>\r
                                                <para>As the <systemitem class="username">opensrf</systemitem> user, run the\r
                                                <filename>settings-tester.pl</filename> utility to review your Evergreen\r
                                                installation for any system configuration problems:</para>\r
-                                               <screen>\r
-                                                       <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user:\r
        cd /home/opensrf\r
        ./Evergreen-ILS-2.0.4/Open-ILS/src/support-scripts/settings-tester.pl</userinput>\r
-                                               </screen>\r
+</screen>\r
                                                <para>If the output of <command>settings-tester.pl</command> does not help you\r
                                                find the problem, please do not make any significant changes to your\r
                                                configuration.</para>\r
@@ -1574,11 +1662,11 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                version 3.0 and later on Ubuntu and Debian distributions).</para>\r
                                <para>As the <systemitem class="username">root</systemitem> user, start the Staff Client\r
                                as shown:</para>\r
-                               <screen>\r
-                                       <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        xulrunner /home/opensrf/Evergreen-ILS-v/Open-ILS/xul/staff_client/build/application.ini</userinput>\r
-                               </screen>\r
+</screen>\r
                                <para>A login screen for the Staff Client similar to this should appear:</para>\r
                                <mediaobject>\r
                                        <alt>Logging into the Staff Client</alt>\r
@@ -1622,11 +1710,11 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                commands. Note the use of <emphasis>restart</emphasis> to force the new Evergreen\r
                                modules to be reloaded even if the Apache server is already running. Any problems found\r
                                with your configuration files should be displayed:</para>\r
-                               <screen>\r
-                                       <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the root user:\r
        apache2ctl configtest &amp;&amp; /etc/init.d/apache2 restart</userinput>\r
-                               </screen>\r
+</screen>\r
                        </simplesect>\r
                        <simplesect xml:id="serversideinstallation-stopping">\r
                                <title>Stopping Evergreen</title>\r
@@ -1635,12 +1723,12 @@ perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
                                Evergreen services.</para>\r
                                <para>As the <systemitem class="username">opensrf</systemitem> user, stop all Evergreen\r
                                services by using the following command:</para>\r
-                               <screen>\r
-                                       <userinput>\r
+<screen>\r
+       <userinput>\r
        # as the opensrf user\r
        #   stop the server; use "-l" to force hostname to be "localhost"\r
        osrf_ctl.sh -l -a stop_all</userinput>\r
-                               </screen>\r
+</screen>\r
                                <note>You can also stop Evergreen services <emphasis role="bold">without</emphasis> the\r
                                <option>-l</option> flag, but the <command>osrf_ctl.sh</command> utility must know the\r
                                fully qualified domain name for the system on which it will execute. That hostname may\r