#!/usr/bin/env bash # execute self with sudo if user is not root [[ $UID -ne 0 ]] && exec sudo ./"$0" ### # Set variables ### export DEBIAN_FRONTEND=noninteractive DPKG_CFG_FRAGMENT=/etc/dpkg/dpkg.cfg.d/non-interactive # Linux distro script_distro='Linux Mint 20.3 (Cinnamon Edition)' # Additional packages packages=( # Graphics gimp inkscape pinta krita # Office libreoffice # Security keepassxc # Games 0ad beneath-a-steel-sky billard-gl blobby blockout2 flight-of-the-amazon-queen freeciv frozen-bubble gbrainy gnome-games gweled hedgewars lincity-ng lure-of-the-temptress minetest openttd pingus pipewalker pokerth supertux supertuxkart teeworlds wesnoth widelands # Gaming platforms playonlinux steam wine-stable winetricks # System management gparted # Tools f3 hardinfo regionset vim # Media cheese vlc # Knowledge (incl. programs from the former ubunbu-edu-* meta packages) blinken calibre cantor chemtool dia einstein fritzing gamine gcompris-qt goldendict inkscape kalgebra kalzium kanagram kbruch kgeography khangman kig klettres kmplot kstars ktouch ktuberling kturtle kwordquiz laby lightspeed lybniz marble melting parley pencil2d ri-li rocs step tuxmath tuxpaint tuxtype yorick # Language support openoffice.org-hyphenation language-pack-gnome-ar language-pack-gnome-fa language-pack-gnome-ru language-pack-gnome-uk ) ### # Functions ### # $*: message to echo e() { printf "\e[31m>>>\e[0m %s\n" "$*" } # It's a pain to stop (ctrl+c, kill) execution with all the Python applications # so we catch SIGINT and SIGTERM and exit immediately handle_signal() { e "Ausführung abgebrochen! Skript wird beendet." exit 1 } # always executed on shell exit regardless of reason. for cleanup tasks handle_exit() { e "Finales Cleanup wird durchgeführt …" rm -f "$DPKG_CFG_FRAGMENT" } trap handle_signal SIGINT SIGTERM trap handle_exit EXIT pkg() { apt install "$@" --yes --quiet } ### # Greeting ### echo "\ ##################################### # Computertruhe-Installationsskript # ##################################### ### # Maintainer: Computertruhe e. V. # Website: https://computertruhe.de/ # Version: 1.2.0 # Repo: https://codeberg.org/Computertruhe/Setup-Skripte # Distro: ${script_distro} ### " e "Starte initiales Setup für Rechner mit frisch installiertem '${script_distro}' …" # apt proxy benutzen (bedingt = wenn da) ping -c 1 apt-proxy if [ "$?" -eq "0" ]; then echo 'Acquire::https::Proxy "http://apt-proxy:3142";' > /etc/apt/apt.conf.d/01aptproxy echo 'Acquire::http::Proxy "http://apt-proxy:3142";' >> /etc/apt/apt.conf.d/01aptproxy e "Proxy Apt-Aktiv" else e "Kein Apt-Proxy" fi echo 'Dpkg::Options "--force-unsafe-io";' >> /etc/apt/apt.conf.d/01aptproxy ### # Automatic installation ### # place temporary dpkg configurations to ensure non-interactive upgrade cat <<'DPKG' >"$DPKG_CFG_FRAGMENT" force-confold force-confdef DPKG e "Besten Spiegelserver für '${script_distro}' auswählen …" mint-switch-to-local-mirror e "Paketquellen aktualisieren …" apt update --yes --quiet e "System aktualisieren (apt) …" apt full-upgrade --yes --quiet e "System aktualisieren (mintupdate-cli) …" mintupdate-cli --yes upgrade e "Proprietäre Treiber installieren (sofern verfügbar) …" ubuntu-drivers autoinstall e "Multimediacodecs installieren" pkg mint-meta-codecs e "Zusätzliche Software installieren …" pkg "${packages[@]}" e "Sprachunterstützung vervollständigen …" pkg $(check-language-support) pkg fonts-arabeyes # these packages have to be installed after "$(check-language-support)" pkg hunspell-de-at hunspell-de-ch hunspell-de-de hunspell-uk hunspell-ru e "Unnötige Pakete entfernen und Cache bereinigen …" apt clean --yes --quiet apt autoremove --yes --quiet ### # Finalisation ### e "Apt proxy wieder entfernen..." rm /etc/apt/apt.conf.d/01aptproxy e "Initiales Setup beendet."