Class::Accessor entfernt.
[kivitendo-erp.git] / doc / INSTALL.texi
index 42f47d0..6667237 100644 (file)
@@ -2,6 +2,7 @@
 @c %**start of header
 @setfilename INSTALL.info
 @documentencoding UTF-8
+@afourpaper
 @settitle Lx-Office Installationsanleitung
 @c %**end of header
 
 @menu
 * Aktuelle Hinweise:: Andere Informationsquellen als diese Anleitung
 * Benötigte Software und Pakete:: Vorraussetzungen zum Betrieb von Lx-Office
-* Installation des Programmpaketes:: Installationsort, Berechtigungen
+* Manuelle Installation des Programmpaketes:: Installationsort, Berechtigungen
 * Anpassung der PostgreSQL-Konfiguration:: Verschiedene Aspekte der Datenbankkonfiguration
 * Apache-Konfiguration:: Einrichtung eines Aliases und Optionen für das Ausführen von CGI-Scripten
+* Der Task-Server:: Konfiguration und Einrichtung des Task-Server-Dämonen
 * Benutzerauthentifizierung und Administratorpasswort:: Einrichtung der Authentifizierungsdatenbank und der Passwortüberprüfung
 * Benutzer- und Gruppenverwaltung:: Einrichten von Benutzern, Gruppen und Datenbanken
+* Drucken mit Lx-Office:: Voraussetzungen, Einrichtung und Fehlerdiagnose
 * OpenDocument-Vorlagen:: Wichtige Hinweise zum Erstellen und zur Verwendung von Dokumentenvorlagen
 * Lx-Office ERP verwenden:: Die URLs zur Anmeldung und Administration
 @end menu
