Update texlive update script
Dieser Commit ist enthalten in:
Ausführbare Datei
+181
@@ -0,0 +1,181 @@
|
||||
#!/bin/bash
|
||||
set -e # Bricht bei echten Fehlern sofort ab
|
||||
|
||||
# Sicherer Ersatz für 'which'
|
||||
TLMGR=$(command -v tlmgr || true)
|
||||
TEXHASH=$(command -v texhash || true)
|
||||
|
||||
# Falls tlmgr gar nicht existiert, sofort abbrechen
|
||||
if [ -z "$TLMGR" ]; then
|
||||
echo "Fehler: tlmgr wurde auf diesem System nicht gefunden!" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== Starte optimierte LaTeX-Konfiguration ==="
|
||||
|
||||
# 1. Optionale Updates
|
||||
echo "Aktualisiere tlmgr und alle installierten Pakete..."
|
||||
$TLMGR update --self --all
|
||||
|
||||
# 2. Nur deinstallieren, falls überhaupt vorhanden (Fehlertolerant bei set -e)
|
||||
echo "Überprüfe Altlasten..."
|
||||
if $TLMGR info texliveonfly 2>/dev/null | grep -q "installed:[[:space:]]*Yes"; then
|
||||
echo "Deinstalliere veraltetes texliveonfly..."
|
||||
$TLMGR remove texliveonfly
|
||||
else
|
||||
echo " -> texliveonfly ist nicht installiert (Überspringe Deinstallation)."
|
||||
fi
|
||||
|
||||
# 3. ALLE Pakete gebündelt in EINEM Rutsch installieren
|
||||
echo "Installiere alle benötigten LaTeX-Pakete parallel/gebündelt..."
|
||||
$TLMGR install \
|
||||
scheme-basic \
|
||||
scheme-infraonly \
|
||||
scheme-minimal \
|
||||
collection-fontsrecommended \
|
||||
collection-langgerman \
|
||||
latexmk \
|
||||
lastpage \
|
||||
siunitx \
|
||||
pgf \
|
||||
datetime2 \
|
||||
datetime2-english \
|
||||
datetime2-german \
|
||||
currfile \
|
||||
filehook \
|
||||
xstring \
|
||||
enumitem \
|
||||
fmtcount \
|
||||
steinmetz \
|
||||
pict2e \
|
||||
pgfplots \
|
||||
minted \
|
||||
upquote \
|
||||
lineno \
|
||||
newunicodechar \
|
||||
marginnote \
|
||||
pdfpages \
|
||||
cleveref \
|
||||
pdflscape \
|
||||
booktabs \
|
||||
vmargin \
|
||||
newtx \
|
||||
xpatch \
|
||||
fontaxes \
|
||||
cancel \
|
||||
microtype \
|
||||
background \
|
||||
everypage \
|
||||
koma-script \
|
||||
csquotes \
|
||||
setspace \
|
||||
biblatex \
|
||||
biblatex-ieee \
|
||||
ccicons \
|
||||
ncctools \
|
||||
xcharter \
|
||||
titlesec \
|
||||
fontspec \
|
||||
parskip \
|
||||
newpx \
|
||||
trimspaces \
|
||||
mathtools \
|
||||
unicode-math \
|
||||
stix2-otf \
|
||||
cm-unicode \
|
||||
concmath-otf \
|
||||
fontmfizz \
|
||||
fontawesome5 \
|
||||
luatexbase \
|
||||
circuitikz \
|
||||
tcolorbox \
|
||||
tikzfill \
|
||||
pdfcol \
|
||||
listings \
|
||||
imakeidx \
|
||||
ean13isbn \
|
||||
ean \
|
||||
ocr-b \
|
||||
wrapfig \
|
||||
subfigure \
|
||||
sidecap \
|
||||
ragged2e \
|
||||
xltabular \
|
||||
ltablex \
|
||||
caption \
|
||||
needspace
|
||||
|
||||
# 4. Datenbank-Refresh
|
||||
if [ -n "$TEXHASH" ]; then
|
||||
echo "Aktualisiere LaTeX-Dateidatenbank..."
|
||||
$TEXHASH
|
||||
fi
|
||||
|
||||
# 5. System-Abhängigkeiten prüfen und installieren (Biber & Ghostscript)
|
||||
echo "Überprüfe Linux-Systemkomponenten..."
|
||||
|
||||
APT_PACKAGES=""
|
||||
INSTALLED_PACKAGES=""
|
||||
|
||||
# Ermittle den verfügbaren Paketmanager
|
||||
PKG_MANAGER="unknown"
|
||||
if command -v apt-get >/dev/null 2>&1; then PKG_MANAGER="apt"; fi
|
||||
if command -v pacman >/dev/null 2>&1; then PKG_MANAGER="pacman"; fi
|
||||
|
||||
# Weiche je nach Distro / Paketmanager
|
||||
case "$PKG_MANAGER" in
|
||||
"apt")
|
||||
echo " -> Debian-basiertes System (apt) erkannt. Prüfe Paketabhängigkeiten..."
|
||||
|
||||
# Biber-Prüfung
|
||||
if ! command -v biber >/dev/null 2>&1; then
|
||||
echo " -> biber fehlt und wird vorgemerkt."
|
||||
APT_PACKAGES="$APT_PACKAGES biber"
|
||||
else
|
||||
# Gefangen mit || true / Klammern, um Fehler bei Auslese unter set -e zu blockieren
|
||||
BIBER_VER=$((biber --version 2>/dev/null || echo "Version unbekannt") | head -n 1)
|
||||
echo " -> biber ist bereits installiert ($BIBER_VER)."
|
||||
INSTALLED_PACKAGES="$INSTALLED_PACKAGES biber"
|
||||
fi
|
||||
|
||||
# Ghostscript-Prüfung
|
||||
if ! command -v gs >/dev/null 2>&1; then
|
||||
echo " -> ghostscript (gs) fehlt und wird vorgemerkt."
|
||||
APT_PACKAGES="$APT_PACKAGES ghostscript"
|
||||
else
|
||||
GS_VER=$(gs --version 2>/dev/null | head -n 1)
|
||||
echo " -> ghostscript (gs) ist bereits installiert ($GS_VER)."
|
||||
INSTALLED_PACKAGES="$INSTALLED_PACKAGES ghostscript"
|
||||
fi
|
||||
|
||||
# Falls Pakete fehlen, gebündelt installieren
|
||||
if [ -n "$APT_PACKAGES" ]; then
|
||||
echo "Installiere fehlende Systemkomponenten:$APT_PACKAGES..."
|
||||
sudo apt-get update && sudo apt-get install -y $APT_PACKAGES
|
||||
else
|
||||
CLEAN_LIST=$(echo "$INSTALLED_PACKAGES" | sed 's/^[[:space:]]*//; s/[[:space:]]/, /g')
|
||||
echo " -> Alle notwendigen Systemkomponenten ($CLEAN_LIST) sind bereits installiert!"
|
||||
fi
|
||||
;;
|
||||
|
||||
"pacman")
|
||||
echo " -> Arch Linux (pacman) erkannt. Debian-Paketverwaltung wird übersprungen."
|
||||
echo " -> Stelle sicher, dass 'biber' und 'ghostscript' auf Ihrem Arch-System installiert sind."
|
||||
;;
|
||||
|
||||
*)
|
||||
echo " -> Unbekanntes System. Keine automatische Paketprüfung möglich. Fahre fort..."
|
||||
;;
|
||||
esac
|
||||
|
||||
echo ""
|
||||
echo "=== Speicherplatz-Optimierung ==="
|
||||
read -p "Möchtest du alle alten tlmgr-Paketbackups unwiderruflich löschen? (j/N): " response
|
||||
if [[ "$response" =~ ^[jJ][aA]?$ || "$response" = "j" ]]; then
|
||||
echo "Lösche alte Backups..."
|
||||
$TLMGR backup --clean=0 --all
|
||||
else
|
||||
echo "Backups wurden beibehalten."
|
||||
fi
|
||||
|
||||
echo "=== Fertig! ==="
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren