CentOS 6.8

CentOS 6.8 Installation

Introduction

Please check that the assumptions and requirements documented in the installation overview have been suitably completed.

Pre-Requisites

Install the necessary dependencies (via yum if available):

yum install httpd 'perl(CGI)' 'perl(CGI::Session)' 'perl(CGI::Cookie)' \
    'perl(HTTP::Cookies)' 'perl(MIME::Types)' 'perl(DBI)' \
    'perl(JSON)' 'perl(Digest::MD5)' 'perl(Time::HiRes)' \
    'perl(Clone)' mod_perl \
    perl-IO-String.noarch

yum install gcc

If yum is not available on this platform, you must manually obtain the following packages to satisfy the dependency requirements for Jarvis, Oracle Instant Client, and N2FE itself.

This list of packages assumes that you have used the “Minimum” installation option. If you have used another installation option, you may find that some of these packages are already installed.

These filenames are the latest versions available at the time of writing this documentation. If new versions are available when installing, it should be safe to use those later versions instead.

You will require the following packages from the official CentOS 6.8 Repository:

rpm -Uvh \
    apr-1.3.9-5.el6_2.x86_64.rpm \
    apr-util-1.3.9-3.el6_0.1.x86_64.rpm \
    apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm \
    cloog-ppl-0.15.7-1.2.el6.x86_64.rpm \
    cpp-4.4.7-17.el6.x86_64.rpm \
    db4-cxx-4.7.25-20.el6_7.x86_64.rpm \
    db4-devel-4.7.25-20.el6_7.x86_64.rpm \
    gcc-4.4.7-17.el6.x86_64.rpm \
    gdbm-devel-1.8.0-39.el6.x86_64.rpm \
    glibc-devel-2.12-1.192.el6.x86_64.rpm \
    glibc-headers-2.12-1.192.el6.x86_64.rpm \
    httpd-2.2.15-53.el6.centos.x86_64.rpm \
    httpd-tools-2.2.15-53.el6.centos.x86_64.rpm \
    kernel-headers-2.6.32-642.el6.x86_64.rpm \
    libgomp-4.4.7-17.el6.x86_64.rpm \
    mailcap-2.1.31-2.el6.noarch.rpm \
    mpfr-2.4.1-6.el6.x86_64.rpm \
    mod_perl-2.0.4-11.el6_5.x86_64.rpm \
    perl-5.10.1-141.el6_7.1.x86_64.rpm \
    perl-BSD-Resource-1.29.03-3.el6.x86_64.rpm \
    perl-CGI-3.51-141.el6_7.1.x86_64.rpm \
    perl-CGI-Session-4.35-6.el6.noarch.rpm \
    perl-Clone-0.31-3.1.el6.x86_64.rpm \
    perl-Compress-Raw-Zlib-2.021-141.el6_7.1.x86_64.rpm \
    perl-Compress-Zlib-2.021-141.el6_7.1.x86_64.rpm \
    perl-DBD-Pg-2.15.1-4.el6_3.x86_64.rpm \
    perl-DBI-1.609-4.el6.x86_64.rpm \
    perl-devel-5.10.1-141.el6_7.1.x86_64.rpm \
    perl-ExtUtils-MakeMaker-6.55-141.el6_7.1.x86_64.rpm \
    perl-ExtUtils-ParseXS-2.2003.0-141.el6_7.1.x86_64.rpm \
    perl-FreezeThaw-0.45-5.el6.noarch.rpm \
    perl-HTML-Parser-3.64-2.el6.x86_64.rpm \
    perl-HTML-Tagset-3.20-4.el6.noarch.rpm \
    perl-IO-Compress-Base-2.021-141.el6_7.1.x86_64.rpm \
    perl-IO-Compress-Zlib-2.021-141.el6_7.1.x86_64.rpm \
    perl-JSON-2.15-5.el6.noarch.rpm \
    perl-libs-5.10.1-141.el6_7.1.x86_64.rpm \
    perl-libwww-perl-5.833-3.el6.noarch.rpm \
    perl-MIME-Types-1.28-2.el6.noarch.rpm \
    perl-Module-Pluggable-3.90-141.el6_7.1.x86_64.rpm \
    perl-Pod-Escapes-1.04-141.el6_7.1.x86_64.rpm \
    perl-Pod-Simple-3.13-141.el6_7.1.x86_64.rpm \
    perl-Test-Harness-3.17-141.el6_7.1.x86_64.rpm \
    perl-Test-Simple-0.92-141.el6_7.1.x86_64.rpm \
    perl-TimeDate-1.16-13.el6.noarch.rpm \
    perl-URI-1.40-2.el6.noarch.rpm \
    perl-version-0.77-141.el6_7.1.x86_64.rpm \
    perl-XML-Parser-2.36-7.el6.x86_64.rpm \
    postgresql-libs-8.4.20-6.el6.x86_64.rpm \
    ppl-0.10.2-11.el6.x86_64.rpm \
    perl-IO-String-1.08-1.2.el6.rfx.noarch.rpm

