Forums
  News| Documentation| Screenshots| Downloads| Support| Forums| Wiki| Shop| Search| Donate| ContactHome

Ubuntu 6.06 - Dapper

From ZoneMinder

Jump to: navigation, search

Hi, I've just completed an installation of Zoneminder on Ubuntu dapper and thought some of you might be interested in the steps I did: http://www.zoneminder.com/forums/viewtopic.php?t=6670&sid=5e992b469e119cb069842d103a5bef47

See also: http://www.zoneminder.com/wiki/index.php/Ubuntu_6.06_-_Alternate


Remove the commenting out of the 'universe' repositories from /etc/apt/sources.list


Pre install tasks


sudo apt-get install make

sudo apt-get install apache2

sudo apt-get install php5

sudo apt-get install php5-mysql

sudo apt-get install libapache2-mod-auth-mysql

sudo apt-get install mysql-server

sudo apt-get install g++

sudo apt-get install libdate-manip-perl

sudo apt-get install libmysqlclient12-dev

sudo apt-get install libcurl3-openssl-dev

sudo apt-get install libjpeg-mmx-dev

sudo apt-get install liblwp-protocol-http-socketunix-perl

wget http://www2.zoneminder.com/downloads/ZoneMinder-1.22.2.tar.gz

tar -xvzf ZoneMinder-1.22.2.tar.gz

cd ./ZoneMinder-1.22.2


Installation Tasks


./configure --with-webdir=/var/www/zm --with-cgidir=/usr/lib/cgi-bin --with-webuser=www-data --with-webgroup=www-data

at this point I get errors from /usr/lib/libavformat.a, dc1394.o, off.o, dtsdec.o, oggvorbis.o, oggtheora.o, and libgsm.o

mysql mysql < db/zm_create.sql

mysql mysql

mysql> grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass';

mysql> quit

mysqladmin reload

make install


Post Installation


This next step is meant to make Zoneminder start on boot up however, it doesn't do that yet. If anyone knows how to do this, could they modify these instructions.

cp ./ZoneMinder-1.22.2/scripts/zm /etc/init.d/zm

chmod +x /etc/init.d/zm

sudo update-rc.d zm defaults


There seem to be a few typos in the script that you copy into /etc/init.d.

sudo gedit /etc/init.d/zm

The first few lines should be changed to appear as so:

#!/bin/sh
# description: Control ZoneMinder as a Service
# chkconfig: 2345 99 00
# Source function library.
#. /etc/rc.d/init.d/functions

