Refactor: optimize package installation and platform detection
Dieser Commit ist enthalten in:
+27
-10
@@ -1,6 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e # Bricht bei Fehlern sofort ab
|
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)
|
TLMGR=$(which tlmgr)
|
||||||
TEXHASH=$(which texhash)
|
TEXHASH=$(which texhash)
|
||||||
|
|
||||||
@@ -17,6 +23,7 @@ if $TLMGR info texliveonfly | grep -q "installed: Yes"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 3. ALLE Pakete gebündelt in EINEM Rutsch installieren (only scheme-minimal installed)
|
# 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..."
|
echo "Installiere alle benötigten LaTeX-Pakete parallel/gebündelt..."
|
||||||
$TLMGR install \
|
$TLMGR install \
|
||||||
background \
|
background \
|
||||||
@@ -61,10 +68,12 @@ $TLMGR install \
|
|||||||
mathtools \
|
mathtools \
|
||||||
microtype \
|
microtype \
|
||||||
minted \
|
minted \
|
||||||
|
multirow \
|
||||||
ncctools \
|
ncctools \
|
||||||
newpx \
|
newpx \
|
||||||
newtx \
|
newtx \
|
||||||
newunicodechar \
|
newunicodechar \
|
||||||
|
nextpage \
|
||||||
ocr-b \
|
ocr-b \
|
||||||
parskip \
|
parskip \
|
||||||
pdfcol \
|
pdfcol \
|
||||||
@@ -72,11 +81,10 @@ $TLMGR install \
|
|||||||
pdfpages \
|
pdfpages \
|
||||||
pgf \
|
pgf \
|
||||||
pgfplots \
|
pgfplots \
|
||||||
|
physics \
|
||||||
pict2e \
|
pict2e \
|
||||||
ragged2e \
|
ragged2e \
|
||||||
scheme-basic \
|
scheme-basic \
|
||||||
scheme-infraonly \
|
|
||||||
scheme-minimal \
|
|
||||||
setspace \
|
setspace \
|
||||||
sidecap \
|
sidecap \
|
||||||
siunitx \
|
siunitx \
|
||||||
@@ -120,12 +128,12 @@ $TEXHASH
|
|||||||
echo "Überprüfe Linux-Systemkomponenten..."
|
echo "Überprüfe Linux-Systemkomponenten..."
|
||||||
|
|
||||||
# Liste der zu installierenden Apt-Pakete
|
# Liste der zu installierenden Apt-Pakete
|
||||||
APT_PACKAGES=""
|
SYSTEM_PACKAGES=""
|
||||||
INSTALLED_PACKAGES=""
|
INSTALLED_PACKAGES=""
|
||||||
|
|
||||||
if ! command -v biber >/dev/null 2>&1; then
|
if ! command -v biber >/dev/null 2>&1; then
|
||||||
echo " -> biber fehlt und wird vorgemerkt."
|
echo " -> biber fehlt und wird vorgemerkt."
|
||||||
APT_PACKAGES="$APT_PACKAGES biber"
|
SYSTEM_PACKAGES="$SYSTEM_PACKAGES biber"
|
||||||
else
|
else
|
||||||
echo " -> biber ist bereits installiert ($(biber --version | head -n 1))."
|
echo " -> biber ist bereits installiert ($(biber --version | head -n 1))."
|
||||||
INSTALLED_PACKAGES="$INSTALLED_PACKAGES biber"
|
INSTALLED_PACKAGES="$INSTALLED_PACKAGES biber"
|
||||||
@@ -133,16 +141,25 @@ fi
|
|||||||
|
|
||||||
if ! command -v gs >/dev/null 2>&1; then
|
if ! command -v gs >/dev/null 2>&1; then
|
||||||
echo " -> ghostscript (gs) fehlt und wird vorgemerkt."
|
echo " -> ghostscript (gs) fehlt und wird vorgemerkt."
|
||||||
APT_PACKAGES="$APT_PACKAGES ghostscript"
|
SYSTEM_PACKAGES="$SYSTEM_PACKAGES ghostscript"
|
||||||
else
|
else
|
||||||
echo " -> ghostscript (gs) ist bereits installiert ($(gs --version | head -n 1))."
|
echo " -> ghostscript (gs) ist bereits installiert ($(gs --version | head -n 1))."
|
||||||
INSTALLED_PACKAGES="$INSTALLED_PACKAGES ghostscript"
|
INSTALLED_PACKAGES="$INSTALLED_PACKAGES ghostscript"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Falls Pakete fehlen, gebündelt mit einmaligem apt-get update installieren
|
# Paket-Installation basierend auf dem verfügbaren Paketmanager
|
||||||
if [ -n "$APT_PACKAGES" ]; then
|
if [ -n "$SYSTEM_PACKAGES" ]; then
|
||||||
echo "Installiere fehlende Systemkomponenten:$APT_PACKAGES..."
|
if command -v apt-get >/dev/null 2>&1; then
|
||||||
sudo apt-get update && sudo apt-get install -y $APT_PACKAGES
|
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
|
else
|
||||||
# Formatierung: Entfernt führende Leerzeichen und ersetzt verbleibende durch Kommata
|
# Formatierung: Entfernt führende Leerzeichen und ersetzt verbleibende durch Kommata
|
||||||
CLEAN_LIST=$(echo $INSTALLED_PACKAGES | sed 's/ /, /g')
|
CLEAN_LIST=$(echo $INSTALLED_PACKAGES | sed 's/ /, /g')
|
||||||
|
|||||||
In neuem Issue referenzieren
Einen Benutzer sperren