Doku: Modullisten allgemein und Paketlisten für openSUSE, Fedora aktualisiert
[kivitendo-erp.git] / doc / dokumentation.xml
index 227e71b..142def0 100644 (file)
@@ -2,7 +2,8 @@
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 <book id="kivitendo-documentation" lang="de">
-  <title>kivitendo 3.5.0: Installation, Konfiguration, Entwicklung</title>
+  <title>kivitendo 3.5.1: Installation, Konfiguration,
+  Entwicklung</title>
 
   <chapter id="Aktuelle-Hinweise">
     <title>Aktuelle Hinweise</title>
         ohne große Probleme auf den derzeit aktuellen verbreiteten
         Distributionen läuft.</para>
 
-        <para>Anfang 2016 sind das folgende Systeme, von denen bekannt ist,
+        <para>Anfang 2019 sind das folgende Systeme, von denen bekannt ist,
         dass kivitendo auf ihnen läuft:</para>
 
         <itemizedlist>
 
             <itemizedlist>
               <listitem>
-                <para>7.0 "Wheezy"</para>
+                <para>8.0 "Jessie"</para>
               </listitem>
-
               <listitem>
-                <para>8.0 "Jessie"</para>
+                <para>9.0 "Stretch"</para>
               </listitem>
+
             </itemizedlist>
           </listitem>
 
           <listitem>
-            <para>Ubuntu 12.04 LTS "Precise Pangolin", 14.04 "Trusty Tahr"
-            LTS, 15.10 "Wily Werewolf" und 16.04 "Xenial Xerus" LTS
-            Alpha</para>
+            <para>16.04 "Xenial Xerus" LTS und 18.04 "Bionic Beaver" LTS
+          </para>
           </listitem>
 
           <listitem>
-            <para>openSUSE LEAP 42.1</para>
+            <para>openSUSE 15.0</para>
           </listitem>
 
           <listitem>
-            <para>Fedora 22</para>
+            <para>Fedora 29</para>
           </listitem>
         </itemizedlist>
       </sect2>
 
         <itemizedlist>
           <listitem>
-            <para><literal>parent</literal> (nur bei Perl vor 5.10.1)</para>
+            <para><literal>Algorithm::CheckDigits</literal></para>
           </listitem>
 
           <listitem>
             <para><literal>Archive::Zip</literal></para>
           </listitem>
 
-          <listitem>
-            <para><literal>Algorithm::CheckDigits</literal></para>
-          </listitem>
-
           <listitem>
             <para><literal>CGI</literal></para>
           </listitem>
             <para><literal>Config::Std</literal></para>
           </listitem>
 
+          <listitem>
+            <para><literal>Daemon::Generic</literal></para>
+          </listitem>
+
           <listitem>
             <para><literal>DateTime</literal></para>
           </listitem>
 
+          <listitem>
+            <para><literal>DateTime::Event::Cron</literal></para>
+          </listitem>
+
           <listitem>
             <para><literal>DateTime::Format::Strptime</literal></para>
           </listitem>
 
+          <listitem>
+            <para><literal>DateTime::Set</literal></para>
+          </listitem>
+
           <listitem>
             <para><literal>DBI</literal></para>
           </listitem>
             <para><literal>File::Copy::Recursive</literal></para>
           </listitem>
 
+          <listitem>
+            <para><literal>File::Flock</literal></para>
+          </listitem>
+
           <listitem>
             <para><literal>File::MimeInfo</literal></para>
           </listitem>
 
+          <listitem>
+            <para><literal>File::Slurp</literal></para>
+          </listitem>
+
           <listitem>
             <para><literal>GD</literal></para>
           </listitem>
             <para><literal>PDF::API2</literal></para>
           </listitem>
 
+          <listitem>
+            <para><literal>Regexp::IPv6</literal></para>
+          </listitem>
+
           <listitem>
             <para><literal>Rose::Object</literal></para>
           </listitem>
             neuer</para>
           </listitem>
 
+          <listitem>
+            <para><literal>Set::Infinite</literal></para>
+          </listitem>
+
+          <listitem>
+            <para><literal>Set::Crontab</literal></para>
+          </listitem>
+
           <listitem>
             <para><literal>String::ShellQuote</literal></para>
           </listitem>
           </listitem>
         </itemizedlist>
 