(note: I have not tried this part yet, I'm still working on it)


edit:

replace your start up script with this one by copying the one below.


#!/bin/sh
# description: Control ZoneMinder as a Service
# chkconfig: 2345 99 00
# Source function library.
#. /etc/rc.d/init.d/functions

prog=ZoneMinder
ZM_VERSION="1.22.2"
ZM_PATH_BIN="/usr/local/bin"
ZM_CONFIG="/usr/local/etc/zm.conf"
command="$ZM_PATH_BIN/zmpkg.pl"

loadconf()
{
	if [ -f $ZM_CONFIG ]; then
		. $ZM_CONFIG
	else
		echo "ERROR: $ZM_CONFIG not found."
		return 1
	fi
}

# Check for old config and update if needed
checkcfg()
{
	# Check config
	if [ "$ZM_DB_HOST" = "" -o "$ZM_DB_NAME" = "" -o "$ZM_DB_USER" = "" -o "$ZM_DB_PASS" = "" ]; then
		if [ "$ZM_DB_SERVER" != "" -a "$ZM_DB_NAME" != "" -a "$ZM_DB_USERA" != "" -a "$ZM_DB_PASSA" != "" ]; then
			echo -n "Converting $ZM_CONFIG"
			cp $ZM_CONFIG $ZM_CONFIG.old && \
			cat $ZM_CONFIG.old | \
				grep -v ZM_DB_USERB | \
				grep -v ZM_DB_PASSB | \
				sed -e 's/ZM_DB_USERA/ZM_DB_USER/' | \
				sed -e 's/ZM_DB_PASSA/ZM_DB_PASS/' >$ZM_CONFIG && \
			rm -f $ZM_CONFIG.old
			RETVAL=$?
			[ $RETVAL = 0 ] && echo_success
			[ $RETVAL != 0 ] && echo_failure
			echo
		fi
		if [ "$ZM_DB_SERVER" != "" -a "$ZM_DB_NAME" != "" -a "$ZM_DB_USER" != "" -a "$ZM_DB_PASS" != "" ]; then
			echo -n "Converting $ZM_CONFIG to 1.22.0"
			cp $ZM_CONFIG $ZM_CONFIG.old
			rm -f $ZM_CONFIG
			cat $ZM_CONFIG.old | \
			sed -e 's/ZM_DB_SERVER/ZM_DB_HOST/' >/tmp/$$
			. /tmp/$$
			cp $ZM_CONFIG.rpmnew $ZM_CONFIG && chmod 644 $ZM_CONFIG
			for n in ZM_DB_HOST ZM_DB_NAME ZM_DB_USER ZM_DB_PASS; do
				eval "val=\$$n"
				if [ "$val" != "" ]; then
				cp $ZM_CONFIG /tmp/$$.rpmnew &&
				sed 's/^'$n='.*$/'$n=$val'/g' /tmp/$$.rpmnew >$ZM_CONFIG
				fi
			done
			rm /tmp/$$ 
			RETVAL=$?
			[ $RETVAL = 0 ] && echo_success
			[ $RETVAL != 0 ] && echo_failure
			echo
		else
			echo "In $ZM_CONFIG there should not be null values."
			return 1
		fi
	loadconf
	fi
}

checkdb()
{
	# Check database exisits and version
	GetVer="select Value from Config where Name='ZM_DYN_DB_VERSION'"
	OLD_VERSION=`echo $GetVer | mysql -B -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v '^Value'`
	if [ "$OLD_VERSION" = "" ]; then
		GetVer="select Value from Config where Name='ZM_DYN_CURR_VERSION'"
		OLD_VERSION=`echo $GetVer | mysql -B -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v '^Value'`
		if [ "$OLD_VERSION" = "" ]; then
			echo -n "You must run zmupdate.pl manualy"
			return 1
		fi	
	fi
	RETVAL=$?
	
	if [ $RETVAL != 0 ]; then
		tbls=`mysql -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS -s -e 'show tables' $ZM_DB_NAME`
		RETVAL=$?
		if [ $RETVAL = 0 ]; then
			echo -n "Initialize $prog database: "
			echo tbls | grep Config >/dev/null 2>&1
			RETVAL=$?
			if [ $RETVAL != 0 ]; then
				mysql -B -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME < $ZM_PATH_UPDATE/zm_create.sql 
				RETVAL=$?
				[ $RETVAL = 0 ] && echo_success
				[ $RETVAL != 0 ] && echo_failure
				echo
				return $RETVAL
			fi
			( cd $ZM_PATH_UPDATE; perl $ZM_PATH_BIN/zmupdate.pl -f )
			RETVAL=$?
			[ $RETVAL = 0 ] && echo_success
			[ $RETVAL != 0 ] && echo_failure
			echo
			return $RETVAL
		else
			echo "No access to ZoneMinder database. Run $ZM_PATH_BIN/zminit manually."
			return $RETVAL
		fi
	else
		[ "$ZM_VERSION" = "$OLD_VERSION" ] && return 0
		echo -n "Upgrade $prog database: "
		$ZM_PATH_BIN/zmupdate.pl --version=$OLD_VERSION --noi && ( cd $ZM_PATH_UPDATE; perl $ZM_PATH_BIN/zmupdate.pl -f )
		RETVAL=$?
		[ $RETVAL = 0 ] && echo_success
		[ $RETVAL != 0 ] && echo_failure
		echo
		return $RETVAL
	fi
}

start()
{
	loadconf || return $?
	checkcfg || return $?
	checkdb || return $?
	#/usr/local/sbin/motd.sh > /etc/motd
	echo -n "Starting $prog: "
	[ ! -d /var/run/zm ] \
		&& mkdir -m 774 /var/run/zm \
		&& chown $ZM_WEB_USER:$ZM_WEB_GROUP /var/run/zm
	GetPath="select Value from Config where Name='ZM_PATH_SOCKS'"
	ZM_PATH_SOCK=`echo $GetPath | mysql -B -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v '^Value'`
	[ ! -d $ZM_PATH_SOCK ] \
		&& mkdir -m 774 $ZM_PATH_SOCK \
		&&chown $ZM_WEB_USER:$ZM_WEB_GROUP $ZM_PATH_SOCK
	$command start
	RETVAL=$?
	[ $RETVAL = 0 ] && echo success
	[ $RETVAL != 0 ] && echo failure
	echo
	[ $RETVAL = 0 ] && touch /var/lock/subsys/zm
	return $RETVAL
}

stop()
{
	echo -n $"Stopping $prog: "
	$command stop
	RETVAL=$?
	[ $RETVAL = 0 ] && echo success
	[ $RETVAL != 0 ] && echo failure
	echo
	[ $RETVAL = 0 ] && rm -f /var/lock/subsys/zm
}

status()
{
	result=`$command status`
	if [ "$result" = "running" ]; then
		echo "ZoneMinder is running"
		RETVAL=0
	else
		echo "ZoneMinder is stopped"
		RETVAL=1
	fi
}

case "$1" in
	'start')
		start
		;;
	'stop')
		stop
		;;
	'restart')
		stop
		start
		;;
	'condrestart')
		loadconf
		checkcfg
		result=`$ZM_PATH_BIN/zmdc.pl check`
		if [ "$result" = "running" ]; then
			$ZM_PATH_BIN/zmdc.pl shutdown > /dev/null
			start
		fi
		;;
	'status')
		status
		;;
	*)
		echo "Usage: $0 { start | stop | restart | condrestart | status }"
		RETVAL=1
		;;
esac
exit $RETVAL


then


sudo mkdir /var/lock/subsys/

chmod +x /etc/init.d/zm

sudo /etc/init.d/zm restart'


That's it.

 ©2006 Triornis Ltd News •  Documentation •  Screenshots •  Downloads •  Support •  Forums •  Wiki •  Shop •  Search •  Donate •  Contact •  Home