kivitendo 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 2019 sind das folgende Systeme, von denen bekannt ist, dass kivitendo auf ihnen läuft:
Debian
8.0 "Jessie"
9.0 "Stretch"
16.04 "Xenial Xerus" LTS und 18.04 "Bionic Beaver" LTS
openSUSE 15.0
Fedora 29
Zum Betrieb von kivitendo werden zwingend ein Webserver (meist Apache) und ein Datenbankserver (PostgreSQL) in einer aktuellen Version (s.a. Liste der unterstützten Betriebssysteme) benötigt.
Zusätzlich benötigt kivitendo einige Perl-Pakete, die nicht Bestandteil einer Standard-Perl-Installation sind. Um zu überprüfen, ob die erforderlichen Pakete installiert und aktuell genug sind, wird ein Script mitgeliefert, das wie folgt aufgerufen wird:
./scripts/installation_check.pl
Die vollständige Liste der benötigten Perl-Module lautet:
                     Algorithm::CheckDigits
                  
                     Archive::Zip
                  
                     CGI
                  
                     Clone
                  
                     Config::Std
                  
                     Daemon::Generic
                  
                     DateTime
                  
                     DateTime::Event::Cron
                  
                     DateTime::Format::Strptime
                  
                     DateTime::Set
                  
                     DBI
                  
                     DBD::Pg
                  
                     Email::Address
                  
                     Email::MIME
                  
                     FCGI (nicht Versionen 0.68 bis 0.71
            inklusive; siehe Abschnitt 2.6.2.3, „Getestete Kombinationen aus Webservern und Plugin“)
                     File::Copy::Recursive
                  
                     File::Flock
                  
                     File::MimeInfo
                  
                     File::Slurp
                  
                     GD
                  
                     HTML::Parser
                  
                     HTML::Restrict
                  
                     Image::Info
                  
                     JSON
                  
                     List::MoreUtils
                  
                     List::UtilsBy
                  
LWP::Authen::Digest
LWP::UserAgent
                     Net::SMTP::SSL (optional, bei
            E-Mail-Versand über SSL; siehe Abschnitt "E-Mail-Versand über einen SMTP-Server")
                     Net::SSLGlue (optional, bei
            E-Mail-Versand über TLS; siehe Abschnitt "E-Mail-Versand über einen SMTP-Server")
                     Params::Validate
                  
                     PBKDF2::Tiny
                  
                     PDF::API2
                  
                     Regexp::IPv6
                  
                     Rose::Object
                  
                     Rose::DB
                  
                     Rose::DB::Object Version 0.788 oder
            neuer
                     Set::Infinite
                  
                     Set::Crontab
                  
                     String::ShellQuote
                  
                     Sort::Naturally
                  
                     Template
                  
                     Text::CSV_XS
                  
                     Text::Iconv
                  
                     Text::Unidecode
                  
                     URI
                  
                     XML::Writer
                  
                     YAML
                  
Seit Version größer v3.5.1 sind die folgenden Pakete hinzugekommen: Set::Infinite,
        List::UtilsBy, DateTime::Set, DateTime::Event::Cron
        
               Daemon::Generic 
               DateTime::Event::Cron 
               File::Flock
        
               File::Slurp 
               Set::Crontab 
               Exception::Lite. 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).
Seit Version größer v3.5.0 sind die folgenden Pakete
        hinzugekommen: Text::Unidecode,
        LWP::Authen::Digest,
        LWP::UserAgent
            
Seit Version v3.4.0 sind die folgenden Pakete hinzugekommen:
        Algorithm::CheckDigits,
        PBKDF2::Tiny
            
Seit Version v3.2.0 sind die folgenden Pakete hinzugekommen:
        GD, HTML::Restrict,
        Image::Info
            
Seit v3.0.0 sind die folgenden Pakete hinzugekommen:
        File::Copy::Recursive.
Seit v2.7.0 sind die folgenden Pakete hinzugekommen:
        Email::MIME, Net::SMTP::SSL,
        Net::SSLGlue.
Gegenüber Version 2.6.0 sind zu dieser Liste 2 Pakete
        hinzugekommen, URI und
        XML::Writer sind notwendig. Ohne startet kivitendo
        nicht.
Gegenüber Version 2.6.1 sind parent,
        DateTime, Rose::Object,
        Rose::DB und Rose::DB::Object
        neu hinzugekommen. IO::Wrap wurde entfernt.
Gegenüber Version 2.6.3 ist JSON neu
        hinzugekommen.
               Email::Address und
        List::MoreUtils sind schon länger feste
        Abhängigkeiten, wurden aber bisher mit kivitendo 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.
Für Debian und Ubuntu stehen die meisten der benötigten Pakete als Debian-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden:
apt install apache2 libarchive-zip-perl libclone-perl \ libconfig-std-perl libdatetime-perl libdbd-pg-perl libdbi-perl \ libemail-address-perl libemail-mime-perl libfcgi-perl libjson-perl \ liblist-moreutils-perl libnet-smtp-ssl-perl libnet-sslglue-perl \ libparams-validate-perl libpdf-api2-perl librose-db-object-perl \ librose-db-perl librose-object-perl libsort-naturally-perl \ libstring-shellquote-perl libtemplate-perl libtext-csv-xs-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\ 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
Ab Ubuntu Version 18.04 LTS sind alle benötigten Pakete in der Distributions verfügbar.
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:
apt-get install build-essential cpan HTML::Restrict
Für Fedora stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden:
dnf install httpd mod_fcgid postgresql-server postgresql-contrib\ 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-libwww-perl
Für openSUSE stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden:
zypper install apache2 apache2-mod_fcgid postgresql-server postgresql-contrib\
  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
          Zusätzlich müssen einige Pakete aus dem CPAN installiert werden. Dazu können Sie die folgenden Befehle nutzen:
cpan DateTime::event::Cron DateTime::Set FCGI \ HTML::Restrict PBKDF2::Tiny Rose::Db::Object Set::Infinite
Seit Version v3.4.0 wird für den Bankimport optional das Paket 'aqbanking-tools' benötigt.
Debian und Ubuntu:
apt install aqbanking-tools
        
Fedora:
dnf install aqbanking
openSUSE:
zypper install aqbanking-tools
Seit Version v3.4.1 wird generell zum Feststellen der Seitenanzahl von PDF_Dokumenten 'pdfinfo' benötigt was im Paket 'poppler-utils' enthalten ist.
Debian und Ubuntu:
apt install poppler-utils
        
Fedora:
dnf install poppler-utils
openSUSE:
zypper install poppler-tools