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 [2007/09/18 09:03]
morten
installing_from_source_on_debian [2011/06/24 08:05] (current)
vegardv [Installing dependencies]
Line 1: Line 1:
 ====== Installing NAV from source on Debian GNU/Linux ====== ====== 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. ​ The versions ​used here are //Debian ​Etch// and //NAV 3.3.0-rc1//.+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 ​| 5.0 (//Lenny//) | 
 +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>​
  
-And, of course, ​NAV'​s ​build time dependencies:+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>​ <​code>​
-sudo aptitude install ​FIXME+sudo update-alternatives --config java 
 +sudo update-alternatives --config javac 
 +</​code>​ 
 + 
 +Next, NAV's build time dependencies:​ 
 + 
 +<​code>​ 
 +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 =====
-While still in the NAV source code directory.+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>​ 
 +local   ​all ​        ​postgres ​                         ident sameuser 
 +local   ​all ​        ​all ​                              md5
  
-  * FIXME follow doc/sql/README +host    all         ​all ​        ​127.0.0.1/32          md5 
-  * 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) +host    all         ​all ​        ::1/128               md5 
-  ​''​sudo ​invoke-rc.d postgresql-8.1 reload''​+</code> 
 + 
 +Then reload PostgreSQL to make the changes effective:​ 
 +<​code>​ 
 +sudo invoke-rc.d ​postgresql-8.3 reload 
 +</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 notplease become the ''​postgres'' ​user in some other way.  The procedure has been adapted from ''​doc/​sql/​README''​
 + 
 +To create the PostgreSQL user and database: 
 +<​code>​ 
 +# The following command will prompt for a password ​for the new database user. 
 +# Pick one of your own choosing.  
 +sudo -u postgres ​./​createdb.sh 
 +</​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''​. 
 + 
 +===== Fixing Python library path ===== 
 +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>​ 
 +sudo bash -c 'cat << EOF >> /​etc/​python2.5/​sitecustomize.py 
 + 
 +import sys 
 +__navpath = "/​usr/​local/​nav/​lib/​python"​ 
 +if __navpath not in sys.path: 
 +    sys.path.append(__navpath) 
 +EOF 
 +' 
 +</​code>​ 
 + 
 + 
 + 
 +===== Fixing Java libraries ===== 
 +<​code>​ 
 +cd /​usr/​local/​nav/​lib/​java 
 +sudo ln -s /​usr/​share/​java/​postgresql.jar 
 +sudo ln -s /​usr/​share/​java/​libsnmp-1.4.jar 
 +</​code>​
  
 ===== Configuring Apache ===== ===== Configuring Apache =====
Line 67: 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 77: 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 =====
 +Create groups and users, and set proper permissions:​
 +<​code>​
 +sudo addgroup --system nav
 +sudo adduser --system --no-create-home --home /​usr/​local/​nav \
 +             ​--shell /bin/sh --ingroup nav navcron;
 +sudo addgroup navcron dialout
  
-===== Installing NAV Java components ​=====+cd /​usr/​local/​nav/​var 
 +sudo chown -R navcron:nav . 
 +</​code>​ 
 + 
 +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''​ 
 + 
 + 
 +===== 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>​ <​code>​
-cd /​var/​lib/​tomcat5.5/​webapps +sudo chown navcron:​nav ​/​usr/​local/​nav/​etc/cricket-config 
-sudo ln -s /​usr/​local/​nav/​apache/webapps/*.war .+</code>
  
-cd /usr/local/nav/lib/java +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
-sudo ln -s /usr/share/java/postgresql.jar +<​code>​ 
-sudo ln -s /usr/share/java/libsnmp-1.4.jar+$gConfigRoot = "/usr/local/nav/etc/cricket-config"​ 
 +$gLogDir = your/​log/​dir
 </​code>​ </​code>​
  
-Change ''​/etc/tomcat5.5/web.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.  Then run the following:+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 filesand 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>​ <​code>​
-sudo invoke-rc.d tomcat5.5 restart+sudo bash -c 'echo "​SetHandler none" > .htaccess'​
 </​code>​ </​code>​
  
installing_from_source_on_debian.1190106202.txt.gz · Last modified: 2007/09/18 09:03 by morten