From 6a2eddc9d8d61ab6b777c0a52ac3b4a5da700f87 Mon Sep 17 00:00:00 2001 From: Thomas Kuschel Date: Tue, 8 Sep 2026 12:10:41 +0200 Subject: [PATCH] Refactor: optimize package installation and platform detection --- texlive_update.sh | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/texlive_update.sh b/texlive_update.sh index bfabb3c..5acf657 100755 --- a/texlive_update.sh +++ b/texlive_update.sh @@ -1,6 +1,12 @@ #!/bin/bash set -e # Bricht bei Fehlern sofort ab - +# spell:ignore tlmgr texhash texliveonfly beamer biblatex ieee booktabs bigdelim ccicons circuitikz +# spell:ignore Ghostscript biber cleveref concmath csquotes currfile enumitem everypage extdash +# spell:ignore filehook fmtcount fontawesome fontaxes fontmfizz fontspec fontsrecommended ghostscript +# spell:ignore gitea imakeidx infraonly isbn koma latexmk ltablex luatexbase marginnote mathtools +# spell:ignore microtype ncctools newpx newtx newunicodechar nextpage parskip pdfcol pdflscape pdfpages +# spell:ignore pgfplots pict setspace sidecap siunitx stix subfigure tcolorbox tikzfill titlesec +# spell:ignore trimspaces unicode upquote vmargin wrapfig xcharter xltabular xpatch xstring TLMGR=$(which tlmgr) TEXHASH=$(which texhash) @@ -17,6 +23,7 @@ if $TLMGR info texliveonfly | grep -q "installed: Yes"; then fi # 3. ALLE Pakete gebündelt in EINEM Rutsch installieren (only scheme-minimal installed) +# Hinweis: scheme-basic beinhaltet bereits scheme-infraonly sowie scheme-minimal echo "Installiere alle benötigten LaTeX-Pakete parallel/gebündelt..." $TLMGR install \ background \ @@ -61,10 +68,12 @@ $TLMGR install \ mathtools \ microtype \ minted \ + multirow \ ncctools \ newpx \ newtx \ newunicodechar \ + nextpage \ ocr-b \ parskip \ pdfcol \ @@ -72,11 +81,10 @@ $TLMGR install \ pdfpages \ pgf \ pgfplots \ + physics \ pict2e \ ragged2e \ scheme-basic \ - scheme-infraonly \ - scheme-minimal \ setspace \ sidecap \ siunitx \ @@ -120,12 +128,12 @@ $TEXHASH echo "Überprüfe Linux-Systemkomponenten..." # Liste der zu installierenden Apt-Pakete -APT_PACKAGES="" +SYSTEM_PACKAGES="" INSTALLED_PACKAGES="" if ! command -v biber >/dev/null 2>&1; then echo " -> biber fehlt und wird vorgemerkt." - APT_PACKAGES="$APT_PACKAGES biber" + SYSTEM_PACKAGES="$SYSTEM_PACKAGES biber" else echo " -> biber ist bereits installiert ($(biber --version | head -n 1))." INSTALLED_PACKAGES="$INSTALLED_PACKAGES biber" @@ -133,16 +141,25 @@ fi if ! command -v gs >/dev/null 2>&1; then echo " -> ghostscript (gs) fehlt und wird vorgemerkt." - APT_PACKAGES="$APT_PACKAGES ghostscript" + SYSTEM_PACKAGES="$SYSTEM_PACKAGES ghostscript" else echo " -> ghostscript (gs) ist bereits installiert ($(gs --version | head -n 1))." INSTALLED_PACKAGES="$INSTALLED_PACKAGES ghostscript" fi -# Falls Pakete fehlen, gebündelt mit einmaligem apt-get update installieren -if [ -n "$APT_PACKAGES" ]; then - echo "Installiere fehlende Systemkomponenten:$APT_PACKAGES..." - sudo apt-get update && sudo apt-get install -y $APT_PACKAGES +# Paket-Installation basierend auf dem verfügbaren Paketmanager +if [ -n "$SYSTEM_PACKAGES" ]; then + if command -v apt-get >/dev/null 2>&1; then + echo "Debian/Ubuntu-System erkannt. Installiere:$SYSTEM_PACKAGES..." + sudo apt-get update && sudo apt-get install -y $SYSTEM_PACKAGES + elif command -v pacman >/dev/null 2>&1; then + echo "Arch Linux erkannt. Installiere:$SYSTEM_PACKAGES..." + # Arch nutzt andere Paketnamen für ghostscript (ghostscript) und biber (biber) + sudo pacman -Sy --noconfirm $SYSTEM_PACKAGES + else + echo "⚠️ Unbekanntes System (kein apt oder pacman gefunden)." + echo "Bitte installiere die folgenden Pakete manuell: $SYSTEM_PACKAGES" + fi else # Formatierung: Entfernt führende Leerzeichen und ersetzt verbleibende durch Kommata CLEAN_LIST=$(echo $INSTALLED_PACKAGES | sed 's/ /, /g')