DEL old backuped update file
Dieser Commit ist enthalten in:
@@ -1,216 +0,0 @@
|
|||||||
#!/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)
|
|
||||||
|
|
||||||
echo "=== Starte optimierte LaTeX-Konfiguration ==="
|
|
||||||
|
|
||||||
# ==============================================================================
|
|
||||||
# AUTOMATISCHE SERVER-FALLBACK LOGIK
|
|
||||||
# ==============================================================================
|
|
||||||
# Liste von zuverlässigen Spiegelservern (Der erste ist der automatische CTAN-Verteiler)
|
|
||||||
SERVERS=(
|
|
||||||
"http://ctan.org"
|
|
||||||
"https://tu-chemnitz.de"
|
|
||||||
"https://netcologne.de"
|
|
||||||
)
|
|
||||||
|
|
||||||
UPDATE_SUCCESS=false
|
|
||||||
ACTIVE_SERVER=""
|
|
||||||
|
|
||||||
echo "Aktualisiere tlmgr und alle installierten Pakete..."
|
|
||||||
|
|
||||||
for SERVER in "${SERVERS[@]}"; do
|
|
||||||
echo "Versuche Verbindung zu Spiegelserver: $SERVER"
|
|
||||||
|
|
||||||
# Durch die Verwendung in der if-Bedingung wird 'set -e' für diesen Befehl ausgesetzt.
|
|
||||||
# So fangen wir Offline-Server ab, ohne dass das Skript abstürzt.
|
|
||||||
if $TLMGR update --repository "$SERVER" --self --all; then
|
|
||||||
echo "--> Update erfolgreich über $SERVER durchgeführt!"
|
|
||||||
UPDATE_SUCCESS=true
|
|
||||||
ACTIVE_SERVER="$SERVER" # Speichert den funktionierenden Server für spätere Befehle
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo "⚠️ Warnung: Server $SERVER war nicht erreichbar. Versuche nächsten Spiegelserver..."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Wenn kein einziger Server funktionierte, bricht das Skript kontrolliert ab
|
|
||||||
if [ "$UPDATE_SUCCESS" = false ]; then
|
|
||||||
echo "❌ ERROR: Alle TeX Live Spiegelserver sind offline oder es gibt keine Internetverbindung." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# ==============================================================================
|
|
||||||
|
|
||||||
|
|
||||||
# 2. Nur deinstallieren, falls überhaupt vorhanden
|
|
||||||
# Nutzen den ermittelten ACTIVE_SERVER, um erneute Verbindungsfehler zu vermeiden
|
|
||||||
if $TLMGR info --repository "$ACTIVE_SERVER" texliveonfly | grep -q "installed: Yes"; then
|
|
||||||
echo "Deinstalliere veraltetes texliveonfly..."
|
|
||||||
$TLMGR remove --repository "$ACTIVE_SERVER" texliveonfly
|
|
||||||
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 --repository "$ACTIVE_SERVER" \
|
|
||||||
background \
|
|
||||||
beamer \
|
|
||||||
biblatex \
|
|
||||||
biblatex-ieee \
|
|
||||||
booktabs \
|
|
||||||
cancel \
|
|
||||||
caption \
|
|
||||||
ccicons \
|
|
||||||
circuitikz \
|
|
||||||
cleveref \
|
|
||||||
cm-unicode \
|
|
||||||
collection-fontsrecommended \
|
|
||||||
concmath-otf \
|
|
||||||
contour \
|
|
||||||
csquotes \
|
|
||||||
currfile \
|
|
||||||
datetime2 \
|
|
||||||
datetime2-english \
|
|
||||||
datetime2-german \
|
|
||||||
ean \
|
|
||||||
ean13isbn \
|
|
||||||
enumitem \
|
|
||||||
epigraph \
|
|
||||||
everypage \
|
|
||||||
filehook \
|
|
||||||
fmtcount \
|
|
||||||
fontawesome5 \
|
|
||||||
fontaxes \
|
|
||||||
fontmfizz \
|
|
||||||
fontspec \
|
|
||||||
imakeidx \
|
|
||||||
koma-script \
|
|
||||||
latexmk \
|
|
||||||
lastpage \
|
|
||||||
lineno \
|
|
||||||
listings \
|
|
||||||
ltablex \
|
|
||||||
luatexbase \
|
|
||||||
marginnote \
|
|
||||||
mathtools \
|
|
||||||
microtype \
|
|
||||||
minted \
|
|
||||||
multirow \
|
|
||||||
ncctools \
|
|
||||||
newpx \
|
|
||||||
newtx \
|
|
||||||
newunicodechar \
|
|
||||||
nextpage \
|
|
||||||
ocr-b \
|
|
||||||
parskip \
|
|
||||||
pdfcol \
|
|
||||||
pdflscape \
|
|
||||||
pdfpages \
|
|
||||||
pgf \
|
|
||||||
pgfplots \
|
|
||||||
physics \
|
|
||||||
pict2e \
|
|
||||||
ragged2e \
|
|
||||||
scheme-basic \
|
|
||||||
setspace \
|
|
||||||
sidecap \
|
|
||||||
siunitx \
|
|
||||||
steinmetz \
|
|
||||||
stix2-otf \
|
|
||||||
subfigure \
|
|
||||||
tcolorbox \
|
|
||||||
tikzfill \
|
|
||||||
titlesec \
|
|
||||||
translations \
|
|
||||||
trimspaces \
|
|
||||||
unicode-math \
|
|
||||||
upquote \
|
|
||||||
vmargin \
|
|
||||||
wrapfig \
|
|
||||||
xcharter \
|
|
||||||
xltabular \
|
|
||||||
xpatch \
|
|
||||||
xstring
|
|
||||||
|
|
||||||
echo "Deinstalliere unerwünschte LaTeX-Pakete..."
|
|
||||||
# 'ae' und 't1enc' wurden entfernt, da sie geschützte Systempakete sind.
|
|
||||||
# Liste der Pakete, die deinstalliert werden sollen (einfach mit Leerzeichen trennen)
|
|
||||||
PACKETS=("truncate")
|
|
||||||
|
|
||||||
for packet in "${PACKETS[@]}"; do
|
|
||||||
if tlmgr info "$packet" --only-installed >/dev/null 2>&1; then
|
|
||||||
echo "Lösche Paket: $packet..."
|
|
||||||
tlmgr remove "$packet" || true
|
|
||||||
else
|
|
||||||
echo "Paket '$packet' ist nicht installiert oder wurde bereits gelöscht."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# extdash (in ncctools) \
|
|
||||||
|
|
||||||
# 4. Datenbank-Refresh (tlmgr install macht das oft automatisch, sicherheitshalber am Ende einmal)
|
|
||||||
echo "Aktualisiere LaTeX-Dateidatenbank..."
|
|
||||||
$TEXHASH
|
|
||||||
|
|
||||||
# 5. System-Abhängigkeiten prüfen und installieren (Biber & Ghostscript)
|
|
||||||
echo "Überprüfe Linux-Systemkomponenten..."
|
|
||||||
|
|
||||||
# Liste der zu installierenden Apt-Pakete
|
|
||||||
SYSTEM_PACKAGES=""
|
|
||||||
INSTALLED_PACKAGES=""
|
|
||||||
|
|
||||||
if ! command -v biber >/dev/null 2>&1; then
|
|
||||||
echo " -> biber fehlt und wird vorgemerkt."
|
|
||||||
SYSTEM_PACKAGES="$SYSTEM_PACKAGES biber"
|
|
||||||
else
|
|
||||||
echo " -> biber ist bereits installiert ($(biber --version | head -n 1))."
|
|
||||||
INSTALLED_PACKAGES="$INSTALLED_PACKAGES biber"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! command -v gs >/dev/null 2>&1; then
|
|
||||||
echo " -> ghostscript (gs) fehlt und wird vorgemerkt."
|
|
||||||
SYSTEM_PACKAGES="$SYSTEM_PACKAGES ghostscript"
|
|
||||||
else
|
|
||||||
echo " -> ghostscript (gs) ist bereits installiert ($(gs --version | head -n 1))."
|
|
||||||
INSTALLED_PACKAGES="$INSTALLED_PACKAGES ghostscript"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 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')
|
|
||||||
echo " -> Alle notwendigen Systemkomponenten ($CLEAN_LIST) sind bereits installiert!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=== Speicherplatz-Optimierung ==="
|
|
||||||
read -p "Möchtest du alle alten tlmgr-Paktebackups 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! ==="
|
|
||||||
echo "Reminder: Please update pull/push the ~/gitea/scripts : scripts.git repository!"
|
|
||||||
In neuem Issue referenzieren
Einen Benutzer sperren