Abonnieren  Kündigen          
        

CalendarServer

Mit Version 10.5 ermöglichte Apple unter Mac OS X Server die Verwaltung und Teilung von iCal-Kalendern im Netzwerk. Grundlage dafür ist zum einen der in OS X Server enthaltene Kalender-Dienst und zum anderen das Protokoll CalDAV. Der Dienst selbst beruht auf einem Programm, dem CalendarServer, der von Apple als Open Source Projekt konzipiert wurde. Wer sich die Server-Variante von Mac OS X nicht kaufen möchte, aber dennoch ein paar Kalender im Netzwerk nutzen möchte, der kann mit ein paar Handgriffen den CalendarServer auch auf einem normalen Mac OS X installieren und nutzen.

Ergänzung (18.3.2010): Ron Regev hat basierend auf diesem Artikel ein Tutorial Making Any Mac into a Calendar and Contacts Server erstellt.

Bei der zur Zeit verfügbaren Version des CalendarServer handelt es sich noch um eine sehr rohe Fassung. Das bedeutet, dass zum Beispiel kein Installationspaket vorhanden ist und man bei der Einrichtung an einigen Stellen selbst Hand anlegen muss. Ferner muss an einigen Stellen das Terminal zur Hilfe genommen werden. Auf den ersten Blick mag das etwas kompliziert wirken, aber es ist gar nicht mal so schwierig und am Ende können Kalender im Netzwerk von mehreren Benutzern gleichzeitig bearbeitet werden. Ich würde den Zeitaufwand für diese Installation bei weniger als einer halben Stunde ansetzen. Da die einzelnen Schritte hier im Detail beschrieben wurden, ist das Ganze natürlich etwas länger geraten.

Für die Freigabe von Kalendern wird normalerweise ein MobileMe-Konto benötigt.

Das Problem bei iCal im Netzwerk besteht darin, dass die Freigabe beziehungsweise Veröffentlichung von Kalendern entweder ein MobileMe-Konto benötigt oder einen Webserver, bei dem Freigaben über WebDav möglich sind. Mit dem CalendarServer, wenn er denn installiert ist, können recht unproblematisch Kalender im Netzwerk von mehreren Rechnern aus bearbeitet werden.

Der CalendarServer bietet neben der Freigabe von Kalendern noch eine ganze Reihe von weiteren Funktionen wie die Verwaltung von Räumen oder die Arbeit in Gruppen. Da das Projekt noch in einem sehr frühen Stadium ist und zumindest die letzt genannten Fähigkeiten einen funktionierenden Verzeichnisdienst wie OpenDirectory oder LDAP voraussetzen, beschränkt sich diese Installationsanleitung auf die Einrichtung von mehreren Kalendern. Diese Kalender werden über einzelne Benutzerkonten realisiert. Dafür sind die Benutzerkonten natürlich nicht gedacht, aber es ist die einfachste Möglichkeit, um schnell zu einem Kalender im Netzwerk zu gelangen.

Voraussetzungen

Für die Einrichtung und Konfiguration des CalendarServers muss zuvor die Entwicklungsumgebung Xcode von der Mac OS X Installations-DVD installiert werden. Benötigt wird unter anderem der Property List Editor für die Bearbeitung einiger Konfigurationsdateien aber es müssen auch einige Programme aus dem Quellcode übersetzt werden.

Aktualisierung (16.12.2009)

Der CalendarServer entwickelt sich wie so vieles andere in der IT-Welt sehr schnell. Mittlerweile ist er bei Version 3 angekommen, während sich diese Anleitung auf die Version 2 bezieht. Zwischenzeitlich hat sich auch diese etwas geändert, was beim Abarbeiten dieser Anleitung zu einigen Fehlschlägen führte, wie die unten stehenden Kommentare belegen.

Ich habe die Anleitung nun so überarbeitet, dass sie nicht mehr auf die aktuellste Version im trunk sondern auf die mehr oder weniger finale Version 2.3 zurückgreift. Ebenfalls überarbeitet wurde der LaunchDaemon. Die weiteren Installationsschritte sind gleich geblieben, ich habe allerdings nicht alle Abbildung aktualisiert. Insofern kann die Darstellung der Verzeichnisse etwas abweichen. Nicht mehr aktuelle Anweisungen wurden durchgestrichen, der Download des Servers mit dem Befehl svn wurde aktualisiert.

Drei Möglichkeiten der Installation

Um den CalendarServer zu installieren, gibt es zur Zeit mehrere Möglichkeiten und diese Anleitung beschreibt zwei davon. Auf die dritte, die »richtige« Installation des CalendarServers wird abschließend kurz eingegangen.

Der Installationsvorgang umfasst vier wesentliche Schritte. Erstens muss der Quellcode des CalendarServers mit dem Befehl svn herunter geladen werden. Zweitens muss der Quellcode übersetzt und ausführbar gemacht werden. Drittens wird der Server mit der Bearbeitung von einigen Konfigurationsdateien eingerichtet und Benutzerkonten für Kalender angelegt. Viertens wird über einen LaunchAgent oder LaunchDaemon dafür gesorgt, dass der Server entweder nach der Anmeldung eines Benutzers oder nach dem Start des Systems im Netzwerk zur Verfügung steht.

Bei der Übersetzung des Quellcodes im zweiten Schritt installiert der Server noch eine ganze Reihe von weiteren Programmen und Bibliotheken. Der CalendarServer wurde in wesentlichen Teilen in der Programmiersprache Python geschrieben und nutzt als technische Grundlage den ebenfalls in Python geschriebenen Server twisted. Hierzu benötigt der Server noch eine Reihe von Python-Modulen und Bibliotheken, die unter Mac OS X in der Standardversion nicht vorhanden sind. Diese werden ebenfalls herunter geladen und installiert.

Installation in einem Benutzerordner

Um den Server unterhalb eines Benutzerkontos zu installieren, kann im persönlichen Ordner ein eigener Ordner für das CalendarServer-System erstellt werden. Dieser neue Ordner mit der Bezeichnung Kalender ist zunächst noch leer.

Noch ist der für den CalendarServer vorgesehene Ordner leer.

Download und erste Installation

Der Ordner Kalender dient als eine Art Container, der in mehreren Unterordnern sowohl den eigentlichen CalendarServer als auch die unterstützenden Bibliotheken enthält. Um den Server herunter zu laden, wird am Terminal zunächst mit der Eingabe

cd ~/Kalender

in den Ordner gewechselt. Daraufhin wird mit der Zeile

svn checkout http://svn.calendarserver.org/repository/calendarserver/CalendarServer/tags/release/CalendarServer-2.3 CalendarServer

der Quellcode des Servers herunter geladen. Dieser Vorgang kann ein bis zwei Minuten in Anspruch nehmen und währenddessen gibt der Befehl svn den Fortschritt am Terminal aus. Anschließend befindet sich im Ordner Kalender ein Unterordner CalendarServer und in diesem befinden sich die Dateien des eigentlichen Servers.

Der Quellcode des CalendarServers wird aus dem Internet herunter geladen.

Nachdem der Quelltext vorliegt, muss der Server übersetzt und installiert werden. Im Vollzug dieser Installation werden auch die zuvor angesprochenen Bibliotheken aus dem Netzwerk herunter geladen und ebenfalls installiert. Hierzu wird mit