In addition, you will need to install the following packages which are not available from the official CentOS repository. You will need to obtain these from RpmFind.Net:

rpm -Uvh perl-XML-Smart-1.6.9-1.el6.rf.noarch.rpm \
    perl-Object-MultiType-0.05-3.el6.noarch.rpm \
    perl-Digest-SHA1-2.12-2.el6.x86_64.rpm \
    perl-Apache-DBI-1.09-1.el6.noarch.rpm \
    perl-Carp-Always-0.09-2.el6.noarch.rpm \
    perl-Data-Structure-Util-0.15-1.el6.rf.x86_64.rpm \
    perl-LWP-Protocol-https-6.04-4.el7.noarch.rpm \
    perl-Text-CSV-1.21-1.el6.rf.noarch.rpm

Oracle Installation

N2FE has dependencies on the Oracle Instant Client. To install the client, download the Linux instant client packages from this URL:

http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

Once downloaded, install via RPM:

rpm -Uvh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm \
    oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm \
    oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

Oracle Perl DB Driver

For licensing reasons, the Oracle DB driver for Perl must be built for the platform on the platform itself. To install, retrieve the latest version of the Perl DBD::Oracle driver from: http://search.cpan.org/CPAN/authors/id/M/MJ/MJEVANS/.

Note that a slightly earlier version (1.74) is available from the historical owner of this package at http://search.cpan.org/CPAN/authors/id/P/PY/PYTHIAN/. If necessary, the v1.74 release may be used instead.

Then build and install on the target platform as follows:

export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

ln -s /usr/share/oracle/12.1/client64/demo/demo.mk /usr/share/oracle/12.1/client64/

cd /path/to/dbd/oracle/package
tar zvfx DBD-Oracle-1.75_2.tar.gz
cd DBD-Oracle-1.75_2
perl Makefile.PL
make install

Note that these instructions are abridged from the DBD::Oracle package documentation. If these instructions do not generate a successfully built and installed DBD::Oracle driver, consult the package instructions, or contact N-Squared.

If your shell’s umask is not 0022, ensure that the permissions on this directory and its children are 755:

/usr/local/lib64/perl5

e.g.

chmod -R 755 /usr/local/lib64/perl5

You will need to add this to the list of shared library paths used by Apache, so that Apache HTTPD can find the Oracle shared libraries.

echo /usr/lib/oracle/12.1/client64/lib > /etc/ld.so.conf.d/oracle.conf
ldconfig

If you are using mod_perl (recommended for best performance) with SElinux enabled (not recommended but may be required by site policies) then you must grant Apache HTTPD the necessary authorizations required to load the Oracle shared libraries and to connect to external databases.

apachectl stop
setsebool -P httpd_execmem 1
setsebool -P httpd_can_network_connect on
apachectl start

Set up Apache

In the Apache2 configuration, configure the ServerName variable to be the name of the host:

vi /etc/httpd/conf/httpd.conf

Open up port 80 in iptables (if necessary).

iptables -I INPUT 5 -i eth0 -p tcp -m state --state NEW --dport 80 -j ACCEPT
/sbin/service iptables save 

Install & Configure Jarvis

The Jarvis framework is a lightweight, single-package installation which provides a RESTful API for serving data to the web-client application. The installation package for Jarvis can be obtained from N-Squared’s support site, here, and the following are abridged installation instructions for Jarvis. For full installation instructions, please see the Jarvis installation guide.

If not already manually installed above, retrieve the dependencies for Jarvis from RpmFind.Net and then install them:

rpm -Uvh perl-XML-Smart-1.6.9-1.el6.rf.noarch.rpm \
    perl-Object-MultiType-0.05-3.el6.noarch.rpm \
    perl-Digest-SHA1-2.12-2.el6.x86_64.rpm \
    perl-Apache-DBI-1.09-1.el6.noarch.rpm \
    perl-Carp-Always-0.09-2.el6.noarch.rpm \

Then, install Jarvis. To install the current latest version:

rpm -Uvh jarvis-6.3.8-1.noarch.rpm

Install N2FE

Once all pre-requisites are installed as described above, the n2fe package is to be installed. The package will be named with the version included in the file name - for example n2fe-3.1.0-1.noarch.rpm, where 3.1.0 is the version number.

rpm -Uvh n2fe-3.1.0-1.noarch.rpm

Once installed, follow the post-installation configuration instructions.