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

169 lines
3.8 KiB
Bash
Raw Normal View History

#!/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.1'
# Additional packages
packages=(
# Program packages
libreoffice
keepassxc
gparted
hardinfo
2020-09-23 00:22:56 +02:00
regionset
cheese
vlc
# Language related packages
# Generic
openoffice.org-hyphenation
# AR
language-pack-gnome-ar-base
firefox-locale-ar
fonts-arabeyes
hunspell-ar
libreoffice-l10n-ar
mythes-ar
thunderbird-locale-ar
# DE
firefox-locale-de
hunspell-de-at
hunspell-de-ch
hunspell-de-de
# EN
thunderbird-locale-en-gb
# FA
language-pack-gnome-fa-base
firefox-locale-fa
libreoffice-l10n-fa
myspell-fa
thunderbird-locale-fa
# RU
language-pack-gnome-ru-base
firefox-locale-ru
thunderbird-locale-ru
# UK
language-pack-gnome-uk-base
libreoffice-l10n-uk
firefox-locale-uk
thunderbird-locale-uk
hyphen-uk
mythes-uk
hunspell-uk
wukrainian
)
###
# 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.3.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 "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 …"
2022-07-12 21:00:53 +02:00
pkg mint-meta-codecs
e "Zusätzliche Software installieren …"
pkg "${packages[@]}"
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