cd CalendarServer/

zunächst in das Verzeichnis gewechselt und anschließend der Befehl

./run -s

aufgerufen. Bei diesem Aufruf ist der Punkt und der Schrägstrich zu Beginn wichtig. Der Befehl run ist eigentlich nichts anderes als ein Shell-Skript, dem über die Option -s mitgeteilt wird, dass der Server noch nicht ausgeführt sondern zuerst installiert werden soll.

Mit der Eingabe von ./run -s wird der Server installiert.

Es werden dann eine ganze Reihe von Bibliotheken und Diensten wie PyXML, twisted, memcached und libevent herunter geladen und in ausführbare Programme übersetzt. Letzteres wird am Terminal zu einigen sehr kryptischen Ausgaben führen. Hierbei handelt es sich um die Ausgaben des Compilers und wenn die letzte Zeile Using python as Python lautet, ist die Installation erfolgreich gewesen.

Die herunter geladenen und übersetzten Bibliotheken befinden sich im gleichen Ordner wie der CalendarServer.

In dem Ordner Kalender befinden sich jetzt eine ganze Reihe von weiteren Ordnern. Diese enthalten die Bibliotheken, auf die der Server zurück greift.

Konfiguration des Servers

Vor dem ersten Start muss zunächst eine Konfigurationsdatei angepasst werden. Im Verzeichnis CalendarServer befindet sich ein Unterordner conf, der mehrere Konfigurationsdateien enthält. Hier finden sich unter anderem caldavd.plist, caldavd-test.plist und caldavd-apple.plist. Dabei handelt es sich um verschiedene Konfigurationsmöglichkeiten des Servers. In diesem Beispiel wird auf die Datei caldavd-test.plist zurück gegriffen. Im Finder können Sie die Datei caldavd-test.plist einfach duplizieren und die Kopie in caldavd-dev.plist umbenennen.

Die Datei caldavd-test.plist wird dupliziert und die Kopie in caldavd-dev.plist umbenannt.

Mit einem Doppelklick auf die Datei caldavd-dev.plist wird diese im Property List Editor geöffnet und mit einem Klick auf den Pfeil vor dem Eintrag root können die untergeordneten Werte eingeblendet werden. Hier findet sich auch ein Eintrag BindAddresses vom Typ Array. Klicken Sie auf den Pfeil links davon, so dass er nach unten deutet, und dann auf die Schaltfläche Add Child in der Symbolleiste. In dem nun vorhandenen Eintrag Item 1 muss als Wert in der rechten Spalte die IP-Adresse des Rechners, auf dem der CalendarServer installiert wurde, eingetragen werden. In diesem Beispiel hat der Rechner die Adresse 192.168.0.2. Speichern Sie abschließend die Änderungen über fileSave und beenden den Property List Editor.

Die IP-Adresse des Rechners muss als Wert unter BindAddresses eingetragen werden.

Benutzerkonten für Kalender erstellen

Bevor der Server für einen ersten Test gestartet werden kann, müssen noch die Benutzerkonten, die später die Kalender darstellen werden, angelegt werden. Das Verzeichnis conf enthält auch einen Unterordner auth, in dem sich die Konfigurationsdateien für die Benutzerkonten befinden. Bei den Dateien accounts-test.xml und accounts.xml handelt es sich, der Name deutet es bereits an, um einfache XML-Dateien, die mit einem beliebigen Text-Editor wie TextEdit, TextMate, BBEdit oder jEdit bearbeitet werden können. In dieser Beispielkonfiguration greift der Server auf die Datei accounts-test.xml zurück.

Das Verzeichnis auth enthält die Konfigurationsdateien für die Benutzerkonten.

Öffnen Sie diese Datei in einem Editor und Sie werden feststellen, dass die Datei bereits eine Reihe von beispielhaften Benutzerkonten und Gruppen enthält. Das erste Benutzerkonto in dieser Liste, dass von den XML-Tags <user> und </user> umschlossen wird, wird als administratives Benutzerkonto verwendet. Hier sollten Sie zunächst die Zeile <password>admin</password> ändern und ein anderes Passwort etwa in der Form <password>Neues_Passwort</password> vergeben.

Die Datei accounts-test.xml enthält einige vorgefertigte Benutzerkonten und Gruppen.

Löschen Sie dann alle Zeilen, die auf den ersten Eintrag </user> folgen bis zur letzten Zeile </accounts>, wobei diese Zeile erhalten bleibt.

Unnötige Einträge aus der Datei accounts-test-xml wurden entfernt.

Der Bereich zwischen <user> und </user> kann in die Zwischenablage kopiert und oberhalb der Zeile </accounts> eingefügt werden. Jeder dieser Blöcke stellt ein eigenes Benutzerkonto und somit auch einen eigenen Kalender dar. Bei den einzelnen Einträgen können Sie für die Werte uid, guid, password, name sowie first-name und last-name gemäß Ihren eigenen Vorstellungen anpassen. Eine Konfigurationsdatei, die zwei Kalender mit den Bezeichnungen kalender1 und kalender2 zusätzlich zum administrativen Konto einrichtet, könnte folgendermaßen aussehen:

<accounts realm="Test Realm">
<user>
<uid>admin</uid>
<guid>admin</guid>
<password>Neues_Passwort</password>
<name>Super User</name>
<first-name>Super</first-name>
<last-name>User</last-name>
</user>
<user>
<uid>kalender1</uid>
<guid>kalender1</guid>
<password>Ein_Passwort</password>
<name>Der Ferienkalender</name>
<first-name>Ferien</first-name>
<last-name>Kalender</last-name>
</user>
<user>
<uid>kalender2</uid>
<guid>kalender2</guid>
<password>Nochein_Passwort</password>
<name>Der Arbeitskalender</name>
<first-name>Arbeit</first-name>
<last-name>Kalender</last-name>
</user>
</accounts>

Testlauf

Speichern Sie die so konfigurierte Datei und der Server kann für einen ersten Test gestartet werden. Am Terminal wechseln Sie mit der Eingabe

cd ~/Kalender/CalendarServer/

zunächst in das Verzeichnis des Servers und Sie können dann mit der einfachen Eingabe von

./run

den Server starten. Während des Startvorgangs erhalten Sie eine ganze Reihe von Ausgaben, die Sie über den Fortschritt des Startvorgangs sowie die Einbindung der Module informiert. Wenn Sie zuletzt eine Zeile in der Form

2009-05-07 15:23:25+0200 [-] [caldav-8010] [-] AMP connection established (HOST:UNIXSocket(None) PEER:UNIXSocket('logs/caldavd.sock'))

erhalten und der Prompt am Terminal nicht erscheint, dann wurde der Server erfolgreich gestartet. Mit der Eingabe von cmd + . können Sie den Server wieder beenden. Sie erhalten dann als letzte Zeile den Hinweis 2009-05-10 05:24:34+0200 [-] Server Shut Down. und mit einem Druck auf Return erscheint der Prompt des Terminals wieder.

Der erste Testlauf wurde mit der Tastenkombination cmd + . beendet.

Ein LaunchAgent zum Start

