#!/bin/bash # ================================ # Skript zur Konfiguration von Debian # ================================ # Beschreibung: # Dieses Skript aktualisiert die Quellenliste, fügt neue Repositorys hinzu, # installiert notwendige Softwarepakete über APT und Flatpak, und installiert # zusätzliche .deb-Pakete. # Farben für farbige Terminalausgaben definieren GREEN='\033[0;32m' RED='\033[0;31m' NC='\033[0m' # Keine Farbe # System aktualisieren sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y # Variablen SOURCES_FILE="/etc/apt/sources.list" NEW_CONTENT=$(cat < /dev/null if [[ $? -ne 0 ]]; then echo -e "${RED}Fehler beim Aktualisieren der Quellenliste.${NC}" exit 1 fi echo -e "${GREEN}GPG-Schlüssel hinzufügen...${NC}" wget -qO /etc/apt/trusted.gpg.d/ecodms.asc http://www.ecodms.de/gpg/ecodms.key || { echo -e "${RED}Download des GPG-Schlüssels fehlgeschlagen.${NC}" exit 1 } } # Funktion: System aktualisieren und Pakete installieren install_apt_packages() { echo -e "${GREEN}System wird aktualisiert...${NC}" sudo apt update && sudo apt upgrade -y || { echo -e "${RED}Fehler bei Systemaktualisierung.${NC}" exit 1 } echo -e "${GREEN}Installiere APT-Pakete...${NC}" for PACKAGE in "${APT_PACKAGES[@]}"; do if sudo apt install -y "$PACKAGE"; then echo -e "${GREEN}$PACKAGE erfolgreich installiert.${NC}" else echo -e "${RED}Fehler bei der Installation von $PACKAGE.${NC}" fi done } # Funktion: Snap installieren und Pakete einrichten install_snap_packages() { if ! command -v snap &> /dev/null; then echo -e "${GREEN}Snap wird installiert...${NC}" sudo apt install -y snapd || { echo -e "${RED}Fehler bei der Snap-Installation.${NC}" exit 1 } fi echo -e "${GREEN}Installiere Snap-Pakete...${NC}" for SNAP in "${SNAP_PACKAGES[@]}"; do if sudo snap install "$SNAP" --classic; then echo -e "${GREEN}$SNAP erfolgreich installiert.${NC}" else echo -e "${RED}Fehler bei der Installation von $SNAP.${NC}" fi done } # Funktion: Flatpak installieren und Pakete einrichten install_flatpak_packages() { if ! command -v flatpak &> /dev/null; then echo -e "${GREEN}Flatpak wird installiert...${NC}" sudo apt install -y flatpak || { echo -e "${RED}Fehler bei der Flatpak-Installation.${NC}" exit 1 } sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo fi echo -e "${GREEN}Installiere Flatpak-Pakete...${NC}" for PACKAGE in "${FLATPAK_PACKAGES[@]}"; do if flatpak install -y flathub "$PACKAGE"; then echo -e "${GREEN}$PACKAGE erfolgreich installiert.${NC}" else echo -e "${RED}Fehler bei der Installation von $PACKAGE.${NC}" fi done } # Funktion: Zusätzliche .deb-Pakete herunterladen und installieren install_deb_packages() { echo -e "${GREEN}Lade zusätzliche .deb-Pakete herunter...${NC}" mkdir -p "$DOWNLOAD_DIR" declare -A DEB_URLS=( ["shadow-amd64.deb"]="https://update.shadow.tech/launcher/prod/linux/x86_64/shadow-amd64.deb" ["fakturama.deb"]="https://files.fakturama.info/release/v2.1.3/Installer_Fakturama_linux_x64_2.1.3c.deb" ["nomachine.deb"]="https://download.nomachine.com/download/8.14/Linux/nomachine_8.14.2_1_amd64.deb" ["xpipe.deb"]="https://github.com/xpipe-io/xpipe/releases/latest/download/xpipe-installer-linux-x86_64.deb" ["rustdesk.deb"]="https://github.com/rustdesk/rustdesk/releases/download/1.3.6/rustdesk-1.3.6-x86_64.deb" ) for FILE in "${!DEB_URLS[@]}"; do wget -O "$DOWNLOAD_DIR/$FILE" "${DEB_URLS[$FILE]}" || { echo -e "${RED}Fehler beim Herunterladen von $FILE.${NC}" continue } done echo -e "${GREEN}Installiere .deb-Pakete...${NC}" for DEB_FILE in "$DOWNLOAD_DIR"/*.deb; do if sudo apt install -y "$DEB_FILE"; then echo -e "${GREEN}$DEB_FILE erfolgreich installiert.${NC}" else echo -e "${RED}Fehler bei der Installation von $DEB_FILE.${NC}" fi done } # Funktion: autofs einrichten autofs() { echo -e "${GREEN}Richte autofs ein...${NC}" sudo apt install -y autofs || { echo -e "${RED}Fehler bei der Installation von autofs.${NC}" exit 1 } echo "/net /etc/auto.net --timeout=600" | sudo tee -a /etc/auto.master systemctl restart autofs systemctl enable autofs } # Funktion: Gemeinsamen Ordner einrichten shared_dir() { SHARED_DIR="/home/shared" echo -e "${GREEN}Erstelle den gemeinsamen Ordner unter $SHARED_DIR...${NC}" sudo mkdir -p "$SHARED_DIR" sudo chmod 1777 "$SHARED_DIR" echo -e "${GREEN}Der Ordner $SHARED_DIR wurde erfolgreich erstellt und konfiguriert.${NC}" } # ================================ # Hauptskript # ================================ update_sources install_apt_packages install_snap_packages install_flatpak_packages install_deb_packages autofs shared_dir echo -e "${GREEN}Skript abgeschlossen.${NC}"