User Tools

Site Tools


installing_from_source_on_debian

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
installing_from_source_on_debian [2008/03/26 09:45]
morten info about dummy nav package
installing_from_source_on_debian [2011/06/24 08:05] (current)
vegardv [Installing dependencies]
Line 3: Line 3:
  
 Versions used: Versions used:
-^ Debian | 4.0 (Etch) | +^ Debian | 5.0 (//Lenny//) | 
-^ NAV    | 3.3.0-rc1 ​  | +^ NAV    | 3.7             |
  
  
 ===== Installing dependencies ===== ===== Installing dependencies =====
 +
 +Make sure you have the //​non-free//​ archive present in your
 +''​sources.list'':​
 +
 +<​code>​
 +deb http://​ftp.no.debian.org/​debian/​ lenny main contrib non-free
 +deb-src http://​ftp.no.debian.org/​debian/​ lenny main contrib non-free
 +
 +deb http://​security.debian.org/​ lenny/​updates main contrib non-free
 +deb-src http://​security.debian.org/​ lenny/​updates main contrib non-free
 +</​code>​
 +
 Install NAV's runtime dependencies:​ Install NAV's runtime dependencies:​
 +
 <​code>​ <​code>​
-sudo aptitude install perl python ​java-virtual-machine ​apache2-mpm-prefork \ +sudo aptitude install perl python ​sun-java6-jdk apache2-mpm-prefork \ 
-                      cricket ​php4-gd php4-pgsql ​postgresql-8.1 tomcat5.5 \ +                      cricket postgresql-8.libapache2-mod-python \ 
-                      libapache2-mod-php4 ​libapache2-mod-python ​libpgjava ​+                      libpg-java libsnmp1.4-java python-pysnmp2 ​logrotate ​
-                      libpg-perl libnetaddr-ip-perl libdbd-pg-perl \ +       ​python-cheetah ​python-xmpp python-django \ 
-                      ​libsnmp1.4-java ​libsnmp-session-perl ​python-pysnmp2 \ +       ​python-egenix-mxdatetime ​python-gammu python-ipy ​
-                      ​logrotate ​python-cheetah python-egenix-mxdatetime \ +                      python-ldap python-psycopg2 ​python-pyrad 
-                      python-forgethtml ​python-forgetsql ​python-gammu +       ​python-pysnmp-se python-twisted ​python-twisted-snmp ​
-                      python-ipy python-ldap python-psycopg ​python-rrd +       python-rrd rrdtool ​samba-common
-                      ​makepasswd wwwconfig-common ​samba-common+
 </​code>​ </​code>​
  
-**OR**, check out Morten Werner Forsbring'​s dummy NAV package, which depends on all of the above. ​ See the following nav-users posting for details: https://postlister.uninett.no/sympa/arc/nav-users/2008-02/msg00001.html+Be aware that NAV doesn'​t run well under the //kaffe// Java VM, which is why you should confirm that Sun's Java JDK is installed (''​sun-java6-jdk''​) and is the active alternative for the ''​java''​ and ''​javac''​ commands: 
 + 
 +<​code>​ 
 +sudo update-alternatives --config java 
 +sudo update-alternatives ​--config javac 
 +</code>
  
 Next, NAV's build time dependencies:​ Next, NAV's build time dependencies:​
  
 <​code>​ <​code>​
-sudo aptitude install ​FIXME+sudo aptitude install ​ant autoconf automake libsnmp1.4-java python python-cheetah sun-java5-jdk make
 </​code>​ </​code>​
  
 ===== Unpacking and building NAV ===== ===== Unpacking and building NAV =====
 <​code>​ <​code>​
-tar xvzf nav-3.3.0_rc1.tar.gz +tar xvzf nav-3.7.0.tar.gz 
-cd nav-3.3.0_rc1 +cd nav-3.7.0 
-autoconf +./​configure ​CRICKETDIR=/​usr/​share/​cricket 
-./​configure +export CLASSPATH=/​usr/​share/​java/​libsnmp-1.4.jar
-export CLASSPATH=/​usr/​share/​java/​libsnmp-1.4.jar:/​usr/​share/​java/​postgresql.jar:/​usr/​share/​java/​servlet-api.jar+
 make make
 sudo make install sudo make install
 </​code>​ </​code>​
- +Note: avoid using -j when calling make. It will break the build, since make tries to run many ant processes with interdependencies at the same time.
- +
  
  
 ===== Installing and initializing the database schema ===== ===== 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:+Edit ''/​etc/​postgresql/​8.3/​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:
 <​code>​ <​code>​
 local   ​all ​        ​postgres ​                         ident sameuser local   ​all ​        ​postgres ​                         ident sameuser
Line 55: Line 68:
 </​code>​ </​code>​
  
-Then reload ​PosttgreSQL ​to make the changes effective:+Then reload ​PostgreSQL ​to make the changes effective:
 <​code>​ <​code>​
-sudo invoke-rc.d postgresql-8.reload+sudo invoke-rc.d postgresql-8.reload
 </​code>​ </​code>​
  
 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''​. 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:+To create the PostgreSQL ​user and database:
 <​code>​ <​code>​
-sudo -u postgres bash 
 # The following command will prompt for a password for the new database user. # The following command will prompt for a password for the new database user.
 # Pick one of your own choosing. ​ # Pick one of your own choosing. ​
-createuser --no-createrole --no-createdb ​--no-superuser --pwprompt nav +sudo -u postgres ./createdb.sh
-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 +
-</​code>​ +
- +
-Then initialize the schemas and data: +
-<​code>​ +
-# 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+
 </​code>​ </​code>​
  
 :!: 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''​. :!: 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 ===== +===== Fixing Python ​library path ===== 
-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:+We do this because we don't install the libraries to the systemwide Python library directories ​by default.  We do however want them available for use systemwide:
 <​code>​ <​code>​
-sudo bash -c 'cat << EOF > /usr/​local/​lib/python2.4/​site-packages/​sitecustomize.py+sudo bash -c 'cat << EOF >> /etc/python2.5/​sitecustomize.py 
 import sys import sys
 __navpath = "/​usr/​local/​nav/​lib/​python"​ __navpath = "/​usr/​local/​nav/​lib/​python"​
Line 104: Line 99:
  
  
-===== Fixing Java =====+===== Fixing Java libraries ​=====
 <​code>​ <​code>​
-cd /​var/​lib/​tomcat5.5/​webapps 
-sudo ln -s /​usr/​local/​nav/​apache/​webapps/​*.war . 
- 
 cd /​usr/​local/​nav/​lib/​java cd /​usr/​local/​nav/​lib/​java
 sudo ln -s /​usr/​share/​java/​postgresql.jar sudo ln -s /​usr/​share/​java/​postgresql.jar
 sudo ln -s /​usr/​share/​java/​libsnmp-1.4.jar sudo ln -s /​usr/​share/​java/​libsnmp-1.4.jar
-</​code>​ 
- 
-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: 
-<​code>​ 
-CATALINA_OPTS="​-Djava.awt.headless=true -Xmx128M -server -Djava.ext.dirs=/​usr/​local/​nav/​lib/​java"​ 
-TOMCAT5_SECURITY=no 
-</​code>​ 
- 
-Then run the following: 
-<​code>​ 
-sudo invoke-rc.d tomcat5.5 restart 
-</​code>​ 
- 
-===== Fixing Perl ===== 
-<​code>​ 
-cd /​usr/​share/​perl5 
-sudo ln -s /​usr/​local/​nav/​lib/​perl/​NAV* . 
 </​code>​ </​code>​
  
Line 160: Line 133:
  
 <​Location /> <​Location />
-    # Let NAV authorize all access to this location +    # Enable debugging on errors, if you like
-    PythonHeaderParserHandler nav.web ​+
     PythonDebug on     PythonDebug on
 </​Location>​ </​Location>​
Line 170: Line 142:
 sudo a2dissite default sudo a2dissite default
 sudo a2ensite default-nav sudo a2ensite default-nav
-sudo a2enmod php4 
 sudo a2enmod mod_python sudo a2enmod mod_python
 sudo invoke-rc.d apache2 force-reload sudo invoke-rc.d apache2 force-reload
 </​code>​ </​code>​
- 
- 
  
 ===== Cleaning up and configuring ===== ===== Cleaning up and configuring =====
Line 190: Line 159:
  
 Edit ''/​usr/​local/​nav/​etc/​nav.conf'',​ set your ''​ADMIN_MAIL''​ and ''​DOMAIN_SUFFIX''​ options. Edit ''/​usr/​local/​nav/​etc/​nav.conf'',​ set your ''​ADMIN_MAIL''​ and ''​DOMAIN_SUFFIX''​ options.
 +Also set ''​DJANGO_DEBUG=True''​ if you want complete error information when stuff goes awry in the web interface.
  
 Optionally make the nav process control command more available: ''​sudo ln -s /​usr/​local/​nav/​bin/​nav /​usr/​sbin/​nav''​ Optionally make the nav process control command more available: ''​sudo ln -s /​usr/​local/​nav/​bin/​nav /​usr/​sbin/​nav''​
  
-FIXME Some cricket-related integration issues need to be documented here!+ 
 +===== Initialize Cricket configuration ===== 
 + 
 +Cricket should already be installed as it is a part of the runtime dependencies.  
 + 
 +Remove ''/​etc/​cron.d/​cricket''​ or comment out the active cron job line in the file. 
 + 
 +Create a directory to place the nav cricket-config: 
 +<​code>​sudo mkdir /​usr/​local/​nav/​etc/​cricket-config</​code>​ 
 + 
 +Change owner to navcron:​nav 
 +<​code>​ 
 +sudo chown navcron:nav /​usr/​local/​nav/​etc/​cricket-config 
 +</​code>​ 
 + 
 +Edit the /​etc/​cricket/​cricket-conf.pl and set the configroot variable. At the same time, fix the logging. Cricket defaults to /​var/​log/​cricket as logdir. This directory is created on install, but the owner is cricket. Either create your own logdir and set the correct path ($gLogDir) in /​etc/​cricket/​cricket-conf.pl or change ownership of /​var/​log/​cricket to navcron. 
 +<​code>​ 
 +$gConfigRoot = "/​usr/​local/​nav/​etc/​cricket-config"​ 
 +$gLogDir = your/​log/​dir 
 +</​code>​ 
 + 
 +Copy /​usr/​local/​nav/​doc/​cricket/​cricket/​subtree-sets to /​etc/​cricket/​ 
 +<​code>​ 
 +cd /​etc/​cricket 
 +sudo cp /​usr/​local/​nav/​doc/​cricket/​cricket/​subtree-sets . 
 +</​code>​ 
 + 
 +As navcron, copy recursively /​usr/​local/​nav/​doc/​cricket/​cricket-config/​ to your cricket-config 
 +<​code>​ 
 +sudo -u navcron cp -r /​usr/​local/​nav/​doc/​cricket/​cricket-config /​usr/​local/​nav/​etc/​ 
 +</​code>​ 
 + 
 +Create a directory to store Cricket'​s data files, and give ''​navcron''​ ownership of that directory. 
 +<​code>​ 
 +sudo mkdir /​usr/​local/​nav/​var/​cricket-data 
 +sudo chown navcron /​usr/​local/​nav/​var/​cricket-data 
 +</​code>​ 
 + 
 +Go to the cricket-config directory and edit the "​Defaults"​ file. Replace the Datadir with the correct path to cricket-data. Don't forget the %auto-target-path% 
 +<​code>​ 
 +Target ​ --default-- 
 +    dataDir ​        = /​usr/​local/​nav/​var/​cricket-data/​%auto-target-path% 
 +</​code>​ 
 + 
 +Compile the cricket-config as navcron to create the cricket-database. 
 +<​code>​sudo -u navcron cricket-compile</​code>​ 
 + 
 +Run ''​mcc.py''​ to create config from the database. The first time, remember that the database should contain data before doing this. Also, it's a good idea to start ''​ipdevpoll''​ and let it run a good couple of minutes before making the cricket-config as it then will have gathered and stored information about devices and interfaces in the database. 
 +<​code>​ 
 +cd /​usr/​local/​nav/​bin 
 +sudo -u navcron ./mcc.py 
 +</​code>​ 
 + 
 +Now, start Cricket: 
 +<​code>​ 
 +cd /​usr/​local/​nav/​bin 
 +sudo ./nav start cricket 
 +</​code>​ 
 + 
 +==== Cricket Web ==== 
 + 
 +Create the cricket directory in apache/​webroot/​ 
 +<​code>​ 
 +cd /​usr/​local/​nav/​apache/​webroot 
 +sudo mkdir cricket 
 +</​code>​ 
 + 
 +Make a symlink to the cricket cgi-scripts and copy cricket.css from source. 
 +<​code>​ 
 +cd /​usr/​local/​nav/​apache/​webroot/​cricket 
 +sudo ln -s /​usr/​lib/​cgi-bin/​cricket/​grapher.cgi  
 +sudo ln -s /​usr/​lib/​cgi-bin/​cricket/​mini-graph.cgi 
 +sudo ln -s grapher.cgi index.cgi 
 +sudo ln -s /​usr/​share/​cricket/​images 
 +sudo cp /​usr/​local/​nav/​doc/​cricket/​public_html/​cricket.css . 
 +</​code>​ 
 + 
 +Create .htaccess-file to make sure mod_python doesn'​t handle this directory. 
 +<​code>​ 
 +sudo bash -c 'echo "​SetHandler none" > .htaccess'​ 
 +</​code>​ 
installing_from_source_on_debian.1206524753.txt.gz · Last modified: 2008/03/26 09:45 by morten