Computertruhe-Setup-Skripte.../mint/linux_mint.sh

150 lines
3.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# Execute itself 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 21'
# Additional packages
packages=(
libreoffice
keepassxc
gparted
hardinfo
regionset
cheese
vlc
# 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 execution (CTRL+C, kill) 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 when exiting the shell, regardless of the reason.
handle_exit() {
e "Finale Aufräumarbeiten werden durchgeführt …"
rm -f "$DPKG_CFG_FRAGMENT"
rm -f /etc/apt/apt.conf.d/01aptproxy
e "Initiales Setup beendet."
}
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: 2.2.0
# Repo: https://codeberg.org/Computertruhe/Setup-Skripte
# Distro: ${script_distro}
###
"
e "Starte initiales Setup für Rechner mit frisch installiertem '${script_distro}' …"
# Use APT proxy if available.
ping -c 1 apt-proxy
if [ "$?" -eq "0" ]; then
e "Nutze APT-Proxy."
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
else
e "Kein APT-Proxy gefunden."
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 "Multimedia-Codecs installieren …"
pkg mint-meta-codecs
e "Zusätzliche Software installieren …"
pkg "${packages[@]}"
e "Sprachunterstützung vervollständigen …"
pkg $(check-language-support)
e "Arabische Schrift"
pkg fonts-arabeyes
e "Kyrillische Schrift"
pkg xfonts-cyrillic
# 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
e "Handbuch \"Linux Mint Handbuch der Computertruhe für Ein- und Umsteiger*innen\" herunterladen …"
mkdir /etc/skel/Desktop
wget -O "/etc/skel/Desktop/Linux Mint Handbuch der Computertruhe für Ein- und Umsteiger*innen.pdf" https://computertruhe.de/handbuecher/linux_mint.pdf
e "Handbuch \"Besonderheiten von MacBooks im Zusammenhang mit Linux Mint\" herunterladen …"
if [ $(dmidecode -t1 | grep -ci "macbook") -ge 1 ]
then
wget -O "/etc/skel/Desktop/Besonderheiten von MacBooks im Zusammenhang mit Linux Mint.pdf" https://computertruhe.de/handbuecher/macbook_linux_mint.pdf
else
e "Das Skript läuft nicht auf einem MacBook."
fi