@@ -56,18 +59,86 @@ im Lx-Office-Forum: @uref{http://www.lx-office.org/forum/}
 @node Benötigte Software und Pakete
 @chapter Benötigte Software und Pakete
 
+@menu
+* Betriebssystem:: Unterstützte Betriebsysteme und Hinweise für ältere Systeme
+* Pakete:: Benötigte Software und Perlpakete sowie deren Quellen
+@end menu
+
+@node Betriebssystem
+@section Betriebssystem
+
+Lx-Office ist für Linux konzipiert, und sollte auf jedem unixoiden
+Betriebssystem zum Laufen zu kriegen sein. Getestet ist diese Version im
+speziellen auf Debian und Ubuntu, grundsätzlich wurde bei der Auswahl der
+Pakete aber darauf Rücksicht genommen, dass es ohne große Probleme auf den
+derzeit aktuellen verbreiteten Distributionen läuft.
+
+Anfang 2011 sind das folgende Systeme:
+
+@itemize
+@item
+Ubuntu 8.04 LTS Hardy Heron
+@item
+Ubuntu 9.10 Karmic Koala
+@item
+Ubuntu 10.04 Lucid Lynx
+@item
+Ubuntu 10.10 Maverick Meerkat
+@item
+Debian 5.0 Lenny
+@item
+Debian 6.0 Squeeze
+@item
+openSUSE 11.2
+@item
+openSUSE 11.3
+@item
+SuSE Linux Enterprice Server 11
+@item
+Fedora 13
+@item
+Fedora 14
+@end itemize
+
+Für die debianoiden Betriebssysteme existiert ein .deb, das deutlich einfacher
+zu installieren ist.
+
+Ubuntu 8.04 LTS hat zusätzlich die Schwierigkeit, dass die Module im Archiv
+recht alt sind, und das viele der benötigten Module nicht einfach zu
+installieren sind. Dafür sollte es kurz nach dem Release ein eigenes .deb
+geben.
+
+Alternativ dazu kann die normale Installation durchgeführt werden
+(@pxref{Manuelle Installation des Programmpaketes}), wenn vorher ein
+Kompatibilitätspaket installiert wird, das die fehlenden Pakete bereitstellt.
+Das Paket ist auf @uref{https://sourceforge.net/projects/lx-office/files/Lx-Office%20ERP/2.6.2/, Sourceforge} unter dem Namen @code{lx-erp-perl-libs-compat-v2.tar.gz} hinterlegt.
+
+Zur Installation das Paket in das entpackte Lx-Office Verzeichnis entpacken:
+
+@code{tar xzf lx-erp-perl-libs-compat-v2.tar.gz /path/to/lx-office/}
+
+Zusätzlich müssen dann noch die folgenden Pakete installiert weerden
+
+@code{libbit-vector-perl libsub-exporter-perl libclone-perl libclass-factory-util-perl}
+
+Danach sollte der Installationscheck (@pxref{Pakete}) die enthaltenen Pakete erkennen.
+
+@node Pakete
+@section Pakete
+
 Zum Betrieb von Lx-Office werden zwingend ein Webserver (meist Apache)
 und ein Datenbankserver (PostgreSQL, mindestens v8.2) benötigt.
 
-Zusätzlich benötigt Lx-Office die folgenden Perl-Pakete, die nicht Bestandteil einer Standard-Perl-Installation sind:
+Zusätzlich benötigt Lx-Office die folgenden Perl-Pakete, die nicht Bestandteil
+einer Standard-Perl-Installation sind:
 
 @itemize
 @item
-Archive::Zip
+parent
 @item
-Class::Accessor
+Archive::Zip
 @item
-CGI::Ajax
+Config::Std
 @item
 DateTime
 @item
@@ -79,6 +150,8 @@ Email::Address
 @item
 List::MoreUtils
 @item
+Params::Validate
+@item
 PDF::API2
 @item
 Rose::Object
@@ -103,28 +176,31 @@ YAML
 Gegenüber Version 2.6.0 sind zu dieser Liste 2 Pakete hinzugekommen, @code{URI}
 und @code{XML::Writer} sind notwendig. Ohne startet Lx-Office nicht.
 
+Gegenüber Version 2.6.1 sind @code{parent}, @code{DateTime},
+@code{Rose::Object}, @code{Rose::DB} und @code{Rose::DB::Object} neu
+hinzugekommen. @code{IO::Wrap} wurde entfernt.
+
 @code{Email::Address} und @code{List::MoreUtils} sind schon länger feste
 Abhängigkeiten, wurden aber bisher mit Lx-Office mitgeliefert.  Beide sind auch
 in 2.6.1 weiterhin mit ausgeliefert, wurden in einer zukünftigen Version aber
 aus dem Paket entfernt werden. Es wird empfohlen diese Module zusammen mit den
 anderen als Bibliotheken zu installieren.
 
-@code{CGI::Ajax} ist nach wie vor in einer modifizierten Version mitgeliefert
-und braucht nicht nachinstalliert werden.
-
 Die zu installierenden Pakete können in den verschiedenen Distributionen unterschiedlich heißen.
 
 Für Debian oder Ubuntu benötigen Sie diese Pakete:
 
-@code{apache2 postgresql libarchive-zip-perl libclass-accessor-perl libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl libemail-address-perl libio-stringy-perl liblist-moreutils-perl libpdf-api2-perl libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl librose-object-perl librose-db-perl librose-db-object-perl}
+@code{apache2 postgresql libparent-perl libarchive-zip-perl libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl libemail-address-perl liblist-moreutils-perl libpdf-api2-perl librose-object-perl librose-db-perl librose-db-object-perl libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl libconfig-std-perl libparams-validate-perl}
 
 Für Fedora Core benötigen Sie diese Pakete:
 
-@code{httpd postgresql-server perl-Class-Accessor perl-DateTime perl-DBI perl-DBD-Pg perl-Email-Address perl-IO-stringy perl-List-MoreUtils perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer perl-YAML}
+@code{httpd postgresql-server perl-parent perl-DateTime perl-DBI perl-DBD-Pg perl-Email-Address perl-List-MoreUtils perl-PDF-API2 perl-Rose-Object perl-Rose-DB perl-Rose-DB-Object perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer perl-YAML}
 
 Für OpenSuSE benötigen Sie diese Pakete:
 
-@code{apache2 postgresql-server perl-Archive-Zip perl-Class-Accessor perl-DateTime perl-DBI perl-DBD-Pg perl-MailTools perl-IO-stringy perl-List-MoreUtils perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer perl-YAML}
+@code{apache2 postgresql-server perl-Archive-Zip perl-DateTime perl-DBI perl-DBD-Pg perl-MailTools perl-List-MoreUtils perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer perl-YAML}
+
+Bei openSuSE 11 ist @code{parent} bereits enthalten, und braucht nicht nachinstalliert werden. Die @code{Rose::*} Pakete sind derzeit nicht für SuSE gepackt, und müssen anderweitig nachinstalliert werden.
 
 Lx-Office enthält ein Script, mit dem überprüft werden kann, ob alle
 benötigten Perl-Module installiert sind. Der Aufruf lautet wie folgt:
@@ -133,8 +209,8 @@ benötigten Perl-Module installiert sind. Der Aufruf lautet wie folgt:
 
 @c ---------------------------------------------------------------
 
-@node Installation des Programmpaketes
-@chapter Installation des Programmpaketes
+@node Manuelle Installation des Programmpaketes
+@chapter Manuelle Installation des Programmpaketes
 
 Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.6.2.tgz) wird im
 Dokumentenverzeichnis des Webservers (z.B. @code{/var/www/html/},
@@ -332,6 +408,105 @@ folgende Option in die Konfiguration aufzunehmen:
 
 @c ---------------------------------------------------------------
 
+@node Der Task-Server
+@chapter Der Task-Server
+
+Der Task-Server ist ein Prozess, der im Hintergrund läuft, in
+regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese
+zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser
+Prozess wird bisher nur für die Erzeugung der wiederkehrenden
+Rechnungen benutzt, wird aber in Zukunft deutlich mehr Aufgaben
+übertragen bekommen.
+
+@menu
+* Konfiguration des Task-Servers:: Verfügbare und notwendige Konfigurationsoptionen
+* Prozesskontrolle:: Wie der Task-Server gestartet und beendet wird
+* Einbinden in den Boot-Prozess:: Automatisches Starten des Task-Servers beim Booten
+@end menu
+
+@node Konfiguration des Task-Servers
+@section Verfügbare und notwendige Konfigurationsoptionen
+
+Die Konfiguration erfolgt über den Abschnitt @code{[task_server]} in
+der Datei @file{config/lx_office.conf}. Die dort verfügbaren Optionen
+sind:
+
+@itemize
+@item @code{login}: gültiger Lx-Office-Benutzername, der benutzt wird, um die zu verwendende Datenbankverbindung auszulesen. Der Benutzer muss in der Administration angelegt werden. Diese Option muss angegeben werden.
+@item @code{run_as}: Wird der Server vom Systembenutzer @code{root} gestartet, so wechselt er auf den mit @code{run_as} angegebenen Systembenutzer. Der Systembenutzer muss dieselben Lese- und Schreibrechte haben, wie auch der Webserverbenutzer (siehe @pxref{Manuelle Installation des Programmpaketes}). Daher ist es sinnvoll, hier denselben Systembenutzer einzutragen, unter dem auch der Webserver läuft.
+@item @code{debug}: Schaltet Debug-Informationen an und aus.
+@end itemize
+
+@node Einbinden in den Boot-Prozess
+@section Automatisches Starten des Task-Servers beim Booten
+
+Der Task-Server verhält sich von seinen Optionen her wie ein reguläres
+SystemV-kompatibles Boot-Script. Außerdem wechselt er beim Starten
+automatisch in das Lx-Office-Installationsverzeichnis.
+
+Deshalb ist es möglich, ihn durch Setzen eines symbolischen Links aus
+einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess
+einzubinden. Da das bei neueren Linux-Distributionen aber nicht
+zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die
+anstelle eines symbolischen Links verwendet werden können.
+
+@subsection SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)
+
+Kopieren Sie die Datei
+@file{scripts/boot/system-v/lx-office-task-server} nach
+@file{/etc/init.d/lx-office-task-server}. Passen Sie in der kopierten
+Datei den Pfad zum Task-Server an (Zeile @code{DAEMON=....}). Binden
+Sie das Script in den Boot-Prozess ein. Dies ist distributionsabhängig:
+
+@itemize
+@item Debian-basierende Systeme:
+@*
+@code{update-rc.d lx-office-task-server defaults
+@*
+# Nur bei Debian Squeeze und neuer:
+@*
+insserv lx-office-task-server}
+@item OpenSuSE und Fedora Core:
+@*
+@code{chkconfig --add lx-office-task-server}
+@end itemize
+
+Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
+@code{/etc/init.d/lx-office-task-server start}
+
+@subsection Upstart-basierende Systeme (z.B. Ubuntu)
+
+Kopieren Sie die Datei
+@file{scripts/boot/upstart/lx-office-task-server.conf} nach
+@file{/etc/init/lx-office-task-server.conf}. Passen Sie in der kopierten
+Datei den Pfad zum Task-Server an (Zeile @code{exec ....}).
+
+Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
+@code{service lx-office-task-server start}
+
+@node Prozesskontrolle
+@section Wie der Task-Server gestartet und beendet wird
+
+Der Task-Server wird wie folgt kontrolliert:
+
+@code{./scripts/task_server.pl Befehl}
+
+@code{Befehl} ist dabei eine der folgenden Optionen:
+
+@itemize
+@item @code{start} startet eine neue Instanz des Task-Servers. Die Prozess-ID wird innerhalb des @file{users}-Verzeichnisses abgelegt.
+@item @code{stop} beendet einen laufenden Task-Server.
+@item @code{restart} beendet und startet ihn neu.
+@item @code{status} berichtet, ob der Task-Server läuft.
+@end itemize
+
+Der Task-Server wechselt beim Starten automatisch in das Lx-Office-Installationsverzeichnis.
+
+Dieselben Optionen können auch für die SystemV-basierenden
+Runlevel-Scripte benutzt werden (siehe oben).
+
+@c ---------------------------------------------------------------
+
 @node Benutzerauthentifizierung und Administratorpasswort
 @chapter Benutzerauthentifizierung und Administratorpasswort
 
@@ -368,10 +543,10 @@ LDAP-Server überprüft werden.
 
 Welche Art der Passwortüberprüfung Lx-Office benutzt und wie Lx-Office
 die Authentifizierungsdatenbank erreichen kann, wird in der
-Konfigurationsdatei @code{config/authentication.pl} festgelegt. Diese
+Konfigurationsdatei @file{config/lx_office.conf} festgelegt. Diese
 muss bei der Installation und bei einem Upgrade von einer Version vor
 v2.6.0 angelegt werden. Eine Beispielkonfigurationsdatei
-@code{config/authentication.pl.default} existiert, die als Vorlage
+@file{config/lx_office.conf.default} existiert, die als Vorlage
 benutzt werden kann.
 
 @node Administratorpasswort
@@ -461,7 +636,7 @@ existiert.
 @node Anlegen der Authentifizierungsdatenbank
 @section Anlegen der Authentifizierungsdatenbank
 
-Nachdem alle Einstellungen in @code{config/authentication.pl}
+Nachdem alle Einstellungen in @file{config/lx_office.conf}
 vorgenommen wurden, muss Lx-Office die Authentifizierungsdatenbank
 anlegen. Dieses geschieht automatisch, wenn Sie sich im
 Administrationsmodul anmelden, das unter der folgenden URL erreichbar
@@ -482,7 +657,7 @@ unter folgender URL finden:
 @uref{http://localhost/lx-erp/admin.pl}
 
 Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
-@code{config/authentication.pl} eingetragen haben.
+@file{config/lx_office.conf} eingetragen haben.
 
 @menu
 * Zusammenhänge:: Übersicht über Benutzer, Gruppen, Berechtigungen und Datenbanken
@@ -548,9 +723,10 @@ ist dies @samp{lxoffice}).
 Wenn Sie für die Lx-Office-Installation nicht den europäischen
 Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so
 müssen Sie vor dem Anlegen der Datenbank in der Datei
-@code{config/lx-erp.conf} die Variable @code{$dbcharset} auf den Wert
-@samp{UTF-8} setzen. Zusätzlich muss beim Anlegen der Datenbank
-@samp{UTF-8 Unicode} als Schriftsatz ausgewählt werden.
+@file{config/lx_office.conf} die Variable @code{dbcharset} im
+Abschnitt @code{system} auf den Wert @samp{UTF-8} setzen. Zusätzlich
+muss beim Anlegen der Datenbank @samp{UTF-8 Unicode} als Schriftsatz
+ausgewählt werden.
 
 Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz
 verwenden müssen, da diese Einstellungen momentan global in Lx-Office
@@ -627,6 +803,45 @@ wieder anmelden und mit dem System arbeiten.
 
 @c ---------------------------------------------------------------
 
+@node Drucken mit Lx-Office
+@chapter Drucken mit Lx-Office
+
+Das Drucksystem von Lx-Office benutzt von Haus aus LaTeX Vorlagen. Um drucken
+zu können, braucht der Server ein geeignetes LaTeX System. Am einfachsten ist
+dazu eine @code{texlive} Installation. Unter Debianoiden Betriebssystemen sind
+das die Pakete:
+
+@code{texlive-latex-base texlive-latex-extra texlive-fonts-recommended}
+
+Diese hinteren beiden enthalten Bibliotheken und Schriftarten die von den
+Standardvorlagen verwendet werden.
+
+TODO: rpm Pakete.
+
+In den allermeisten Installationen sollte drucken jetzt schon funktionieren.
+Sollte ein Fehler auftreten wirft TeX sehr lange Fehlerbeschreibungen, der
+eigentliche Fehler ist immer die erste Zeite die mit einem Ausrufezeichen
+anfängt. Häufig auftretende Fehler sind zum Beispiel:
+
+@itemize
+@item ! LaTeX Error: File `eurosym.sty' not found.
+Die entsprechende LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem
+bei Vorlagen aus der Community auf. Installieren Sie die entsprechenden Pakete.
+@item ! Package inputenc Error: Unicode char \u8:æ¡\9c not set up for use with LaTeX.
+Dieser Fehler tritt auf, wenn sie versuchen mit einer Standardinstallation
+exotische utf8 Zeichen zu drucken. TeXLive unterstützt von Haus nur romanische
+Schriften und muss mit diversen Tricks dazu gebracht werden andere Zeichen zu
+akzeptieren. Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.
+@end itemize
+
+Wird garkein Fehler angezeigt sondern nur der Name des Templates, heißt das
+normalerweise, dass das LaTeX Binary nicht gefunden wurde. Prüfen Sie den Namen
+in der Konfiguration (Standard: @code{pdflatex}), und stellen Sie sicher, dass
+pdflatex (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
+darf.
+
+@c ---------------------------------------------------------------
+
 @node OpenDocument-Vorlagen
 @chapter OpenDocument-Vorlagen
 
@@ -635,13 +850,14 @@ OpenDocument-Format, wie es OpenOffice.org ab Version 2
 erzeugt. Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als
 auch aus diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von
 OpenDocument-Vorlagen zu aktivieren muss in der Datei
-@code{config/lx-erp.conf} die Variable @code{$opendocument_templates}
-auf @samp{1} stehen.  Dieses ist die Standardeinstellung.
+@file{config/lx_office.conf} die Variable @code{opendocument} im
+Abschnitt @code{print_templates} auf @samp{1} stehen.  Dieses ist die
+Standardeinstellung.
 
-Weiterhin muss in der Datei @code{config/lx-erp.conf} die Variable
-@code{$dbcharset} auf die Zeichenkodierung gesetzt werden, die auch
-bei der Speicherung der Daten in der Datenbank verwendet wird. Diese
-ist in den meisten Fällen "UTF-8".
+Weiterhin muss in der Datei @file{config/lx_office.conf} die Variable
+@code{dbcharset} im Abschnitt @code{system} auf die Zeichenkodierung
+gesetzt werden, die auch bei der Speicherung der Daten in der
+Datenbank verwendet wird. Diese ist in den meisten Fällen "UTF-8".
 
 Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
 weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
@@ -650,11 +866,11 @@ neben OpenOffice.org ab Version 2 auch der ``X virtual frame buffer''
 (xvfb) installiert werden.  Bei Debian ist er im Paket ``xvfb''
 enthalten. Andere Distributionen enthalten ihn in anderen Paketen.
 
-Nach der Installation müssen in der Datei @code{config/lx-erp.conf}
-zwei weitere Variablen angepasst werden:
-@code{$openofficeorg_writer_bin} muss den vollständigen Pfad zur
-OpenOffice.org Writer-Anwendung enthalten.  @code{$xvfb_bin} muss den
-Pfad zum ``X virtual frame buffer'' enthalten.
+Nach der Installation müssen in der Datei @file{config/lx_config.conf}
+zwei weitere Variablen angepasst werden: @code{openofficeorg_writer}
+muss den vollständigen Pfad zur OpenOffice.org Writer-Anwendung
+enthalten. @code{xvfb} muss den Pfad zum ``X virtual frame buffer''
+enthalten. Beide stehen im Abschnitt @code{applications}.
 
 Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit
 OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn
@@ -684,11 +900,10 @@ folgender Befehl auszuführen:
 
 @code{mv users/.openoffice.org2 users/.openoffice}
 
-Dieses Verzeichnis, wie auch das komplette @code{users}-Verzeichnis,
-muss vom Webserver beschreibbar sein. Dieses wurde in Schritt
-@code{Installation des Programmpakets} oben bereits erledigt, kann
-aber erneut überprüft werden, wenn die Konvertierung nach PDF
-fehlschlägt.
+Dieses Verzeichnis, wie auch das komplette @code{users}-Verzeichnis, muss vom
+Webserver beschreibbar sein. Dieses wurde bereits erledigt
+(@pxref{Manuelle Installation des Programmpaketes}), kann aber erneut überprüft
+werden, wenn die Konvertierung nach PDF fehlschlägt.
 
 @c ---------------------------------------------------------------