+        <para>Seit Version größer v3.5.1 sind die folgenden Pakete hinzugekommen: <literal>Set::Infinite</literal>,
+        <literal>List::UtilsBy</literal>, <literal>DateTime::Set</literal>, <literal>DateTime::Event::Cron</literal>
+        <literal>Daemon::Generic</literal> <literal>DateTime::Event::Cron</literal> <literal>File::Flock</literal>
+        <literal>File::Slurp</literal> <literal>Set::Crontab</literal> <literal>Exception::Lite</literal>. Für die letzten beiden Module
+        liefert kivitendo fallback-Module aus, da diese überhaupt nicht in debian oder in der benötigten Version zu Verfügung stehen (Stand
+        Anfang 2019).</para>
+
         <para>Seit Version größer v3.5.0 sind die folgenden Pakete
-        hinzugekommen: <literal>Text::Unidecode, LWP::Authen::Digest,
-        LWP::UserAgent</literal></para>
+        hinzugekommen: <literal>Text::Unidecode</literal>,
+        <literal>LWP::Authen::Digest</literal>,
+        <literal>LWP::UserAgent</literal></para>
 
         <para>Seit Version v3.4.0 sind die folgenden Pakete hinzugekommen:
-        <literal>Algorithm::CheckDigits</literal><literal>PBKDF2::Tiny</literal></para>
+        <literal>Algorithm::CheckDigits</literal>,
+        <literal>PBKDF2::Tiny</literal></para>
 
         <para>Seit Version v3.2.0 sind die folgenden Pakete hinzugekommen:
         <literal>GD</literal>, <literal>HTML::Restrict</literal>,
           <title>Debian und Ubuntu</title>
 
           <para>Für Debian und Ubuntu stehen die meisten der benötigten
-          Perl-Pakete als Debian-Pakete zur Verfügung. Sie können mit
+          Pakete als Debian-Pakete zur Verfügung. Sie können mit
           folgendem Befehl installiert werden:</para>
 
           <programlisting>apt install  apache2 libarchive-zip-perl libclone-perl \
   libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \
   libimage-info-perl libgd-gd2-perl libapache2-mod-fcgid \
   libfile-copy-recursive-perl postgresql libalgorithm-checkdigits-perl \
-  libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl libwww-perl
-</programlisting>
+  libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl libwww-perl\
+  postgresql-contrib aqbanking-tools poppler-utils libhtml-restrict-perl\
+  libdatetime-set-perl libset-infinite-perl liblist-utilsby-perl\
+  libdaemon-generic-perl libfile-flock-perl libfile-slurp-perl
 
-          <para>Für das Paket HTML::Restrict gibt es kein Debian-Paket, dies
-          muß per CPAN installiert werden. Unter Ubuntu funktioniert das
-          mit:</para>
+</programlisting>
+          <para>Ab Ubuntu Version 18.04 LTS sind alle benötigten Pakete in der Distributions verfügbar.</para>
+          <para>Für ältere Ubuntu/Debians müßen einige Pakete per CPAN installiert werden.
+          Das geht bspw. für das benötige Paket HTML::Restrict mit:</para>
 
           <programlisting>apt-get install build-essential
 cpan HTML::Restrict</programlisting>
@@ -403,19 +443,17 @@ cpan HTML::Restrict</programlisting>
           RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl
           installiert werden:</para>
 
-          <programlisting>dnf install httpd mod_fcgid perl-Archive-Zip perl-Clone perl-DBD-Pg \
-  perl-DBI perl-DateTime perl-Email-Address perl-Email-MIME perl-FCGI \
-  perl-File-Copy-Recursive perl-JSON perl-List-MoreUtils perl-Net-SMTP-SSL perl-Net-SSLGlue \
-  perl-PDF-API2 perl-Params-Validate perl-Rose-DB perl-Rose-DB-Object \
+          <programlisting>dnf install httpd mod_fcgid postgresql-server \
+  perl-Algorithm-CheckDigits perl-Archive-Zip perl-CPAN perl-Class-XSAccessor \
+  perl-Clone perl-Config-Std perl-DBD-Pg perl-DBI perl-Daemon-Generic \
+  perl-DateTime perl-DateTime-Set perl-Email-Address perl-Email-MIME perl-FCGI \
+  perl-File-Copy-Recursive perl-File-Flock perl-File-MimeInfo perl-File-Slurp \
+  perl-GD perl-HTML-Restrict perl-JSON perl-List-MoreUtils perl-List-UtilsBy \
+  perl-Net-SMTP-SSL perl-Net-SSLGlue perl-PBKDF2-Tiny perl-PDF-API2 \
+  perl-Params-Validate perl-Regexp-IPv6 perl-Rose-DB perl-Rose-DB-Object \
   perl-Rose-Object perl-Sort-Naturally perl-String-ShellQuote \