Wenn Sie den Server nicht jedes Mal von Hand durch die Eingabe von ./run starten und das jeweilige Terminal-Fenster geöffnet haben möchten, dann können Sie mit einem LaunchAgent dafür sorgen, dass der Server im Hintergrund gestartet wird, wenn Sie sich mit diesem Benutzerkonto anmelden. Schauen Sie zunächst im Ordner Library in Ihrem persönlichen Ordner nach, ob sich dort bereits ein Unterverzeichnis LaunchAgents befindet. Sofern dies nicht der Fall ist, erstellen Sie im Finder einfach einen neuen Ordner und geben Sie ihm die Bezeichnung LaunchAgents. Starten Sie dann aus dem Verzeichnis /Developer/Applications/Utilities das Programm Property List Editor und erstellen eine neue Datei.

Hier können Sie zunächst den Eintrag Root auswählen und dann über die Schaltfläche Add Child einen neuen Untereintrag erzeugen. Vergeben Sie als Bezeichnung in der linken Spalte ProgramArguments und wählen Sie in der mittleren Spalte den Typ Array aus. Klappen Sie dann den Pfeil vor der Bezeichnung aus und die Schaltfläche Add Item ändert sich in Add Child. Fügen Sie über diese Schaltfläche zwei neue Elemente hinzu, die vom Property List Editor automatisch mit Item 1 und Item 2 benannt werden. Geben Sie als Wert für den ersten Eintrag ~/Kalender/CalendarServer/run ein und als Wert für den zweiten -d. Wählen Sie dann erneut den Eintrag Root aus und fügen Sie klicken Sie dreimal auf die Schaltfläche Add Child. Damit werden drei weitere Elemente auf der obersten Ebene hinzugefügt.

Geben Sie als Wert für den ersten Eintrag Label vor und als Type wählen Sie String. Als Wert unter Value können Sie etwas in der Form org.apple.calendar eingeben. Die Bezeichnung für den zweiten Eintrag lautet EnableGlobbing und er ist vom Type Boolean. Die nun vorhandene Checkbox in der Spalte Value muss aktiviert werden. Die Bezeichnung für den dritten Eintrag lautet RunAtLoad und er ist ebenfalls vom Type Boolean und auch hier muss die Checkbox aktiviert werden. Das Ergebnis sollte der nachfolgenden Abbildung exakt entsprechen. Sie können die Datei auch hier herunter laden. Speichern Sie diese Datei im Verzeichnis LaunchAgents in der Library Ihres persönlichen Ordners mit dem Dateinamen org.apple.calendar.plist.

Der LaunchAgent wird im Property List Editor erstellt.

Wenn Sie sich mit Ihrem Benutzerkonto nun ab- und wieder anmelden, wird der CalendarServer automatisch im Hintergrund gestartet. Sie können alternativ auch am Terminal

launchctl load ~/Library/LaunchAgents/org.apple.calendar.plist

eingeben und so den Server sofort von Hand starten.

Test

Um zu prüfen, ob der Server im Hintergrund läuft, müssen Sie nicht in iCal irgendwelche Einstellungen vornehmen. Sie können auch im Browser die Adresse http://192.168.0.2:8008 aufrufen, wobei Sie die Angabe 192.168.0.2 durch die IP-Adresse ersetzen, die Sie in der Voreinstellungsdatei caldavd-dev.plist eingegeben haben. Sofern der Server aktiv ist, erhalten Sie eine Auflistung von verschiedenen Verzeichnissen.

Wenn der Server aktiv ist, erscheint im Browser eine Auflistung der Verzeichnisse.

Deinstallation

Um den auf diese Weise installierten Server zu löschen, können Sie einfach den Ordner Kalender und, sofern Sie den LaunchAgent erstellt haben, die Datei org.apple.calendar.plist in den Papierkorb legen. Wenn Sie sich ab- und wieder anmelden ist der Server nicht mehr aktiv und der Papierkorb kann geleert werden.

Installation als Systemdienst

Die Installation des CalendarServers innerhalb eines Benutzerkontos geht recht schnell von der Hand, hat aber den Nachteil, dass dieser Benutzer immer angemeldet sein muss, damit andere im Netzwerk auf den Server zugreifen können. Dabei lässt sich der CalendarServer auch als Dienst in Form eines LaunchDaemon installieren. Er wird dann sofort aktiviert, wenn das System gestartet wurde und läuft im Hintergrund unabhängig von den am Rechner angemeldeten Benutzern. Diese Installationsanleitung hat folgende Ziele:

  1. • Der CalendarServer und die ihn begleitenden Module werden im Verzeichnis /Library/Kalender installiert.
  2. • Der Server wird anschließend konfiguriert.
  3. • Die Zugriffsrechte des Verzeichnisses /Library/Kalender werden so geändert, dass der Zugriff über ein normales Benutzerkonto nicht mehr möglich ist. Alle enthaltenen Dateien und Ordner werden dem Benutzerkonto _calendar zugewiesen.
  4. • Es wird ein LaunchDaemon erstellt, der den Server aus diesem Verzeichnis automatisch beim Hochfahren des Systems startet.

Da im folgenden der Befehl sudo mehrfach genutzt wird und ferner Schreibrechte am Verzeichnis /Library benötigt werden, muss diese Installation mit einem Benutzerkonto erfolgen, das über administrative Rechte verfügt.

Download und Installation

Im Finder wechseln Sie zunächst in das Verzeichnis Library auf der obersten Ebene des Dateisystems und erstellen dann einen neuen Ordner mit der Bezeichnung Kalender.

Der Ordner Kalender wird in der Library des Systems erstellt.

Anschließend können Sie das Terminal starten und dort mit der Eingabe

cd /Library/Kalender

in das neu erstellte Verzeichnis wechseln. Der weitere Verlauf der Installation entspricht der innerhalb eines Benutzerordners. Mit der Eingabe von

svn checkout http://svn.calendarserver.org/repository/calendarserver/CalendarServer/tags/release/CalendarServer-2.3 CalendarServer

laden Sie den Quelltext des Servers herunter, der sich anschließend im Unterordner CalendarServer befindet. Wechseln Sie nun mit

cd CalendarServer

in dieses Verzeichnis und rufen Sie mit

./run -s

die Installationsroutine des CalendarServers auf. Anschließend werden die benötigten Bibliotheken und Programme herunter geladen und installiert. Der Vorgang entspricht der ersten Installationsanleitung, nur dass jetzt die Dateien und Verzeichnisse unter /Library/Kalender abgelegt werden.

Die Bibliotheken und Programme des CalendarServers werden in der allgemeinen Library installiert.

Konfiguration

Für die Konfiguration des Servers gelten die oben erläuterten Schritte. Duplizieren Sie die Datei caldavd-test.plist, benennen Sie die Kopie in caldavd-dev.plist um und fügen Sie dann im Property List Editor unter BindAddresses den Eintrag mit der IP-Adresse des Rechners hinzu. Ebenso können Sie in der Datei accounts-test.xml die Benutzerkonten, die später die einzelnen Kalender darstellen, wie oben beschrieben anlegen.

Wenn Sie die Konfigurationsdateien angelegt und bearbeitet habe, müssen Sie vor der Übernahme des Starts durch einen LaunchDaemon einen Testlauf durchführen. Wechseln Sie hierzu am Terminal zunächst mit

cd /Library/Kalender/CalendarServer

