feat(PROJ-67): Manticore-Upgrade-Pfad für Bestandsinstallationen

install.sh/update.sh übersprangen den Manticore-Block komplett, sobald
irgendeine Version schon lief — der Versions-Pin aus dem letzten Fix wirkte
dadurch nie auf existierende Installationen (nur Neuinstallationen). Jetzt
per dpkg --compare-versions: ist die installierte Version älter als
_MANTICORE_VERSION, wird der Dienst gestoppt, das neue Paket eingespielt und
neu gestartet. Downgrade-Schutz durch "lt"-Vergleich.

Spec PROJ-67 dokumentiert die Recherche zum Versionssprung 25.0.0 -> 27.1.5
(u.a. offene Frage zur neuen v27-Auth-Funktionalität) und den geplanten
Produktiv-Test auf 131.
This commit is contained in:
sysops
2026-07-05 18:10:53 +02:00
parent 3428537cd9
commit 4e085238b6
4 changed files with 162 additions and 21 deletions
+32 -9
View File
@@ -94,21 +94,44 @@ command -v npm >/dev/null || die "npm nicht gefunden — apt-get install npm"
# nachschlagen (letzter "Package: manticore"-Block).
_MANTICORE_VERSION="27.1.5-26061911-5a1cf9399"
if ! command -v searchd >/dev/null 2>&1 && ! systemctl is-active --quiet manticore 2>/dev/null; then
info "Manticore Search nicht gefunden — installiere Version ${_MANTICORE_VERSION}..."
_mc_arch="amd64"
_mc_installed_version="$(dpkg-query -W -f='${Version}' manticore 2>/dev/null || true)"
_mc_fetch_and_install() {
# $1 = human-readable action word for log ("installiere"/"aktualisiere")
local _mc_arch="amd64"
[[ "$(uname -m)" == "aarch64" ]] && _mc_arch="arm64"
wget -q -O /tmp/manticore.deb \
"https://repo.manticoresearch.com/repository/manticoresearch_bookworm/dists/bookworm/main/binary-${_mc_arch}/manticore_${_MANTICORE_VERSION}_${_mc_arch}.deb" \
|| true
if [[ -f /tmp/manticore.deb ]]; then
dpkg -i /tmp/manticore.deb 2>/dev/null || apt-get install -f -y -qq 2>/dev/null || true
rm -f /tmp/manticore.deb
log "Manticore Search installiert"
else
warn "Manticore Search konnte nicht automatisch installiert werden — bitte manuell installieren"
if [[ ! -f /tmp/manticore.deb ]]; then
warn "Manticore Search konnte nicht heruntergeladen werden — bitte manuell $1"
warn "Siehe: https://manticoresearch.com/install/"
return 1
fi
dpkg -i /tmp/manticore.deb 2>/dev/null || apt-get install -f -y -qq 2>/dev/null || true
rm -f /tmp/manticore.deb
return 0
}
if [[ -z "$_mc_installed_version" ]]; then
info "Manticore Search nicht gefunden — installiere Version ${_MANTICORE_VERSION}..."
_mc_fetch_and_install "installieren" && log "Manticore Search installiert"
elif dpkg --compare-versions "$_mc_installed_version" lt "$_MANTICORE_VERSION"; then
# PROJ-67: bestehende Installation ist älter als der gepinnte Stand — Upgrade
# statt Skip, damit auch Bestandsinstallationen (nicht nur Neuinstallationen)
# beim nächsten Deploy automatisch mitgezogen werden. Downgrade-Schutz durch
# "lt"-Vergleich: eine bereits neuere installierte Version wird nie
# zurückgestuft (z.B. falls _MANTICORE_VERSION versehentlich rückwärts
# editiert wurde).
info "Manticore Search ${_mc_installed_version} gefunden, aktualisiere auf ${_MANTICORE_VERSION}..."
systemctl stop manticore 2>/dev/null || true
if _mc_fetch_and_install "aktualisieren"; then
log "Manticore Search aktualisiert: ${_mc_installed_version}${_MANTICORE_VERSION}"
else
warn "Upgrade fehlgeschlagen — vorherige Version bleibt installiert, Dienst wird trotzdem neu gestartet"
fi
else
log "Manticore Search ${_mc_installed_version} bereits aktuell (>= ${_MANTICORE_VERSION})"
fi
if systemctl list-unit-files manticore.service >/dev/null 2>&1; then