-  perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI \
-  perl-XML-Writer perl-YAML perl-parent postgresql-server perl-CPAN \
-  perl-Algorithm-CheckDigits perl-GD perl-Class-XSAccessor perl-Text-Balanced perl-libwww-perl</programlisting>
-
-          <para>Zusätzlich müssen einige Pakete aus dem CPAN installiert
-          werden. Dazu können Sie die folgenden Befehle nutzen:</para>
-
-          <programlisting>cpan Config::Std HTML::Restrict</programlisting>
+  perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer \
+  perl-YAML perl-libwww-perl</programlisting>
         </sect3>
 
         <sect3>
@@ -425,18 +463,24 @@ cpan HTML::Restrict</programlisting>
           RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl
           installiert werden:</para>
 
-          <programlisting>zypper install apache2 apache2-mod_fcgid perl-Archive-Zip perl-Clone \
-  perl-Config-Std perl-DBD-Pg perl-DBI perl-DateTime perl-Email-Address \
-  perl-Email-MIME perl-FastCGI perl-File-Copy-Recursive perl-JSON perl-List-MoreUtils \
-  perl-Net-SMTP-SSL perl-Net-SSLGlue perl-PDF-API2 perl-Params-Validate \
-  perl-Sort-Naturally perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv \
-  perl-URI perl-XML-Writer perl-YAML perl-CPAN \
-  perl-Algorithm-CheckDigits perl-GD perl-Class-XSAccessor postgresql-server perl-libwwww-perl</programlisting>
+          <programlisting>zypper install apache2 apache2-mod_fcgid postgresql-server \
+  perl-Algorithm-CheckDigits perl-Archive-Zip perl-CGI perl-Class-XSAccessor \
+  perl-Clone perl-Config-Std perl-DBD-Pg perl-DBI perl-Daemon-Generic \
+  perl-DateTime perl-DateTime-Format-Strptime perl-Email-Address \
+  perl-Email-MIME perl-FastCGI perl-File-Copy-Recursive perl-File-Flock \
+  perl-File-MimeInfo perl-File-Slurp perl-GD perl-Image-Info perl-JSON \
+  perl-List-MoreUtils perl-List-UtilsBy perl-Net-SMTP-SSL perl-Net-SSLGlue \
+  perl-PDF-API2 perl-Params-Validate perl-Regexp-IPv6 perl-Set-Crontab \
+  perl-Sort-Naturally perl-String-ShellQuote perl-Template-Toolkit \
+  perl-Text-CSV_XS perl-Text-Iconv perl-Text-Unidecode perl-URI \
+  perl-XML-Writer perl-YAML perl-libwww-perl
+          </programlisting>
 
           <para>Zusätzlich müssen einige Pakete aus dem CPAN installiert
           werden. Dazu können Sie die folgenden Befehle nutzen:</para>
 
-          <programlisting>cpan Rose::Db::Object</programlisting>
+          <programlisting>cpan DateTime::event::Cron DateTime::Set FCGI \
+  HTML::Restrict PBKDF2::Tiny Rose::Db::Object Set::Infinite</programlisting>
         </sect3>
       </sect2>
 
@@ -449,7 +493,9 @@ cpan HTML::Restrict</programlisting>
         <para>Debian und Ubuntu: <programlisting>apt install aqbanking-tools
         </programlisting></para>
 
-        <para>OpenSuSE: <programlisting>zypper install aqbanking-tools</programlisting></para>
+        <para>Fedora: <programlisting>dnf install aqbanking</programlisting></para>
+
+        <para>openSUSE: <programlisting>zypper install aqbanking-tools</programlisting></para>
 
         <para>Seit Version v3.4.1 wird generell zum Feststellen der
         Seitenanzahl von PDF_Dokumenten 'pdfinfo' benötigt was im Paket