zunächst in das Verzeichnis des Servers und führen Sie durch die Eingabe von ./run einen Start durch. Sie können dann im Browser mit der Angabe http://192.168.0.2:8008 oder ähnlich prüfen, ob der Server gestartet wurde. Stellen Sie anschließend ebenfalls sicher, dass nun im Verzeichnis /Library/Kalender/CalendarServer ein Unterordner logs existiert.

Zugriffsrechte

Nachdem Sie den Server auf diese Weise konfiguriert haben, müssen die Zugriffsrechte für dieses Verzeichnis korrigiert werden. In der aktuellen Form gehört der Ordner Kalender und alle Unterverzeichnisse zu Ihrem Benutzerkonto und der Benutzergruppe admin. In der Benutzerdatenbank von Mac OS X gibt es bereits ein Benutzerkonto und eine Gruppe mit der Bezeichnung _caldav, die für den CalendarServer vorgesehen sind. Unter diesem Benutzerkonto soll der Server auch später ausgeführt werden. Am Terminal können Sie mit dem Befehl

sudo chown -R _calendar:_calendar /Library/Kalender

und der anschließenden Eingabe Ihres Passworts den Ordner Kalender und alle Unterverzeichnisse diesem Benutzerkonto und der Gruppe zuweisen. Mit der Eingabe ls -l /Library können Sie anschließend prüfen, ob die Zuweisung erfolgreich vorgenommen wurde. In der Zeile Kalender müsste anstelle von root und admin jeweils _calendar stehen.

Das Verzeichnis Kalender wurde dem Benutzerkonto _calendar zugeordnet.

Wenn Sie die Datei accounts-test.xml auch nachträglich noch bearbeiten möchten, ohne zuvor die Zugriffsrechte immer wieder korrigieren zu müssen, können Sie sich die Access Control Lists zu Nutze machen. Wählen Sie die Datei im Unterzeichnis auth des Ordners conf aus und rufen Sie über AblageInformationen das Info-Fenster des Finders auf. In dem Bereich Sharing & Zugriffsrechte können Sie zunächst auf das kleine Schloss klicken und Ihr Passwort eingeben. Mit einem Klick auf das Plus-Zeichen erscheint ein Fenster, in dem Sie aus den Benutzerkonten des Systems auswählen können. Wählen Sie hier Ihr Benutzerkonto aus. Abschließend ändern Sie die Rechte von Nur Lesen auf Lesen & Schreiben und schließen das Fenster wieder.

Der LaunchDaemon

Bei der Erstellung LaunchDaemon, der den CalendarServer automatisch starten soll, gibt es nun einige Punkte zu berücksichtigen. Die Entwickler des Servers empfehlen, den Server nicht über das Skript run zu starten sondern durch einen direkten Aufruf des Programms caldavd im /Library/Kalender/CalendarServer/bin. Bei diesem Aufruf müssen als Parameter sowohl die zu verwendende Konfigurationsdatei als auch der Name des so genannten Reaktors für den twisted-Daemon übergeben werden. Ferner müssen beim Start des LaunchDaemon zwei Umgebungsvariablen gesetzt werden, damit caldavd die im Verzeichnis /Library/Kalender abgelegten Bibliotheken und Programme findet.

Im Property List Editor können Sie eine neue leere Datei erstellen und als erstes einen neuen Eintrag mit der Bezeichnung ProgramArguments erzeugen. Dieser ist vom Type Array. Der Aufruf des Programms caldavd muss in der Form /Library/Kalender/CalendarServer/bin/caldavd -X -R caldav_kqueue -f /Library/Kalender/CalendarServer/conf/caldavd-dev.plist /Library/Kalender/CalendarServer/bin/caldavd -X -f /Library/Kalender/CalendarServer/conf/caldavd-dev.plist erfolgen. Dementsprechend benötigen Sie sechs vier Elemente unterhalb von ProgramArguments und Sie können dann die einzelnen Parameter des Aufrufs, wie sie durch Leerzeichen getrennt werden, als Item 0 bis Item 3 eingeben.

Die notwendigen Pfadangaben für die Bibliotheken werden durch den Aufruf von run -p ermittelt.

Dann gilt es, die beiden Umgebungsvariablen beim Start des Servers zu setzen. Hierzu können Sie im Property List Editor wieder den Eintrag Root auswählen und mit der Schaltfläche Add Child einen Untereintrag erzeugen. Benennen Sie diesen als EnvironmentVariables und wählen Sie unter Type die Option Dictionary aus. Wenn Sie den Pfeil in dieser Zeile nach unten ausklappen, können Sie über Add Child zwei Untereinträge erzeugen. Beide sind vom Type String und die Bezeichnung des ersten lautet PATH, die des zweiten PYTHONPATH. Zum Glück verfügt das Skript run mit der Option -p über eine Funktion, die benötigten Pfade zu ermitteln. Wenn Sie am Terminal das Skript mit

/Library/Kalender/CalendarServer/run -p

aufrufen, erhalten Sie anschließend eine mehrfach umgebrochene Zeile. Diese können Sie in die Zwischenablage kopieren und im Property List Editor in der Spalte Value des Eintrags PYTHONPATH einfügen.

Die Angabe für den Eintrag PATH setzt sich zusammen aus den Standardpfaden, die am Terminal verwendet werden, sowie den Pfad zur ausführbaren Datei von memcached. Letztere gehört zu den Dateien und Bibliotheken, die über den Aufruf von ./run -s installiert wurden. Die Angabe für den Pfad lautet

/bin:/sbin:/usr/bin:/usr/sbin:/Library/Kalender/memcached-1.2.6

Bevor Sie diese Zeile unter Value für den Eintrag PATH einfügen, sollten Sie kontrollieren, ob sich wirklich ein Verzeichnis memcached-1.2.6 im Ordner /Library/Kalender befindet. Da der Name des Verzeichnisses die aktuelle Versionsnummer des Daemons memcached enthält, kann es sein, dass bei einer aktuelleren Installation der Name beispielsweise memcached-1.3.1 oder ähnlich lautet. Sie müssten dann die Pfadangabe entsprechend anpassen.

memcache wird in der aktualisierten Fassung nicht mehr benötigt.

Die weiteren Einträge innerhalb der Property List sind nicht weiter spektakulär. Der Reihe nach:

Bezeichnung Type Value
Label String org.apple.calendarserver
UserName String _calendar
GroupName String _calendar
KeepAlive Boolean Aktiviert
ThrottleInterval Number 60
WorkingDirectory String /Library/Kalender/CalendarServer

Ferner können Sie mit zwei Einträgen HardResourceLimits und SoftResourceLimits vom Typ Dictionary die maximale Belastung des Systems, die durch den CalendarServer verursacht werden kann, beeinflussen. Hierzu erstellen Sie bei beiden Einträgen jeweils einen Untereintrag mit der Bezeichnung NumberOfFiles, dem Typ Number und einem Wert von 12000. Damit wird vermieden, dass ein aus dem Ruder laufender CalendarServer Ihr System vollständig blockiert.

