Anleitung: servercheck() Funktion
Beschreibung
Diese Funktion überprüft die Server-Kompatibilität für .NET-Anwendungen und installiert fehlende Abhängigkeiten.
Unterstützte Distributionen
Direkt kompatible Distributionen
- Debian 11+ (Bullseye, Bookworm)
- Debian 12
- Ubuntu 18.04, 20.04, 22.04, 24.04
- Linux Mint (basierend auf Ubuntu 20.04 oder 22.04)
- Pop!_OS (basierend auf Ubuntu)
- MX Linux (Debian-basiert)
- Arch Linux
- Manjaro
Mögliche kompatible Distributionen (mit Anpassungen)
- Kali Linux
- Zorin OS
- elementary OS
- Raspberry Pi OS
Funktionsweise
1️⃣ Systemerkennung
Die Funktion ermittelt das Betriebssystem und die Version automatisch:
os_id=$(grep '^ID=' /etc/os-release | cut -d= -f2 | tr -d '"')
os_version=$(grep '^VERSION_ID=' /etc/os-release | cut -d= -f2 | tr -d '"')
2️⃣ .NET-Version Bestimmung
Die Funktion wählt die passende .NET-Version basierend auf der erkannten Distribution:
| Distribution | Version | .NET Version |
|---|---|---|
| Ubuntu/Linux Mint | 24.04 | dotnet-sdk-8.0 |
| Ubuntu/Linux Mint | 22.04 | dotnet-sdk-8.0 |
| Ubuntu/Linux Mint | 20.04 | dotnet-sdk-8.0 |
| Ubuntu/Linux Mint | 18.04 | dotnet-sdk-6.0 |
| Debian | ≥11 | dotnet-sdk-8.0 |
| Debian | 12 | dotnet-sdk-8.0 |
| Arch/Manjaro | - | dotnet-sdk-8.0 |
Falls eine nicht unterstützte Version erkannt wird, gibt die Funktion 1 zurück.
3️⃣ .NET Installation
Je nach Paketmanager wird .NET installiert:
-
Für Arch/Manjaro:
pacman -S --noconfirm dotnet-sdk-8.0 -
Für Debian-basierte Systeme:
apt-get install -y dotnet-sdk-8.0
4️⃣ Abhängigkeiten Installation
Die folgenden Pakete werden überprüft und ggf. installiert:
libc6 libgcc-s1 libgssapi-krb5-2 libicu70 liblttng-ust1
libssl3 libstdc++6 libunwind8 zlib1g libgdiplus zip screen
Falls Pakete nicht gefunden werden, gibt das Skript eine Warnung aus:
for package in "${pkg_list[@]}"; do
if ! dpkg -s "$package" >/dev/null 2>&1; then
echo -e "${SYM_OK} ${COLOR_ACTION}Versuche ${COLOR_SERVER}$package${COLOR_RESET} zu installieren..."
if ! sudo apt-get install -y "$package"; then
echo -e "${SYM_BAD} ${COLOR_WARNING}Fehler bei der Installation von $package! Bitte manuell überprüfen.${COLOR_RESET}"
fi
fi
done
5️⃣ Fehlerbehandlung & Logging
Falls das Skript auf einem Produktionsserver läuft, kann eine Logging-Funktion hilfreich sein:
LOGFILE="/var/log/servercheck.log"
log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOGFILE"
}
log_message "Servercheck gestartet..."
for package in "${pkg_list[@]}"; do
if ! dpkg -s "$package" >/dev/null 2>&1; then
log_message "Installiere Paket: $package"
if ! sudo apt-get install -y "$package"; then
log_message "❌ Fehler bei der Installation von $package"
fi
fi
done
log_message "Servercheck abgeschlossen."
Ausgabe
Die Funktion gibt farbige Statusmeldungen aus:
- 🔍 Server-Kompatibilitätscheck wird durchgeführt...
- 🔄 .NET Runtime-Überprüfung:
- 📦 Überprüfe fehlende Pakete...
- Erfolgsmeldungen bei Installationen
- Fehlerwarnungen bei nicht gefundenen Paketen
Rückgabewerte
- Erfolg: Kein Rückgabewert
- Fehler: Gibt
1zurück, wenn keine unterstützte Distribution gefunden wurde
Verwendung
Einfach die Funktion im Terminal aufrufen:
bash osmtool.sh servercheck
Voraussetzungen
- Das Skript muss mit Root-Rechten oder
sudoausgeführt werden. - Farbvariablen müssen definiert sein (
COLOR_HEADING,COLOR_RESET, etc.). - Symbole (
SYM_OK,SYM_BAD) müssen definiert sein. - Die Funktion
blanklinemuss verfügbar sein.
Hinweise
- Für nicht direkt unterstützte Distributionen kann eine manuelle Installation erforderlich sein.
- Falls ein Paket nicht verfügbar ist, kann eine alternative Version benötigt werden (z. B.
libicu70→libicu71). - Auf Ubuntu 18.04 wird nur .NET 6 unterstützt.
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen, sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.