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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user