Eine weitere Möglichkeit der Konfiguration besteht darin, die Ausgaben des CalendarServers auf der Konsole umzulenken. Der Server ist recht geschwätzig wenn es um Auskünfte über seine aktuelle Arbeit geht und so kann es leicht passieren, dass die Konsolenmeldungen im Dienstprogramm Konsole mit den Ausgaben des CalendarServers regelrecht verstopft werden. Fügen Sie der Property List noch zwei Einträge vom Typ String hinzu und weisen Sie diesen als Bezeichnungen StandardOutPath und StandardErrorPath zu. Geben Sie bei beiden als Wert /dev/null vor, so verschwinden die Ausgaben des Servers im virtuellen Nirvana. Die fertige Property List sollte nun der folgenden Abbildung entsprechen.

Die Property List für den LaunchDaemon besteht aus einer Reihe von Einträgen.

Damit der CalendarServer als LaunchDaemon bei jedem Start des Systems automatisch aktiviert wird, muss er im Verzeichnis /Library/LaunchDaemons gespeichert werden. Sie können die zuvor erstellte Datei auf Ihrem Schreibtisch mit der Bezeichnung org.apple.calendarserver.plist speichern. Am Terminal können Sie sie nun durch die Eingabe von

sudo cp ~/Desktop/org.apple.calendarserver.plist /Library/LaunchDaemons/

in das entsprechende Verzeichnis kopieren. Um den CalendarServer als LaunchDaemon zu aktivieren, können Sie Ihren Rechner entweder neu starten oder Sie geben am Terminal

sudo launchctl load /Library/LaunchDaemons/org.apple.calendarserver.plist

ein.

Test und Deinstallation

Um zu prüfen, ob der CalendarServer jetzt im Hintergrund als LaunchDaemon aktiv ist, können Sie zunächst im Browser die Adresse http://192.168.0.2:8008 aufrufen. Erscheint die Auflistung der Verzeichnisse, dann ist die Installation erfolgreich gewesen. Ferner können Sie im Dienstprogramm Aktivitätsanzeige prüfen, ob es dort einen Prozess memcached und mehrere Prozesse Python gibt, die dem Benutzerkonto _calendar zugeordnet sind.

Der aktive CalendarServer wird in der Aktivitätsanzeige unter dem Benutzer _calendar aufgeführt.

Wenn Sie irgendwann den so konfigurierten CalendarServer nicht mehr benötigen, dann können Sie im Finder den Ordner Kalender aus der Library sowie die Datei org.apple.calendarserver.plist aus dem Unterordner LaunchDaemons der Library in den Papierkorb ziehen. In beiden Fällen werden Sie vom Finder aufgefordert, sich mit Ihrem Admin-Passwort zu identifizieren. Wenn Sie dann einen Neustart ausführen, ist der Server nicht mehr aktiv und Sie können den Papierkorb entleeren.

Die »richtige« Installation und darüber hinaus

Die beiden hier beschriebenen Installationsmethoden haben den Vorteil, dass sich alle Dateien, die irgendwie zum CalendarServer gehören, in einem Oberverzeichnis befinden. Wird dieses Verzeichnis zuzüglich der Datei des LaunchAgent oder LaunchDaemon gelöscht, dann ist der Server einwandfrei deinstalliert. Die eigentlich vorgesehene Installationsmethode besteht in dem Aufruf von sudo ./run -i anstelle von ./run -s. Hierbei werden die benötigten Bibliotheken ebenfalls herunter geladen, compiliert und installiert, wobei die Installation allerdings in den eigentlichen Verzeichnissen des Systems vorgenommen wird. So befinden sich dann die Python-Bibliotheken dort, wo sich auch andere Bibliotheken dieser Programmiersprache befinden. Die Voreinstellungsdateien finden sich dann im Verzeichnis /etc und die Daten der Kalender unter /Library/CalenderServer. Diese Installation sauber wieder zu entfernen, erfordert deutlich mehr Handarbeit am Terminal als die oben beschriebene Installation des Servers als LaunchDaemon. Ferner werden bei dieser Installation andere Dateien für die Konfiguration genutzt. So greift der Server für die allgemeine Konfiguration auf die Datei caldavd.plist im Unterordner conf zurück, als Datenbank für die Benutzerkonten wird die Datei accounts.xml konsultiert.

Diese Installationsanleitung kratzt nur an der Oberfläche dessen, was der Server zu leisten vermag. Auf die Benutzerkonten, Gruppen und Orte geht diese Installation nicht ein. Der CalendarServer ist in der Lage, bei diesen Daten nicht auf eine XML-Datei sondern auf einen Verzeichnisdienst wie OpenDirectory oder LDAP zurückzugreifen. Die Beschreibung dieser Installation und deren Administration würde aber weit, sehr weit über diese Webseite hinaus führen. Wenn Sie die Datei caldavd.plist durchsehen, werden Sie eine Reihe von selbst erklärenden Parametern finden. So finden Sie zum Beispiel einen Eintrag DirectoryService, über den Sie den Zugriff auf OpenDirectory konfigurieren könnten. Die Pfade zu den Daten und Protokollen lassen sich hier ebenfalls konfigurieren. Das Wiki der Entwickler unter http://trac.calendarserver.org/ kann für diese Art von Experimenten einen ersten Einstieg bieten.

iCal und Sunbird einrichten

Wenn der Server aktiv ist, gilt es natürlich die Programme, die auf den Server zugreifen sollen, entsprechend einzustellen. Diese Anleitung beschränkt sich auf iCal unter Mac OS X 10.5 und Sunbird unter Windows / Linux. Weitere Informationen können unter http://trac.calendarserver.org/wiki/CalendarClients eingesehen werden.

In iCal können Sie über den Menüpunkt iCalEinstellungen die Voreinstellungen des Programms aufrufen und dort in die Ansicht Accounts wechseln. Mit einem Klick auf das Plus-Zeichen erscheint ein Fenster. Hier können Sie eine frei wählbare Beschreibung für diesen Kalender eingeben. Geben Sie dann den Kurznamen des Kalenders sowie dessen Passwort an. Mit einem Klick auf den Pfeil können Sie die Server-Optionen ausklappen.

Der Zugriff auf den Server wird in der Ansicht Accounts konfiguriert.

Als URL müssen Sie bei iCal nur die IP-Adresse des Servers gefolgt von :8008 angeben. Wenn Sie nun auf Hinzufügen klicken, erhalten Sie zunächst den Hinweis, dass die Kommunikation mit dem Server nicht verschlüsselt erfolgt. Für den Einsatz im lokalen Netzwerk ist die fehlende Verschlüsselung aber nicht so schlimm, so dass Sie sich Trotzdem verbinden können. Anschließend steht Ihnen dieser Kalender in iCal zur Verfügung. Alle Einträge und Änderungen, die Sie an diesem Kalender vornehmen, werden auf dem Server gespeichert und sind auch auf anderen Rechnern im Netzwerk, die auf diesen Kalender zugreifen, sichtbar. In den Standardeinstellungen gleicht iCal die Änderungen auf dem Server alle 15 Minuten ab. Über den Menüpunkt KalenderAktualisieren können Sie den Abgleich auch von Hand ausführen. Diesen Vorgang können Sie für jeden Kalender, den Sie über ein Benutzerkonto in der Datei accounts-test.xml realisiert haben, wiederholen.

