SheevaPlug.de

Die deutschsprachige Plug Community.

  • Schrift vergrößern
  • Standard-Schriftgröße
  • Schriftgröße verkleinern
Startseite Anleitungen Debian Anleitung zur Installation von Zarafa

Anleitung zur Installation von Zarafa

E-Mail Drucken

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

Zuletzt aktualisiert am Montag, den 01. August 2011 um 22:55 Uhr  
AddThis Social Bookmark Button