@@ -458,7 +504,9 @@ cpan HTML::Restrict</programlisting>
         <para>Debian und Ubuntu: <programlisting>apt install poppler-utils
         </programlisting></para>
 
-        <para>OpenSuSE: <programlisting>zypper install poppler-tools</programlisting></para>
+        <para>Fedora: <programlisting>dnf install poppler-utils</programlisting></para>
+
+        <para>openSUSE: <programlisting>zypper install poppler-tools</programlisting></para>
       </sect2>
     </sect1>
 
@@ -500,7 +548,7 @@ tar xvzf kivitendo-erp-3.4.1.tgz</programlisting>
       restlichen Dateien müssen für diesen Benutzer lesbar sein. Die Benutzer-
       und Gruppennamen sind bei verschiedenen Distributionen unterschiedlich
       (z.B. bei Debian/Ubuntu <constant>www-data</constant>, bei Fedora
-      <constant>apache</constant> oder bei OpenSUSE
+      <constant>apache</constant> oder bei openSUSE
       <constant>wwwrun</constant>).</para>
 
       <para>Der folgende Befehl ändert den Besitzer für die oben genannten
@@ -524,11 +572,11 @@ git clone https://github.com/kivitendo/kivitendo-erp.git
 cd kivitendo-erp/
 git checkout `git tag -l | egrep -ve "(alpha|beta|rc)" | tail -1`</programlisting>
         Erläuterung: Der Befehl wechselt zur letzten Stable-Version (git tag
-        -l listet alle Tags auf, das egrep schmeisst alle Einträge mit beta
-        oder rc raus und das tail gibt davon den obersten Treffer zurück).
-        Sehr sinnvoll ist es, direkt im Anschluss einen eigenen Branch zu
-        erzeugen, um bspw. seine eigenen Druckvorlagen-Anpassungen damit zu
-        verwalten. Hierfür reicht ein simples <programlisting>  git checkout -b meine_eigenen_änderungen</programlisting>
+        -l listet alle Tags auf, das egrep schmeisst alle Einträge mit alpha,
+        beta oder rc raus und das tail gibt davon den obersten Treffer
+        zurück). Sehr sinnvoll ist es, direkt im Anschluss einen eigenen
+        Branch zu erzeugen, um bspw. seine eigenen Druckvorlagen-Anpassungen
+        damit zu verwalten. Hierfür reicht ein simples <programlisting>  git checkout -b meine_eigenen_änderungen</programlisting>
         nach dem letzten Kommando (weiterführende Informationen <ulink
         url="http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html">
         Git Magic</ulink>).</para>
@@ -849,6 +897,35 @@ psql template1</programlisting> führen Sie die folgenden Kommandos aus:</para>
         </note>
       </sect2>
 
+      <sect2 id="Erweiterung-für-trigram">
+        <title>Erweiterung für Trigram Prozeduren</title>
+
+        <para>Ab Version 3.5.1 wird die Trigram-Index-Erweiterung benötigt.
+        Diese wird mit dem SQL-Updatescript
+        sql/Pg-upgrade2/trigram_extension.sql und Datenbank-Super-Benutzer
+        Rechten automatisch installiert. Dazu braucht der
+        DatenbankSuperbenutzer "postgres" ein Passwort.</para>
+
+        <programlisting>su - postgres
+psql
+\password postgres
+
+Eingabe Passwort
+\q</programlisting>
+
+        <para>Benutzername Postgres und Passwort können jetzt beim Anlegen
+        einer Datenbank bzw. bei Updatescripten, die SuperuserRechte
+        benötigen, eingegeben werden.</para>
+
+        <note>
+          <para><literal>pg_trgm</literal> ist je nach Distribution nicht im
+          Standard-Paket von Postgres enthalten. Ein <programlisting>select * from pg_available_extensions where name ='pg_trgm';</programlisting>
+          in template1 sollte entsprechend erfolgreich sein. Andernfalls muss
+          das Paket nachinstalliert werden, bspw. bei debian/ubuntu
+          <programlisting>apt install postgresql-contrib</programlisting></para>
+        </note>
+      </sect2>
+
       <sect2 id="Datenbankbenutzer-anlegen">
         <title>Datenbankbenutzer anlegen</title>
 
@@ -965,22 +1042,16 @@ Alias /kivitendo-erp/ /var/www/kivitendo-erp/
 
           <itemizedlist>
             <listitem>
-              <para>Apache 2.2.11 (Ubuntu) und mod_fcgid.</para>
+              <para>Apache 2.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid.</para>
             </listitem>
-
             <listitem>
-              <para>Apache 2.2.11 / 2.2.22 (Ubuntu) und mod_fastcgi.</para>
+              <para>Apache 2.4.18 (Ubuntu 16.04 LTS) und mod_fcgid</para>
             </listitem>
-
             <listitem>
-              <para>Apache 2.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid.</para>
+              <para>Apache 2.4.29 (Ubuntu 18.04 LTS) und mod_fcgid</para>
             </listitem>
           </itemizedlist>
 
-          <para>Dabei wird mod_fcgid empfohlen, weil mod_fastcgi seit geraumer
-          Zeit nicht mehr weiter entwickelt wird. Im Folgenden wird auf
-          mod_fastcgi nicht mehr explizit eingegangen.</para>
-
           <para>Als Perl Backend wird das Modul <filename>FCGI.pm</filename>
           verwendet.</para>
 
@@ -1211,7 +1282,7 @@ Alias       /url/for/kivitendo-erp-fcgid/          /path/to/kivitendo-erp/</prog
 
         <sect3>
           <title>SystemV-basierende Systeme (z.B. ältere Debian, ältere
-          OpenSUSE, ältere Fedora)</title>
+          openSUSE, ältere Fedora)</title>
 
           <para>Kopieren Sie die Datei
           <filename>scripts/boot/system-v/kivitendo-task-server</filename>
@@ -1229,7 +1300,7 @@ insserv kivitendo-task-server</programlisting>
             </listitem>
 
             <listitem>
-              <para>Ältere OpenSUSE und ältere Fedora:</para>
+              <para>Ältere openSUSE und ältere Fedora:</para>
 
               <programlisting>chkconfig --add kivitendo-task-server</programlisting>
             </listitem>
@@ -1880,8 +1951,8 @@ systemctl enable kivitendo-task-server.service</programlisting>
       einfachsten ist dazu eine <literal>texlive</literal> Installation. Unter
       debianoiden Betriebssystemen installiert man die Pakete mit:</para>
 
-      <para><programlisting>apt-get install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \
-  texlive-latex-extra texlive-lang-german texlive-generic-extra</programlisting></para>
+      <para><programlisting>apt install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \
+  texlive-latex-extra texlive-lang-german texlive-generic-extra texlive-xetex </programlisting></para>
 
       <para>Für Fedora benötigen Sie die folgenden Pakete:</para>
 
@@ -8341,11 +8412,14 @@ $self-&gt;{more_texts} = {
         angegeben werden. Der hier angegebene Benutzer muss weiterhin das
         Recht haben, Datenbanken anzulegen und zu löschen.</para>
 
-        <para>Der so angegebene Benutzer muss nicht zwingend über Super-User-Rechte verfügen. Allerdings gibt es einige Datenbank-Upgrades,
-        die genau diese Rechte benötigen. Für den Fall kann man in diesem Konfigurationsabschnitt einen weiteren Benutzeraccount angeben,
-        der dann über Super-User-Rechte verfügt, und mit dem die betroffenen Upgrades durchgeführt werden. In der
-        Beispiel-Konfigurationsdatei finden Sie die benötigten Parameter.</para>
-
+        <para>Der so angegebene Benutzer muss nicht zwingend über
+        Super-User-Rechte verfügen. Allerdings gibt es einige
+        Datenbank-Upgrades, die genau diese Rechte benötigen. Für den Fall
+        kann man in diesem Konfigurationsabschnitt einen weiteren
+        Benutzeraccount angeben, der dann über Super-User-Rechte verfügt, und
+        mit dem die betroffenen Upgrades durchgeführt werden. In der
+        Beispiel-Konfigurationsdatei finden Sie die benötigten
+        Parameter.</para>
       </sect2>
 
       <sect2 id="devel.testsuite.execution">