Bei der Einrichtung von Mozilla Sunbird funktioniert die automatische Erkennung der URL zum Kalender nicht. Diese müssen Sie von Hand gemäß den Vorgaben (http://trac.calendarserver.org/wiki/CalendarClients) eingeben. Hierzu können Sie zunächst den Menüpunkt DateiNeuer Kalender auswählen. In dem folgenden Assistenten wählen Sie Im Netzwerk und im nächsten Schritt dann das Protokoll CalDAV. Die Adresse setzt sich folgendermaßen zusammen:

http://IP-Adresse:8008/calendars/users/NAME/calender

Hier müssen Sie IP-Adresse durch die IP-Adresse des Servers ersetzen und NAME durch den Namen des Kalenders. Abschließend werden Sie nach dem Benutzerkonto und dem Passwort für diesen Kalender gefragt. Der Kalender steht Ihnen nun zur Verfügung.

Der »Ferienkalender« wird gleichzeitig in iCal...

... und Sunbird angezeigt und im Netzwerk auf dem Server gespeichert.

Kay
Bild von Kay
User offline. Last seen 1 Jahr 8 Wochen ago. Offline
Mitglied seit:
03.07.2009

iCal: Verbindung mit CalDAV-Server klappt nicht

3. Juli 2009 - 15:45

Hallo Kai, schöne Beschreibung. Im großen und ganzen scheint es auch zu funktionieren, allerdings gelingt es iCal sich nur dann zu verbinden, wenn ich den Standard-Account "admin" verwende. Wenn ich einen anderen Account verwende klappt es nicht. Das Verzeichnis (.../principals/users/andereruser) zu dem anderen Account ist vorhanden, es steht aber nichts drin, sprich es gibt keine Principal Details. Der Server meldet beim Versuch einen neuen Account in iCal anzulegen „HTTP/1.1 500 Internal Server Error“. Angeblich gibt es den Account nicht. Hast Du einen Tipp woran das liegen könnte?

Kay

Bild von Kai Surendorf
User offline. Last seen 4 Stunden 31 Minuten ago. Offline
Mitglied seit:
19.12.2004

run -s

3. Juli 2009 - 16:29

Hi kay,

gute Frage, der CalendarServer ist schon noch ziemlich bleeding edge, wie das ja schön heißt. Ich würde an Deiner Stelle mal mit ./run versuchen das Ding zu starten und dann mal einen sehr genauen Blick auf die Ausgaben am Terminal werfen. Wenn Du ihn schon als LaunchAgent instaliert hast, ist natürlich die gute alte Konsole der Adressat für die Fehlermeldungen. Dann schauen wir mal weiter.

So long, Kai

Kay
Bild von Kay
User offline. Last seen 1 Jahr 8 Wochen ago. Offline
Mitglied seit:
03.07.2009

Hallo Kai, hab gerade mal in

3. Juli 2009 - 16:57

Hallo Kai,

hab gerade mal in die Konsole geschaut.

> 03.07.09 16:45:48 org.apple.calendarserver[43] 2009-07-03 16:45:48+0200 [-] [caldav-8009] [-] [twisted.web2.dav.method.propfind#error] Error reading property ('urn:ietf:params:xml:ns:caldav', 'calendar-home-set') for resource /principals/users/kay/: Directory record has an invalid GUID: 'kay?' > 03.07.09 16:45:48 org.apple.calendarserver[43] 2009-07-03 16:45:48+0200 [-] [caldav-8009] exceptions.AssertionError: Directory record has an invalid GUID: 'kay?'

Was mich dabei etwas stutzig macht ist, das dort 'kay?' steht, sich das Fragezeichen also innerhalb der Zeichenkette befindet. Ist die Darstellung der Fehlermeldung einfach nur komisch? Ich hätte ja 'kay'? erwartet. Müssen der User und die Gruppe im System existieren? Da das ganze später im Internet funktionieren soll, ist das für den Testaccount "kay" natürlich nicht der Fall. In meinem OS X gibt es keinen User und keine Gruppe "kay". Die stehen lediglich in "accounts-test.xml" drin.

Kay

PS: Ich habe die Installationsvariante in /Library/... gewählt.

Bild von Kai Surendorf
User offline. Last seen 4 Stunden 31 Minuten ago. Offline
Mitglied seit:
19.12.2004

GUID

3. Juli 2009 - 17:20

Also zunächst ganz allgemein: accounts.xml ist von der Benutzerverwaltung von OS X gänzlich unabhängig. Das ist ja auch der Kunstgriff meiner Installationsanleitung, dass anstelle von Ressourcen einfach Benutzer eingerichtet werden, die dann als Kalender fungieren. Mit GUID war da irgendwas. Ändere doch mal bei dem Benutzerkonto anstelle von kay die UID und GUID in zum Beispiel testbenutzer987 ab und probier das mal.

Kay
Bild von Kay
User offline. Last seen 1 Jahr 8 Wochen ago. Offline
Mitglied seit:
03.07.2009

UID != GUID

3. Juli 2009 - 17:46

Hallo Kai,

guter Tipp, jetzt klappt es. Scheinbar müssen UID und GUID unterschiedlich sein. "http://192.168.0.2:8008/principals/users/kay/" ist jetzt auch erreichbar.

Vielen Dank

Kay

Bild von Kai Surendorf
User offline. Last seen 4 Stunden 31 Minuten ago. Offline
Mitglied seit:
19.12.2004

UID != GUID?

3. Juli 2009 - 17:56

Komisch, bei mir war das genau umgekehrt oder trügt mich meine Erinnerung? Naja, wenn's jetzt funktioniert. BTW: Wenn Du das Ding in freier Wildbahn (=Internet) verfügbar machst, behalte bitte im Hinterkopf, dass das Teil nicht fertig ist. Es kann also durchaus sein, dass Du Dir da eine Sicherheitslücke einfängst oder Dein System anderweitig angreifbar machst. Meine Hand leg' ich hier nicht ins Feuer.

Bild von fragdochdalex
User offline. Last seen 1 Jahr 6 Wochen ago. Offline
Mitglied seit:
16.07.2009

CalendarServer auf PPC

16. Juli 2009 - 12:15

Hi, vielen Dank für das Tutorial. Hatte keine Probleme bei der Einrichtung auf Intel-Mac. Nur im Betrieb nutzen wir zwei Dual G5. Bei diesen Rechnern ließ sich der memcached Server nicht in Betrieb nehmen. Ich musste caldavd-dev.plist ergänzen. Ich öffne die Datei mit plist editor des iphone/x-tools sdk und öffne das array "Memcached". Ich lösche MaxClient und ersetze es durch den Eintrag "User" mit dem Wert "root" (String). Danach verschwand auch die Memcached Meldung: cant startet with -u option oder so ähnlich....

Auf jeden Fall läuft der kleine Racker bis jetzt zufriedenstellend.

Bild von det_signum
User offline. Last seen 39 Wochen 6 Tage ago. Offline
Mitglied seit:
15.11.2009

Alles klappt

15. November 2009 - 20:11

auf Anhieb - vielen Dank für diese Anleitung. Der Server läuft bei mir auf einem Mini zusammen mit einigen anderen Programmen (eyeTV, iTunes, iPhoto, ..) als lokaler Server. Jetzt wär's natürlich schön den WebDav Server noch weiter konfigurieren zu können, auch wenn das "den Umfang der Seite" sprengt. Kennt noch jemand Links/Seiten mit weiter führenden Hinweisen dazu? Danke!

Bild von det_signum
User offline. Last seen 39 Wochen 6 Tage ago. Offline
Mitglied seit:
15.11.2009

..oder doch nicht: Autostart

15. November 2009 - 20:54

..oder doch nicht: Autostart funktioniert nicht nach Neustart obwohl ich Alles nach Anleitung erledigt habe. Ich habe nochmals den Pfad in "org.apple.calendar.plist" überprüft, aber der Server startet dennoch nicht, nur manuell über ./run im Terminal. Was mache ich falsch? Oder muss man den Pfad nicht anpassen?

Bild von Kai Surendorf
User offline. Last seen 4 Stunden 31 Minuten ago. Offline
Mitglied seit:
19.12.2004

Also

17. November 2009 - 10:31

Links zu weiterführenden Seiten außer der Hauptseite des Projekts habe ich eigentlich nicht. Da findet sich, wenn ich das richtig in Erinnerung habe, auch eine Mailingliste und ein Archiv. Was den Start angeht: Schau doch mal mit der Konsole ins Protokoll, ob z.B.unter system.log irgendeine Fehlermeldung erscheint. Ansonsten müsstest Du mir bzgl. der Pfadangabe noch verraten, wo Du den Server installiert hast.

Bild von det_signum
User offline. Last seen 39 Wochen 6 Tage ago. Offline
Mitglied seit:
15.11.2009

Re: Also

17. November 2009 - 19:25

Schade, aber ich kann ja mal googlen. Das mit den Usern war ja recht einfach, aber ich suche halt noch Hilfen dazu was ich mit den Gruppen anfangen kann, oder wie man mehrere Kalender für verschiedene Aspekte einrichtet.

Zu meinem anderen Problem: in der Konsole habe ich folgendes gefunden: Nov 15 19:29:55 Mac-mini com.apple.launchd[152] (org.apple.calendar[217]): Exited with exit code: 1 Nov 16 15:54:55 Mac-mini org.apple.calendar[209]: /Users/multimedia/Kalender/CalendarServer/run: line 38: support/build.sh: No such file or directory

Also Pfad hatte ich zunächst folgendes angeben: /Users/multimedia/Kalender/CalendarServer/run aber damit startete der Server nicht. Auch mit der Version/String aus der Anleitung -/Kalender/CalendarServer/run startet er nicht. Kann ja sein das ich betriebsblind bin, aber vielleicht findest du ja für mich den Bug. Wie du aus dem obigen Pfad entnehmen kannst habe ich ihn erst einmal in meinem Benutzer-Account angelegt. Es sit ein Autostart-Account auf unserem Mac mini den wir mal Mutimedia-Server zum Fernsehen und FileServer etc. nutzen mit Admin-Rechten.

Gruss J.

Bild von Chris
User offline. Last seen 23 Wochen 1 Tag ago. Offline
Mitglied seit:
29.11.2009

Problem nach Zugriffsrechte konfigurieren

29. November 2009 - 18:32

Hallo Kai

Super Tutorial, sogar für mich als absolutem Terminal-Neuling problemlos verständlich und nachvollziehbar! Ein grosses DANKE dafür!

Allerdings habe ich ein Problem bei der Installation auf OS X 10.6 (Snow Leopard): Nach dem Schritt mit der Konfiguration der Zugriffsrechte lässt sich der Server nicht mehr starten. Nach Eingabe des ./run-Befehls gibt Terminal die folgenden Zeilen aus:

iMac:CalendarServer Christoph$ ./run

Building PyXML...

Building PyKerberos...

Building PyOpenDirectory...

Building Twisted... [overrides system, building egg-info metadata only] error: Twisted.egg-info/requires.txt: Permission denied

Using python as Python

Starting server... exec python /Library/Kalender/Twisted/bin/twistd -n caldav -f /Library/Kalender/CalendarServer/conf/caldavd-dev.plist -o ProcessType=Combined /Library/Kalender/Twisted/twisted/mail/smtp.py:10: DeprecationWarning: the MimeWriter module is deprecated; use the email package instead import MimeWriter, tempfile, rfc822 /Library/Kalender/CalendarServer/calendarserver/tap/caldav.py:48: DeprecationWarning: mktap and related support modules are deprecated as of Twisted 8.0. Use Twisted Application Plugins with the 'twistd' command directly, as described in 'Writing a Twisted Application Plugin for twistd' chapter of the Developer Guide. from twisted.scripts.mktap import getid Traceback (most recent call last): File "/Library/Kalender/Twisted/bin/twistd", line 19, in run() File "/Library/Kalender/Twisted/twisted/scripts/twistd.py", line 27, in run app.run(runApp, ServerOptions) File "/Library/Kalender/Twisted/twisted/application/app.py", line 689, in run config.parseOptions() File "/Library/Kalender/Twisted/twisted/application/app.py", line 669, in parseOptions usage.Options.parseOptions(self, options) File "/Library/Kalender/Twisted/twisted/python/usage.py", line 231, in parseOptions self.subOptions.parseOptions(rest) File "/Library/Kalender/Twisted/twisted/python/usage.py", line 241, in parseOptions self.postOptions() File "/Library/Kalender/CalendarServer/calendarserver/tap/caldav.py", line 219, in postOptions self.checkConfiguration() File "/Library/Kalender/CalendarServer/calendarserver/tap/caldav.py", line 279, in checkConfiguration create=(0750, config.UserName, config.GroupName), File "/Library/Kalender/CalendarServer/calendarserver/tap/caldav.py", line 337, in checkDirectory % (description, dirpath) twistedcaldav.config.ConfigurationError: Insufficient permissions for server on Data root directory: data/ launchctl bsexec failed: No such file or directory

VOR der Konfiguration lässt sich der Server problemlos starten.

Ist Dir dieses Problem bekannt und weisst Du eventuell eine Lösung?

Grüsse, Newbie

Bild von Kai Surendorf
User offline. Last seen 4 Stunden 31 Minuten ago. Offline
Mitglied seit:
19.12.2004

Re: Problem nach Zugriffsrechte konfigurieren

29. November 2009 - 19:27

Nach dem Schritt mit der Konfiguration der Zugriffsrechte lässt sich der Server nicht mehr starten. Nach Eingabe des ./run-Befehls gibt Terminal die folgenden Zeilen aus:

Du hast die Installation als LaunchDaemon unter /Library/Kalender vorgenommen? Dann ist diese Fehlermeldung nicht nur nachvollziehbar sondern sogar gewünscht. Der Grund besteht darin, dass der Server zukünftig nur noch unter dem Benutzerkonto _calendar ausgeführt werden soll. Startest Du ihn eigenhändig unter dem Benutzer Christoph am Terminal, dann wird der Server unter Deiner Benutzerkennung ausgeführt und darf in diesem Fall auf die Dateien nicht mehr zugreifen, denn diese wurden durch den Befehl chown ja dem Benutzer _calendar zugewiesen. Du müsstest die Installation wie beschrieben fortsetzen und den Server als LaunchDaemon starten lassen, dann müsste es eigentlich klappen. Der eigenhändige Start ist bei der Konfiguration als LaunchDaemon nicht vorgesehen.

Bild von Kai Surendorf
User offline. Last seen 4 Stunden 31 Minuten ago. Offline
Mitglied seit:
19.12.2004

Re: Also

29. November 2009 - 19:34

Also die Pfadangabe lautet: ~/Kalender/CalendarServer/run. Wichtig ist die Tilde ~ (alt + N) und kein Minuszeichen. Klappt es denn mit der von mir zum Download angebotenen Datei? p.s. - Sry für die Wartezeit, Manuskriptabgabe und so.

Bild von Chris
User offline. Last seen 23 Wochen 1 Tag ago. Offline
Mitglied seit:
29.11.2009

Hallo Kai Besten Dank für die

30. November 2009 - 14:00

Hallo Kai

Besten Dank für die prompte Antwort! Ich habe nun Deine Anleitung weiter befolgt (Installation als LaunchDaemon unter /Library/Kalender) und stehe vor dem nächsten Problem:

Bei mir existiert in /Library/Kalender/ KEIN Verzeichnis mit dem Namen "memcached"... es hat lediglich folgende Verzeichnisse:

CalDavTester

CalendarServer

Pyflakes

PyKerberos

PyOpenDirectory

PyXML-0.8.4

Twisted

vobject

Entsprechend gibt der LaunchDaemon die Fehlermeldung "org.apple.calendarserver: Invalid Argument" aus.

Vielleicht stelle ich mich aber auch einfach nur extrem unbeholfen an?

Grüsse Newbie

Bild von Kai Surendorf
User offline. Last seen 4 Stunden 31 Minuten ago. Offline
Mitglied seit:
19.12.2004

Vielleicht stelle ich mich

30. November 2009 - 14:22

Vielleicht stelle ich mich aber auch einfach nur extrem unbeholfen an?

Nein. Mir ist gerade aufgefallen, dass die Version, die mit dem Befehl svn checkout vom Server geladen wird, eine viel aktuellere (3.0) ist als die, die ich beschreibe (2.3). Ich müsste die Tage mal die Anweisung anpassen, damit die ältere Version geladen wird. Eingangs wird ja erwähnt, dass es sich bei den verfügbaren Fassungen um eine sehr rohe Version handelt und die Entwickler stricken heftig dran. Hoffentlich finde ich in den nächsten Tagen die Zeit, die Beschreibung anzupassen. Sry für den Fehlschlag, das hätte ich vielleicht eher merken können.

Bild von Chris
User offline. Last seen 23 Wochen 1 Tag ago. Offline
Mitglied seit:
29.11.2009

Version 2.3 noch verfügbar?

30. November 2009 - 15:25

Ach so, danke.

Kann ich die ältere Version vielleicht noch irgendwo abrufen? Ansonsten kein Problem, ist ja nicht hyperdringend.

*Edit*: Hat sich erledigt, habe die Passage mit "Anweisung anpassen, damit die ältere Version geladen wird" übersehen... Sry!

Bild von ickinger
User offline. Last seen 25 Wochen 13 Stunden ago. Offline
Mitglied seit:
05.03.2010

gcc-4.2 failed

5. März 2010 - 0:19

Hallo,

ich stehe schon bei der Installation vor dem Problem, dass folgende Fehlermeldung kommt:

... Building PyXML... unable to execute gcc-4.2: No such file or directory error: Command 'gcc-4.2' failed with exit status 1

Gibt es dafür auch schon einen Lösungsansatz? Ich stecke da leider noch nicht soweit in der Materie, dass ich da selbst weiter komme.

Gruß Andy

Bild von Kai Surendorf
User offline. Last seen 4 Stunden 31 Minuten ago. Offline
Mitglied seit:
19.12.2004

Xcode installiert?

5. März 2010 - 19:02

Gibt es dafür auch schon einen Lösungsansatz?

Es scheint so, als dass der Fehler auftritt, weil der GNU C Compiler (gcc) nicht installiert oder gefunden wurde. Xcode von der Installations-DVD wurde installiert? Das müsste dem Problem eigentlich schon abhelfen.

Bild von ickinger
User offline. Last seen 25 Wochen 13 Stunden ago. Offline
Mitglied seit:
05.03.2010

Ist drauf, aber...

9. März 2010 - 11:12

Hallo Kai,

vielen Dank für Deinen Hinweis. Ich habe Xcode installiert, allerdings nicht von der DVD, sondern eine aktuelle Version aus dem Netz.

Macht das einen Unterschied? Denn auch hier bekomme ich wieder eine Fehlermeldung im zusammenhang mit gcc-4.2. Dieses Mal "failed with exit status 1".

Gruß Andy

Bild von Kai Surendorf
User offline. Last seen 4 Stunden 31 Minuten ago. Offline
Mitglied seit:
19.12.2004

Wie lautet die Fehlermeldung

9. März 2010 - 16:03

Wie lautet die Fehlermeldung denn jetzt?

Bild von ickinger
User offline. Last seen 25 Wochen 13 Stunden ago. Offline
Mitglied seit:
05.03.2010

Da steht......

10. März 2010 - 12:34

Hallo Kai,

ich denke ich habe den Fehler gefunden, er versucht gcc-4.2 auszuführen, installiert ist aber nur gcc-4.0. Jetzt muss ich versuchen auf 4.2 zu gehen und dann sollte es wohl laufen. Eine neue Installation von Xcode ist leider fehlgeschlagen.

Gruß Andy

Nachtrag: Habe gerade Xcode für 10.6 nachinstalliert, die Installation lief danach super durch. Jetzt kann ich weiter mit dem CalendarServer kämpfen! Eye-wink

Vielen Dank!

Bild von ickinger
User offline. Last seen 25 Wochen 13 Stunden ago. Offline
Mitglied seit:
05.03.2010

Rennt...

11. März 2010 - 13:28

Hallo Kai,

es war zwar ein wenig Fummelarbeit aber jetzt läuft er super. Ist bereits eingebunden in iCal(s) und macht einen guten Eindruck.

Danke nochmal für Deine Hilfe!

Gruß Andy

Kontakt | Impressum | © Kai Surendorf

Benutzeranmeldung

Shout Box

Kai Surendorf:

Arbeitsbelastung ist wieder auf

Kai Surendorf:

ein erträgliches Maß gesunken.

Kai Surendorf:

MarsEdit wird gerade getestet

Anmelden oder Registrieren um zu shouten.
Alle Shouts

RSS-Feeds

 
Die Episoden des Podcast zum Abonnement 

Werbung

In dieser Rubrik finden Sie eine Übersicht der Publikationen inklusive Inhaltsverzeichnis, Leseprobe und Pressestimmen.

Unter <opencontent> finden Sie eine Reihe von längeren Texten, die sich einigen Themen detaillierter widmen.

Die StickyBits sind das etwas unregelmäßig erscheinende Webzine auf mac.delta-c

Die regelmäßig aktualisierten Notizen verlinken kurz und knapp auf neue Programme, Tools, Artikel und Tutorials.

Unregelmäßig erscheinen neue Folgen im Screencast.

Im Podcast finden Sie launige, rein subjektive Kommentare zum Geschehen rund um Apple.

In dieser Rubrik finden Sie meine Meinung über Freeware, Shareware und kommerzielle Programme und weitere Produkte.

Das Forum ist ein Angebot, sich über die Publikationen im Speziellen und Mac OS X in all seinen Facetten generell auszutauschen.