From 2c826fd75d15f8a4bd25f294ad39029e97c5dee8 Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 24 Nov 2017 16:57:22 +0100 Subject: [PATCH] Add script to install all needed debian packages and perl modules. Usefull after upgrading the Operating System (OS). --- README.debian_packages | 90 +++++++++++++++ README.perl_modules | 15 +++ install_all_needed_resources.sh | 187 ++++++++++++++++++++++++++++++++ 3 files changed, 292 insertions(+) create mode 100644 README.debian_packages create mode 100644 README.perl_modules create mode 100755 install_all_needed_resources.sh diff --git a/README.debian_packages b/README.debian_packages new file mode 100644 index 0000000..5abe521 --- /dev/null +++ b/README.debian_packages @@ -0,0 +1,90 @@ +# - Debian packages needed for a complete mailserver +# - postfix/postfixadmin/vacation/amavis/dovecot/roundcube +# - + + alien + amavisd-new + arc + arj + aspell-da + aspell-de + aspell-en + aspell-es + aspell-fr + aspell-it + binutils + bsd-mailx + bzip2 + cabextract + clamav-base + clamav-daemon + clamav-docs + clamav-freshclam + cpanminus + cpio\ + ftp + geoip-bin + geoip-database + haveged + lhasa + libclamunrar7 + libdbd-mysql + libdbd-mysql-perl + libdbd-pg-perl + libdbd-pgsql + libdbi-dev + libdbi-perl + libemail-sender-perl + libemail-valid-perl + libgeoip-dev + libgeo-ipfree-perl + libgeo-ip-perl + libgmp10 + libgmp-dev + libimage-info-perl + libio-socket-ssl-perl + libio-string-perl + libio-zlib-perl + libkrb5-dev + liblog-log4perl-perl + liblz4-tool + libmail-dkim-perl + libmail-sendmail-perl + libmail-spf-perl + libmime-encwords-perl + libnet-cidr-lite-perl + libnet-ident-perl + libpq5 + libpq-dev + libsasl2-modules + lrzip + lzop + melt + ncftp + nomarch + opendkim + opendkim-tools + p7zip + p7zip-full + p7zip-rar + pax + postfix + postfix-mysql + postfix-pcre + postfix-pgsql + postgrey + pyzor + rar + re2c + ripole + rpm + sasl2-bin + socat + spamassassin razor + tar + tnef + unrar + unrar-free + unzip + zip + zoo diff --git a/README.perl_modules b/README.perl_modules new file mode 100644 index 0000000..93b1b6d --- /dev/null +++ b/README.perl_modules @@ -0,0 +1,15 @@ +# - Perl modules needed for a complete mailserver +# - postfix/postfixadmin/vacation/amavis/dovecot/roundcube +# - + + CPAN + Mail::Sender + DBI + DBD::mysql + DBD::Pg + IO::Socket::UNIX + Digest::SHA1 + Digest::SHA2 + Digest::SHA256 + Encode::Detect + Net::Patricia diff --git a/install_all_needed_resources.sh b/install_all_needed_resources.sh new file mode 100755 index 0000000..9dae596 --- /dev/null +++ b/install_all_needed_resources.sh @@ -0,0 +1,187 @@ +#!/usr/bin/env bash + +_src_base_dir="$(realpath $(dirname $0))" + +log_file="$(mktemp)" + + +# ------------- +# - Functions +# ------------- + +clean_up() { + + # Perform program exit housekeeping + rm -f "$log_file" + exit $1 +} + +echononl(){ + echo X\\c > /tmp/shprompt$$ + if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then + echo "$*\\c" 1>&2 + else + echo -e -n "$*" 1>&2 + fi + rm /tmp/shprompt$$ +} + +error(){ + echo "" + echo -e "\t[ \033[31m\033[1mFehler\033[m ]: $*" + echo "" +} + +echo_ok() { + echo -e "\033[75G[ \033[32mok\033[m ]" + ## echo -e " [ ok ]" +} +echo_failed(){ + echo -e "\033[75G[ \033[1;31mfailed\033[m ]" + ## echo -e " [ failed ]" +} +echo_skipped() { + echo -e "\033[80G[ \033[33m\033[1mskipped\033[m ]" +} + +_needed_packages_base=" + alien + amavisd-new + arc + arj + aspell-da + aspell-de + aspell-en + aspell-es + aspell-fr + aspell-it + binutils + bsd-mailx + bzip2 + cabextract + clamav-base + clamav-daemon + clamav-docs + clamav-freshclam + cpanminus + cpio\ + ftp + geoip-bin + geoip-database + haveged + lhasa + libclamunrar7 + libdbd-mysql + libdbd-mysql-perl + libdbd-pg-perl + libdbd-pgsql + libdbi-dev + libdbi-perl + libemail-sender-perl + libemail-valid-perl + libgeoip-dev + libgeo-ipfree-perl + libgeo-ip-perl + libgmp10 + libgmp-dev + libimage-info-perl + libio-socket-ssl-perl + libio-string-perl + libio-zlib-perl + libkrb5-dev + liblog-log4perl-perl + liblz4-tool + libmail-dkim-perl + libmail-sendmail-perl + libmail-spf-perl + libmime-encwords-perl + libnet-cidr-lite-perl + libnet-ident-perl + libpq5 + libpq-dev + libsasl2-modules + lrzip + lzop + melt + ncftp + nomarch + opendkim + opendkim-tools + p7zip + p7zip-full + p7zip-rar + pax + postfix + postfix-mysql + postfix-pcre + postfix-pgsql + postgrey + pyzor + rar + re2c + ripole + rpm + sasl2-bin + socat + spamassassin razor + tar + tnef + unrar + unrar-free + unzip + zip + zoo" + +echo "" +echononl " Install needed debian packages" + +for _pkg in $_needed_packages_base ; do + if aptitude search "$_pkg" | grep " $_pkg " | grep -e "^i" > /dev/null 2>&1 ; then + continue + else + needed_packages_base="$needed_packages_base $_pkg" + fi +done +if [[ -n "$needed_packages_base" ]]; then + DEBIAN_FRONTEND=noninteractive apt-get -y install $needed_packages_base > /dev/null 2> "$log_file" + if [[ $? -eq 0 ]] ; then + echo_ok + else + echo_failed + error "$(cat $log_file)" + fi +else + echo_skipped +fi + +echo "" +echononl " Install database related CPAN Modules" +_failed=false +> $log_file +_needed_cpan_modules=" + CPAN + Mail::Sender + DBI + DBD::mysql + DBD::Pg + IO::Socket::UNIX + Digest::SHA1 + Digest::SHA2 + Digest::SHA256 + Encode::Detect + Net::Patricia" +for _module in $_needed_cpan_modules ; do + cpanm -q --skip-installed $_module >> "$log_file" 2>&1 + if [[ "$?" -ne 0 ]] ; then + _failed=true + fi +done +if $_failed ; then + echo_failed + error "$(cat $log_file)" +else + echo_ok +fi + +echo "" +clean_up 0