User Tools

Site Tools


installing_from_source_on_debian

This is an old revision of the document!


Installing NAV from source on Debian GNU/Linux

This is an attempt at a guide and a few helpful pointers for those who don't care to use the prepackaged NAV for Debian.

Versions used:

Debian 4.0 (Etch)
NAV 3.3.0-rc1

Installing dependencies

Install NAV's runtime dependencies:

sudo aptitude install perl python java-virtual-machine apache2-mpm-prefork \
                      cricket php4-gd php4-pgsql postgresql-8.1 tomcat5.5 \
                      libapache2-mod-php4 libapache2-mod-python libpgjava \
                      libpg-perl libnetaddr-ip-perl libdbd-pg-perl \
                      libsnmp1.4-java libsnmp-session-perl python-pysnmp2 \
                      logrotate python-cheetah python-egenix-mxdatetime \
                      python-forgethtml python-forgetsql python-gammu \
                      python-ipy python-ldap python-psycopg python-rrd \
                      makepasswd wwwconfig-common samba-common

And, of course, NAV's build time dependencies:

sudo aptitude install FIXME

Unpacking and building NAV

tar xvzf nav-3.3.0_rc1.tar.gz
cd nav-3.3.0_rc1
autoconf
./configure
export CLASSPATH=/usr/share/java/libsnmp-1.4.jar:/usr/share/java/postgresql.jar:/usr/share/java/servlet-api.jar
make
sudo make install

Installing and initializing the database schema

Edit /etc/postgresql/8.1/main/pg_hba.conf, change ident sameuser into md5 for local users connecting through UNIX sockets (except the postgres user). The file should look something like this:

local   all         postgres                          ident sameuser
local   all         all                               md5

host    all         all         127.0.0.1/32          md5
host    all         all         ::1/128               md5

Then reload PosttgreSQL to make the changes effective:

sudo invoke-rc.d postgresql-8.1 reload

While still in the NAV source code directory, cd to doc/sql. The following set of commands assume you have sudo access to run commands as the postgres system user. If not, please become the postgres user in some other way. The procedure has been adapted from doc/sql/README.

To create the set of PostgreSQL users and databases:

sudo -u postgres bash
# The following command will prompt for a password for the new database user.
# Pick one of your own choosing. 
createuser --no-createrole --no-createdb --no-superuser --pwprompt nav
createdb --owner nav --encoding UTF-8 manage
createdb --owner nav --encoding UTF-8 navprofiles
createdb --owner nav --encoding UTF-8 logger
createdb --owner nav --encoding UTF-8 arnold
createlang plpgsql manage
createlang plpgsql navprofiles

Then initialize the schemas and data:

# First, export the password you selected for the database user above:
export PGPASSWORD=<secretpassword>
psql -f manage.sql manage nav
psql -f types.sql manage nav
psql -f snmpoid.sql manage nav
psql -f navprofiles.sql navprofiles nav
psql -f logger.sql logger nav
psql -f arnold.sql arnold nav

:!: Then, take the password you chose for the database user and put this as the value to the userpw_nav option in /usr/local/nav/etc/db.conf.

Fixing Python

We do this because we don't install the libraries to the systemwide Python library directories. We do however want them available for use systemwide:

sudo bash -c 'cat << EOF > /usr/local/lib/python2.4/site-packages/sitecustomize.py
import sys
__navpath = "/usr/local/nav/lib/python"
if __navpath not in sys.path:
    sys.path.append(__navpath)
EOF
'

Fixing Java

cd /var/lib/tomcat5.5/webapps
sudo ln -s /usr/local/nav/apache/webapps/*.war .

cd /usr/local/nav/lib/java
sudo ln -s /usr/share/java/postgresql.jar
sudo ln -s /usr/share/java/libsnmp-1.4.jar

Change /etc/tomcat5.5/server.xml, the line that reads <Connector port=“8180” maxHttpHeaderSize=“8192”: alter port=“8180” to port=“8080”, as NAV expects Tomcat to listen to this port.

Change /etc/default/tomcat5.5, make sure the following two options are set like this:

CATALINA_OPTS="-Djava.awt.headless=true -Xmx128M -server -Djava.ext.dirs=/usr/local/nav/lib/java"
TOMCAT5_SECURITY=no

Then run the following:

sudo invoke-rc.d tomcat5.5 restart

Fixing Perl

cd /usr/share/perl5
sudo ln -s /usr/local/nav/lib/perl/NAV* .

Configuring Apache

Put this in /etc/apache2/sites-available/default-nav:

ServerName nav.example.com
ServerAdmin webmaster@example.com

DirectoryIndex index.html index.html index.php index.cgi index.py
AccessFileName .htaccess
AddDefaultCharset UTF-8
AddHandler cgi-script .cgi

DocumentRoot /usr/local/nav/apache/webroot
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<Directory "/usr/local/nav/apache/webroot">
    Options Indexes FollowSymLinks ExecCGI 
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

LogLevel warn

<Location />
    # Let NAV authorize all access to this location
    PythonHeaderParserHandler nav.web 
    PythonDebug on
</Location>

Then run the following commands:

sudo a2dissite default
sudo a2ensite default-nav
sudo a2enmod php4
sudo a2enmod mod_python
sudo invoke-rc.d apache2 force-reload

Cleaning up and configuring

Create groups and users, and set proper permissions:

sudo addgroup --system nav
sudo adduser --system --no-create-home --home /usr/local/nav \
             --shell /bin/sh --ingroup nav navcron;
sudo addgroup navcron dialout

cd /usr/local/nav/var
sudo chown -R navcron:nav .

Edit /usr/local/nav/etc/nav.conf, set your ADMIN_MAIL and DOMAIN_SUFFIX options.

Optionally make the nav process control command more available: sudo ln -s /usr/local/nav/bin/nav /usr/sbin/nav

installing_from_source_on_debian.1191239901.txt.gz · Last modified: 2007/10/01 11:58 by morten