Installation - Red Hat and CentOS
Package
Jarvis is available in RPM package format compatible with most modern Red Hat-based distributions. The following instructions should be accurate for:
- Red Hat Enterprise 6.8, 7, and 8
- CentOS 6.8 & 7
For other distributions including earlier versions of Red Hat Enterprise or CentOS, you may need to install additional packages to resolve dependencies.
The Jarvis RPM package can be installed with the rpm command, e.g:
rpm -Uvh jarvis-6.0.10-1.noarch.rpm
This will likely fail due to dependencies, which can be resolved by following the instructions in the next section. Once installed, the following directory locations will be populated:
Path | Notes |
---|---|
/usr/share/jarvis/cgi-bin |
This contains agent.pl , which is the CGI script which accepts requests over http /https when not using mod_perl . This is a simple bootstrap program. Most of the functionality is in the lib/Jarvis/*.pm files in the lib directory. |
/usr/share/jarvis/demo |
Contains demo files which comprise a simple application showing how to use Jarvis with ExtJS and SQLite. |
/usr/share/doc/jarvis |
Documentation including this file. |
/usr/share/jarvis/htdocs |
This contains a helper JavaScript include file for use with ExtJS. |
/usr/share/jarvis/lib |
Contains the majority of the Jarvis functionality as Perl modules. |
/etc/jarvis |
Your application top-level configuration XML files will go here. |
/etc/jarvis/apache |
Apache configuration files. |
Mandatory Dependencies
You will need use the yum
or dnf
package managers to resolve the following mandatory dependencies (if they are not already installed).
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(XML::LibXML)'
You will also need a package to provide perl(CGI::Session)
, which can be retrieved from CPAN.
See https://metacpan.org/pod/CGI::Session for more information.
cpan install CGI::Session
Optional Dependencies
The following additional dependencies are required in specific cases.
To run the demo application:
yum install 'perl(DBD::SQLite)'
To run Jarvis under Apache mod_perl
under CentOS 6.8:
yum install mod_perl
cpan install Apache2::DBI
To run Jarvis under Apache mod_perl
under CentOS 7:
yum install epel-release
yum install mod_perl
cpan install Apache2::DBI
To use Database Login or eksblowfish
Authentication:
See http://search.cpan.org/~zefram/Crypt-Eksblowfish/lib/Crypt/Eksblowfish.pm for more information.
cpan install Crypt::Eksblowfish
To use LDAP or ActiveDirectory Login:
yum install 'perl(Net::LDAP)'
To use OAuth2 Login:
yum install 'perl(JSON::XS)' 'perl(JSON::WebToken)'
To use Microsoft SSAS sdp
Database type:
yum install 'perl(SOAP::Lite)'
To use CSV formatting for responses:
See http://search.cpan.org/~makamaka/Text-CSV-1.33/ for more information.
yum install 'perl(IO::String)'
cpan install Text::CSV
To use XLSX formatting for responses:
See http://search.cpan.org/~jmcnamara/Excel-Writer-XLSX-0.95/ for more information.
cpan install Excel::Writer::XLSX
Additionally available DB Drivers:
yum install 'perl(DBD::Pg)'
Apache Configuration - Without mod_perl
If performance is not a significant factor, you can simply run Jarvis as a CGI script.
The RPM package performs this configuration automatically:
cp /usr/share/jarvis/etc/jarvis/apache/jarvis.conf /etc/httpd/conf.d/jarvis.conf
If using Apache 2.4, you are likely to need to remove some restrictions. Firstly, grant access to the appropriate directory for Jarvis. In /etc/apache2/conf-available/jarvis.conf
, adding:
<Directory /usr/share/jarvis/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
You may need to restart the Apache webserver, and provide access to it remotely:
sudo systemctl enable httpd.service
systemctl start httpd.service
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload