d7e33788b009069bd77043c8a2a1a26942c9f798
[kivitendo-erp.git] / doc / html / ch02s02.html
1 <html><head>
2       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3    <title>2.2. Benötigte Software und Pakete</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.5.3: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="next" href="ch02s03.html" title="2.3. Manuelle Installation des Programmpaketes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.2. Benötigte Software und Pakete</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch02s03.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.2. Benötigte Software und Pakete"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Ben%C3%B6tigte-Software-und-Pakete"></a>2.2. Benötigte Software und Pakete</h2></div></div></div><div class="sect2" title="2.2.1. Betriebssystem"><div class="titlepage"><div><div><h3 class="title"><a name="Betriebssystem"></a>2.2.1. Betriebssystem</h3></div></div></div><p>kivitendo ist für Linux konzipiert, und sollte auf jedem
4         unixoiden Betriebssystem zum Laufen zu kriegen sein. Getestet ist
5         diese Version im speziellen auf Debian und Ubuntu, grundsätzlich wurde
6         bei der Auswahl der Pakete aber darauf Rücksicht genommen, dass es
7         ohne große Probleme auf den derzeit aktuellen verbreiteten
8         Distributionen läuft.</p><p>Anfang 2019 sind das folgende Systeme, von denen bekannt ist,
9         dass kivitendo auf ihnen läuft:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Debian</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>8.0 "Jessie"</p></li><li class="listitem"><p>9.0 "Stretch"</p></li><li class="listitem"><p>10.0 "Buster"</p></li></ul></div></li><li class="listitem"><p>16.04 "Xenial Xerus" LTS und 18.04 "Bionic Beaver" LTS
10           </p></li><li class="listitem"><p>openSUSE 15.0</p></li><li class="listitem"><p>Fedora 29</p></li></ul></div></div><div class="sect2" title="2.2.2. Benötigte Perl-Pakete installieren"><div class="titlepage"><div><div><h3 class="title"><a name="Pakete"></a>2.2.2. Benötigte Perl-Pakete installieren</h3></div></div></div><p>Zum Betrieb von kivitendo werden zwingend ein Webserver (meist
11         Apache) und ein Datenbankserver (PostgreSQL) in einer aktuellen
12         Version (s.a. Liste der unterstützten Betriebssysteme)
13         benötigt.</p><p>Zusätzlich benötigt kivitendo einige Perl-Pakete, die nicht
14         Bestandteil einer Standard-Perl-Installation sind. Um zu überprüfen,
15         ob die erforderlichen Pakete installiert und aktuell genug sind, wird
16         ein Script mitgeliefert, das wie folgt aufgerufen wird:</p><pre class="programlisting">./scripts/installation_check.pl</pre><p>Die vollständige Liste der benötigten Perl-Module lautet:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
17                      <code class="literal">Algorithm::CheckDigits</code>
18                   </p></li><li class="listitem"><p>
19                      <code class="literal">Archive::Zip</code>
20                   </p></li><li class="listitem"><p>
21                      <code class="literal">CGI</code>
22                   </p></li><li class="listitem"><p>
23                      <code class="literal">Clone</code>
24                   </p></li><li class="listitem"><p>
25                      <code class="literal">Config::Std</code>
26                   </p></li><li class="listitem"><p>
27                      <code class="literal">Daemon::Generic</code>
28                   </p></li><li class="listitem"><p>
29                      <code class="literal">DateTime</code>
30                   </p></li><li class="listitem"><p>
31                      <code class="literal">DateTime::Event::Cron</code>
32                   </p></li><li class="listitem"><p>
33                      <code class="literal">DateTime::Format::Strptime</code>
34                   </p></li><li class="listitem"><p>
35                      <code class="literal">DateTime::Set</code>
36                   </p></li><li class="listitem"><p>
37                      <code class="literal">DBI</code>
38                   </p></li><li class="listitem"><p>
39                      <code class="literal">DBD::Pg</code>
40                   </p></li><li class="listitem"><p>
41                      <code class="literal">Email::Address</code>
42                   </p></li><li class="listitem"><p>
43                      <code class="literal">Email::MIME</code>
44                   </p></li><li class="listitem"><p>
45                      <code class="literal">Exception::Class</code>
46                   </p></li><li class="listitem"><p>
47                      <code class="literal">FCGI</code> (nicht Versionen 0.68 bis 0.71
48             inklusive; siehe <a class="xref" href="ch02s06.html#Apache-Konfiguration.FCGI.WebserverUndPlugin" title="2.6.2.3. Getestete Kombinationen aus Webservern und Plugin">Abschnitt&nbsp;2.6.2.3, „Getestete Kombinationen aus Webservern und Plugin“</a>)</p></li><li class="listitem"><p>
49                      <code class="literal">File::Copy::Recursive</code>
50                   </p></li><li class="listitem"><p>
51                      <code class="literal">File::Flock</code>
52                   </p></li><li class="listitem"><p>
53                      <code class="literal">File::MimeInfo</code>
54                   </p></li><li class="listitem"><p>
55                      <code class="literal">File::Slurp</code>
56                   </p></li><li class="listitem"><p>
57                      <code class="literal">GD</code>
58                   </p></li><li class="listitem"><p>
59                      <code class="literal">HTML::Parser</code>
60                   </p></li><li class="listitem"><p>
61                      <code class="literal">HTML::Restrict</code>
62                   </p></li><li class="listitem"><p>
63                      <code class="literal">Image::Info</code>
64                   </p></li><li class="listitem"><p>
65                      <code class="literal">JSON</code>
66                   </p></li><li class="listitem"><p>
67                      <code class="literal">List::MoreUtils</code>
68                   </p></li><li class="listitem"><p>
69                      <code class="literal">List::UtilsBy</code>
70                   </p></li><li class="listitem"><p>LWP::Authen::Digest</p></li><li class="listitem"><p>LWP::UserAgent</p></li><li class="listitem"><p>
71                      <code class="literal">Net::SMTP::SSL</code> (optional, bei
72             E-Mail-Versand über SSL; siehe Abschnitt "<a class="xref" href="ch02s11.html#config.sending-email.smtp" title="2.11.2. Versand über einen SMTP-Server">E-Mail-Versand über einen SMTP-Server</a>")</p></li><li class="listitem"><p>
73                      <code class="literal">Net::SSLGlue</code> (optional, bei
74             E-Mail-Versand über TLS; siehe Abschnitt "<a class="xref" href="ch02s11.html#config.sending-email.smtp" title="2.11.2. Versand über einen SMTP-Server">E-Mail-Versand über einen SMTP-Server</a>")</p></li><li class="listitem"><p>
75                      <code class="literal">Params::Validate</code>
76                   </p></li><li class="listitem"><p>
77                      <code class="literal">PBKDF2::Tiny</code>
78                   </p></li><li class="listitem"><p>
79                      <code class="literal">PDF::API2</code>
80                   </p></li><li class="listitem"><p>
81                      <code class="literal">Regexp::IPv6</code>
82                   </p></li><li class="listitem"><p>
83                      <code class="literal">Rose::Object</code>
84                   </p></li><li class="listitem"><p>
85                      <code class="literal">Rose::DB</code>
86                   </p></li><li class="listitem"><p>
87                      <code class="literal">Rose::DB::Object</code> Version 0.788 oder
88             neuer</p></li><li class="listitem"><p>
89                      <code class="literal">Set::Infinite</code>
90                   </p></li><li class="listitem"><p>
91                      <code class="literal">String::ShellQuote</code>
92                   </p></li><li class="listitem"><p>
93                      <code class="literal">Sort::Naturally</code>
94                   </p></li><li class="listitem"><p>
95                      <code class="literal">Template</code>
96                   </p></li><li class="listitem"><p>
97                      <code class="literal">Text::CSV_XS</code>
98                   </p></li><li class="listitem"><p>
99                      <code class="literal">Text::Iconv</code>
100                   </p></li><li class="listitem"><p>
101                      <code class="literal">Text::Unidecode</code>
102                   </p></li><li class="listitem"><p>
103                      <code class="literal">URI</code>
104                   </p></li><li class="listitem"><p>
105                      <code class="literal">XML::Writer</code>
106                   </p></li><li class="listitem"><p>
107                      <code class="literal">YAML::XS</code> oder <code class="literal">YAML</code>
108                   </p></li></ul></div><p>Seit Version größer v3.5.3 sind die folgenden Pakete hinzugekommen: <code class="literal">Exception::Class</code>
109             </p><p>Seit Version größer v3.5.1 sind die folgenden Pakete hinzugekommen: <code class="literal">Set::Infinite</code>,
110         <code class="literal">List::UtilsBy</code>, <code class="literal">DateTime::Set</code>, <code class="literal">DateTime::Event::Cron</code>
111         
112                <code class="literal">Daemon::Generic</code>, <code class="literal">DateTime::Event::Cron</code>, <code class="literal">File::Flock</code>,
113         <code class="literal">File::Slurp</code>
114             </p><p>Seit Version größer v3.5.0 sind die folgenden Pakete
115         hinzugekommen: <code class="literal">Text::Unidecode</code>,
116         <code class="literal">LWP::Authen::Digest</code>,
117         <code class="literal">LWP::UserAgent</code>
118             </p><p>Seit Version v3.4.0 sind die folgenden Pakete hinzugekommen:
119         <code class="literal">Algorithm::CheckDigits</code>,
120         <code class="literal">PBKDF2::Tiny</code>
121             </p><p>Seit Version v3.2.0 sind die folgenden Pakete hinzugekommen:
122         <code class="literal">GD</code>, <code class="literal">HTML::Restrict</code>,
123         <code class="literal">Image::Info</code>
124             </p><p>Seit v3.0.0 sind die folgenden Pakete hinzugekommen:
125         <code class="literal">File::Copy::Recursive</code>.</p><p>Seit v2.7.0 sind die folgenden Pakete hinzugekommen:
126         <code class="literal">Email::MIME</code>, <code class="literal">Net::SMTP::SSL</code>,
127         <code class="literal">Net::SSLGlue</code>.</p><p>Gegenüber Version 2.6.0 sind zu dieser Liste 2 Pakete
128         hinzugekommen, <code class="literal">URI</code> und
129         <code class="literal">XML::Writer</code> sind notwendig. Ohne startet kivitendo
130         nicht.</p><p>Gegenüber Version 2.6.1 sind <code class="literal">parent</code>,
131         <code class="literal">DateTime</code>, <code class="literal">Rose::Object</code>,
132         <code class="literal">Rose::DB</code> und <code class="literal">Rose::DB::Object</code>
133         neu hinzugekommen. <code class="literal">IO::Wrap</code> wurde entfernt.</p><p>Gegenüber Version 2.6.3 ist <code class="literal">JSON</code> neu
134         hinzugekommen.</p><p>
135                <code class="literal">Email::Address</code> und
136         <code class="literal">List::MoreUtils</code> sind schon länger feste
137         Abhängigkeiten, wurden aber bisher mit kivitendo mitgeliefert. Beide
138         sind auch in 2.6.1 weiterhin mit ausgeliefert, wurden in einer
139         zukünftigen Version aber aus dem Paket entfernt werden. Es wird
140         empfohlen diese Module zusammen mit den anderen als Bibliotheken zu
141         installieren.</p><div class="sect3" title="2.2.2.1. Debian und Ubuntu"><div class="titlepage"><div><div><h4 class="title"><a name="d0e548"></a>2.2.2.1. Debian und Ubuntu</h4></div></div></div><p>Für Debian und Ubuntu stehen die meisten der benötigten
142           Pakete als Debian-Pakete zur Verfügung. Sie können mit
143           folgendem Befehl installiert werden:</p><pre class="programlisting">apt install  apache2 libarchive-zip-perl libclone-perl \
144   libconfig-std-perl libdatetime-perl libdbd-pg-perl libdbi-perl \
145   libemail-address-perl  libemail-mime-perl libfcgi-perl libjson-perl \
146   liblist-moreutils-perl libnet-smtp-ssl-perl libnet-sslglue-perl \
147   libparams-validate-perl libpdf-api2-perl librose-db-object-perl \
148   librose-db-perl librose-object-perl libsort-naturally-perl \
149   libstring-shellquote-perl libtemplate-perl libtext-csv-xs-perl \
150   libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \
151   libimage-info-perl libgd-gd2-perl libapache2-mod-fcgid \
152   libfile-copy-recursive-perl postgresql libalgorithm-checkdigits-perl \
153   libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl libwww-perl\
154   postgresql-contrib aqbanking-tools poppler-utils libhtml-restrict-perl\
155   libdatetime-set-perl libset-infinite-perl liblist-utilsby-perl\
156   libdaemon-generic-perl libfile-flock-perl libfile-slurp-perl\
157   libfile-mimeinfo-perl libpbkdf2-tiny-perl libregexp-ipv6-perl \
158   libdatetime-event-cron-perl libexception-class-perl
159 </pre><p>Sollten Pakete nicht zu Verfügung stehen, so können diese auch mittels CPAN installiert werden. Ferner muss für Ubuntu das Repository "Universe" aktiv sein (s.a. Anmerkungen).</p><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left"><a name="ubuntu-universe"></a>Anmerkung</th></tr><tr><td align="left" valign="top"><p>Die Perl Pakete für Ubuntu befinden sich im "Universe" Repository. Falls dies nicht aktiv ist, kann dies mit folgendem Aufruf aktiviert werden:
160 </p><pre class="programlisting">add-apt-repository universe</pre><p>
161                   </p></td></tr></table></div><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left"><a name="build-essential"></a>Anmerkung</th></tr><tr><td align="left" valign="top"><p>Für ältere Ubuntu/Debians müßen einige Pakete per CPAN installiert werden.
162           Das geht bspw. für das benötige Paket HTML::Restrict mit:</p><pre class="programlisting">apt-get install build-essential
163 cpan HTML::Restrict</pre></td></tr></table></div></div><div class="sect3" title="2.2.2.2. Fedora"><div class="titlepage"><div><div><h4 class="title"><a name="d0e568"></a>2.2.2.2. Fedora</h4></div></div></div><p>Für Fedora stehen die meisten der benötigten Perl-Pakete als
164           RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl
165           installiert werden:</p><pre class="programlisting">dnf install httpd mod_fcgid postgresql-server postgresql-contrib\
166   perl-Algorithm-CheckDigits perl-Archive-Zip perl-CPAN perl-Class-XSAccessor \
167   perl-Clone perl-Config-Std perl-DBD-Pg perl-DBI perl-Daemon-Generic \
168   perl-DateTime perl-DateTime-Set perl-Email-Address perl-Email-MIME perl-FCGI \
169   perl-File-Copy-Recursive perl-File-Flock perl-File-MimeInfo perl-File-Slurp \
170   perl-GD perl-HTML-Restrict perl-JSON perl-List-MoreUtils perl-List-UtilsBy \
171   perl-Net-SMTP-SSL perl-Net-SSLGlue perl-PBKDF2-Tiny perl-PDF-API2 \
172   perl-Params-Validate perl-Regexp-IPv6 perl-Rose-DB perl-Rose-DB-Object \
173   perl-Rose-Object perl-Sort-Naturally perl-String-ShellQuote \
174   perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer \
175   perl-YAML perl-libwww-perl</pre></div><div class="sect3" title="2.2.2.3. openSUSE"><div class="titlepage"><div><div><h4 class="title"><a name="d0e575"></a>2.2.2.3. openSUSE</h4></div></div></div><p>Für openSUSE stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung.</p><p>Dies setzt voraus, das eben die erforderlichen Repositories dem System bekannt sind.</p><p>Liste wird noch angegeben.</p><p>Das überprüfen wir mit YaST. Sollte openSUSE bis zur Version 15.0 zum Einsatz kommen und der Administrator bei der Installation der Distribution die KDE Oberfläche aktiviert hat, loggen wir uns am Server direkt an, starten das Verwaltungsprogram in einer Konsole wie folgt:</p><p>yast2 return.</p><p>Oder über die Menuführung wie folgt: Ein Klick auf das runde Icon, ganz links unten in der Menüleiste dann die Maus Verfahren auf System und YaST.</p><p>Sie können mit folgendem Befehl installiert werden:</p><p>zypper install Paketname</p><p>Es wird empholen zusätzliche Pakete nicht direkt mit CPAN zu installieren, da man diese auch über andere Repositories beziehen kann, die bei openSUSE zur Verfügung stehen. Dadurch hat man den Vorteil, dass die Pakte mit Yast verwaltet werden, also wieder deinstalliert werden können. Oder durch neuere ersetzt werden können. Zudem kann man auch noch eventuelle Bugs an openSUSE senden und diese dem Maintainer melden.</p><pre class="programlisting">zypper install perl-threads-shared ghc-pdfinfo apache2-mod_fcgid \
176   yast2-http-server \
177   postgresql-server postgresql-contrib perl-Algorithm-CheckDigits perl-Archive-Zip \
178   perl-CGI perl-CGI-Ajax perl-Clone perl-Config-Std \
179   perl-Class-XSAccessor perl-Daemon-Generic perl-DateTime perl-DateTime-Event-Cron \
180   perl-DateTime-Format-Strptime perl-DateTime-Set perl-DBI perl-DBD-Pg \
181   perl-Devel-REPL perl-FastCGI perl-Email-Address perl-Email-MIME \
182   perl-Email-MIME-ContentType perl-Email-MIME-Encodings perl-FCGI \
183   perl-File-Copy-Recursive \
184   perl-File-Flock perl-File-MimeInfo perl-File-Slurp perl-GD \
185   perl-HTML-Restrict perl-Image-Info perl-JSON perl-List-MoreUtils \
186   perl-List-UtilsBy perl-Log-Log4perl perl-Net-LDAP-Server perl-Net-SSLGlue \
187   perl-Net-SMTP-SSL perl-PBKDF2-Tiny perl-PDF-API2 perl-Params-Validate \
188   perl-Regexp-IPv6 perl-Rose-DB perl-Rose-Object perl-Rose-DB-Object \
189   perl-MooseX-Role-Cmd perl-Set-Crontab perl-Set-Infinite perl-Sort-Naturally \
190   perl-String-ShellQuote perl-Sys-CPU perl-Template-Toolkit perl-Text-CSV_XS \
191   perl-Test-Deep perl-Test-Output perl-Text-Iconv perl-Text-Unidecode \
192   perl-URI perl-URI-Find perl-XML-Writer perl-YAML \
193   perl-libwww-perl
194           </pre><p>Zusätzlich müssen einige Pakete für den Umgang mit Latex installiert werden. Die Latex Module barcodes sind nützliche Helfer um auch Barcodes im Dokument zu plazieren, der Vollständigkeit halber hier für die Installation mit angegeben.
195               Dazu können Sie die folgenden Befehle nutzen:</p><pre class="programlisting">zypper install texlive-wallpaper texlive-colortbl \
196   texlive-scrlttr2copy texlive-eurosym \
197   texlive-geometry texlive-german texlive-graphbox texlive-hyperref \
198   texlive-xifthen texlive-luainputenc texlive-lastpage texlive-ltabptch \
199   texlive-nomentbl texlive-threeparttablex texlive-substr texlive-tabulary \
200   texlive-ulem texlive-wallpaper texlive-xcolor texlive-xstring \
201   texlive-xypic texlive-mwe texlive-mweights texlive-barcodes \
202   texlive-GS1 texlive-ean texlive-makebarcode texlive-pst-barcode \
203   texlive-upca
204           </pre><p>Zusätzlich müssen einige Pakete aus dem CPAN installiert
205           werden. Dazu können Sie die folgenden Befehle nutzen:</p><pre class="programlisting">cpan DateTime::event::Cron DateTime::Set FCGI \
206   HTML::Restrict PBKDF2::Tiny Rose::Db::Object Set::Infinite</pre></div></div><div class="sect2" title="2.2.3. Andere Pakete installieren"><div class="titlepage"><div><div><h3 class="title"><a name="d0e606"></a>2.2.3. Andere Pakete installieren</h3></div></div></div><p>Seit Version v3.4.0 wird für den Bankimport optional das Paket
207         'aqbanking-tools' benötigt.</p><p>Debian und Ubuntu: </p><pre class="programlisting">apt install aqbanking-tools
208         </pre><p>
209             </p><p>Fedora: </p><pre class="programlisting">dnf install aqbanking</pre><p>
210             </p><p>openSUSE: </p><pre class="programlisting">zypper install aqbanking-tools</pre><p>
211             </p><p>Seit Version v3.4.1 wird generell zum Feststellen der
212         Seitenanzahl von PDF_Dokumenten 'pdfinfo' benötigt was im Paket
213         'poppler-utils' enthalten ist.</p><p>Debian und Ubuntu: </p><pre class="programlisting">apt install poppler-utils
214         </pre><p>
215             </p><p>Fedora: </p><pre class="programlisting">dnf install poppler-utils</pre><p>
216             </p><p>openSUSE: </p><pre class="programlisting">zypper install poppler-tools</pre><p>
217             </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Zurück</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02s03.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">Kapitel 2. Installation und Grundkonfiguration&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;2.3. Manuelle Installation des Programmpaketes</td></tr></table></div></body></html>