Ubuntu 6.06 - Dapper
From ZoneMinder
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.


