Vielen Dank an Stefan (alias timpi), der die folgende Anleitung verfasst hat!
Â
Voraussetzungen
Debian wheezy/sid auf einem externen Datenträger (SD-Karte oder, deutlich schneller, einem USB-Stick oder einer USB-Festplatte).
Vorbereitung
Installation der Entwicklungstools und Bibliotheken
# Build-Tools installieren
PACKAGE_LIST=""
PACKAGE_LIST=`echo ${PACKAGE_LIST} openssh-client`
PACKAGE_LIST=`echo ${PACKAGE_LIST} openssh-server`
PACKAGE_LIST=`echo ${PACKAGE_LIST} wget`
PACKAGE_LIST=`echo ${PACKAGE_LIST} bzip2`
PACKAGE_LIST=`echo ${PACKAGE_LIST} g++`
PACKAGE_LIST=`echo ${PACKAGE_LIST} flex`
PACKAGE_LIST=`echo ${PACKAGE_LIST} build-essential`
PACKAGE_LIST=`echo ${PACKAGE_LIST} php5-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libtool`
PACKAGE_LIST=`echo ${PACKAGE_LIST} pkg-config`
PACKAGE_LIST=`echo ${PACKAGE_LIST} uuid-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} gettext`
PACKAGE_LIST=`echo ${PACKAGE_LIST} zlib1g-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libldap2-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} automake`
PACKAGE_LIST=`echo ${PACKAGE_LIST} debhelper`
PACKAGE_LIST=`echo ${PACKAGE_LIST} bison`
# PACKAGE_LIST=`echo ${PACKAGE_LIST} libcurl4-nss-dev`
# PACKAGE_LIST=`echo ${PACKAGE_LIST} libcurl4-gnutls-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libcurl4-openssl-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libxml2-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libncurses5-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libboost-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libboost-system-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libboost-date-time-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libboost-filesystem-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} python-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libicu-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libboost-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libmysqlclient-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libxml2-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} php5-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libgsasl7-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libgnutls-dev`
PACKAGE_LIST=`echo ${PACKAGE_LIST} libclucene-dev`
apt-get -y --force-yes install $PACKAGE_LIST
Installation der benötigten Dienste:
# Server
PACKAGE_LIST=""
PACKAGE_LIST=`echo ${PACKAGE_LIST} mysql-server`
PACKAGE_LIST=`echo ${PACKAGE_LIST} postfix`
PACKAGE_LIST=`echo ${PACKAGE_LIST} fetchmail`
PACKAGE_LIST=`echo ${PACKAGE_LIST} daemon`
apt-get -y --force-yes install $PACKAGE_LIST
Wenn der mysql-Server der Meinung sein sollte, dass die Installation nicht abgeschlossen werden kann, dann hilft u.U. ein Neustart der Sheeva.
Download des Sourcecodes
cd ~ mkdir -p install/zarafa && cd install/zarafa wget -c http://download.zarafa.com/community/final/7.0/7.0.0-27791/sourcecode/libical-0.44.tar.gz wget -c http://download.zarafa.com/community/final/7.0/7.0.0-27791/sourcecode/libvmime-0.9.2+svn581.tar.bz2 wget -c http://download.zarafa.com/community/final/7.0/7.0.0-27791/sourcecode/zcp-7.0.0.tar.gz
Bauen und Installieren
Die Bibliotheken überschreiben die von Debian bereits installierten!
Ich habe mir verkniffen Patch-Dateien zu erstellen und die Kleinigkeiten mit sed geändert.
# libical bauen und installieren
tar xzvf libical-0.44.tar.gz
( cd libical-0.44 && \
./configure --prefix=/usr && \
make && make install)
# libvmime bauen und installieren
tar xjvf libvmime-0.9.2+svn581.tar.bz2
( cd libvmime-0.9.2 && \
./configure --prefix=/usr && \
make && make install)
# zarafa bauen und installieren
tar xzvf zcp-7.0.0.tar.gz
cp /usr/include/sys/user.h \
/usr/include/sys/user.h.original
sed -i "s/struct user$/struct old_user/g" \
/usr/include/sys/user.h
( cd zarafa-7.0.0 && \
sed -i "s/if (format && va)/if (format)/g" \
common/Trace.cpp &&
sed -i "s/if (opt == -1)/if (opt == -1 || opt == 255)/g" \
caldav/CalDAV.cpp &&
./configure \
--enable-release \
--disable-static \
--with-userscript-prefix=/etc/zarafa/userscripts \
--with-quotatemplate-prefix=/etc/zarafa/quotamails \
--enable-unicode \
--disable-perl \
--prefix=/usr \
--sysconfdir=/etc \
--with-vmime-prefix=/usr/include \
--with-ical-prefix=/usr/include && \
make && make install && make install-ajax-webaccess)
mv /usr/include/sys/user.h.original \
/usr/include/sys/user.h
Ein paar Bemerkungen zu den Änderungen:
In TraceMsg wird der Parameter va (vom Typ va_list) überprüft. Irgenwie mag der 4.6'er gcc das ganz und garnicht. Die schnelle schmutzige Lösung ist, die Parameterprüfung nicht durchzuführen. Wer eine bessere Löung hat, immer her damit.
Die zweite Änderung (opt-Prüfung) ist notwendig weil opt wie ein unsigned char behandelt wird und einen Wert von 255 annimmt, obwohl es vom Typ char ist.
Um zu verhindern. dass ein Update des Debian-Systems die beiden installierten Bibliotheken überschreibt:
# sicher ist sicher... dpkg --set-selections << EOF libical0 hold libvmime0 hold EOF
Startscripte anpassen
Mit den mitgelieferten Startscripte können die einzelnen Zarafa-Dienste manuell gestartet werden. Beim Systemstart werden sie jedoch ignoriert, auch wenn die Links in den rx{x}.d-Verzeichnissen existieren.
for STARTSCRIPT in `ls /etc/init.d/zarafa-*`
do
sed -i "s/### END INIT INFO/# Default-Start: 2 3 4 5\n# Default-Stop: 0 1 6\n### END INIT INFO/g" ${STARTSCRIPT}
sed -i "s/lockfile=\/var\/lock\/subsys\//lockfile=\/var\/lock\//g" ${STARTSCRIPT}
sed -i "s/. \/etc\/rc.d\/init.d\/functions/ . \/lib\/lsb\/init-functions/g" ${STARTSCRIPT}
sed -i "s/daemon \$\{1\}/daemon -- \$/g" ${STARTSCRIPT}
done
for STARTSCRIPT in `ls /etc/init.d/zarafa-*`
do
update-rc.d `basename ${STARTSCRIPT}` defaults
done
# Log-Verzeichnis anlegen
mkdir /var/log/zarafa
Konfiguration
Hier kommen nur die ersten Schritte (für das schnelle Erfolgserlebnis ;-)). Detailierte Informationen, auch zum Einrichten von fetchmail und postefix, finden sich zuhauf im Netz.
Die Zarafa-Konfigurationsdateien stehen unter /etc/zarafa/. Zumindest die mysql-Zugangsdaten (mysql_user und mysql_password in server.cfg) müssen angepasst werden. Danach können die Zarafa-Dienste gestartet werden:
for STARTSCRIPT in `ls /etc/init.d/zarafa-*`
do
${STARTSCRIPT} start
done
Nun nur noch die HTTP-Server-Konfiguration anpassen. Bei apache wird in die entsprechende Konfigurationsdatei (/etc/apache2/sites-available/default) im Anschnitt <VirtualHost> foldendes eingetragen:
Alias /webaccess /usr/share/zarafa-webaccess
<Directory /usr/share/zarafa-webaccess/>
DirectoryIndex index.php
Options -Indexes +FollowSymLinks
AllowOverride Options
Order allow,deny
Allow from all
</Directory>
Anschliessend kann mit
zarafa-admin -c <Nutzername> -p <Passwort> -e <eMail Adresse> -f "<kompletter Name>"
ein Nutzer angelegt werden und per WEB-Interface (http://<ServerName>/webaccess) auf den Server zugegriffen werden.
Links
Zarafa Hompage http://www.zarafa.com
Konfigurieren von Zarafa, Postfix und Fetchmail http://tschech-online.de/
Was so alles schief laufen kann... http://www.sheevaplug.de/forum/5-software/3481-zarafa.html





