82 lines
2.8 KiB
Bash
Executable File
82 lines
2.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Installiert Notarius in eine lokale virtuelle Umgebung (.venv) und richtet
|
|
# einen Menü-Eintrag im Anwendungsmenü ein. Setzt voraus, dass ffmpeg, pactl
|
|
# und eine funktionierende CUDA-Umgebung bereits auf dem System vorhanden sind
|
|
# (siehe README.md).
|
|
set -euo pipefail
|
|
|
|
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
VENV_DIR="$PROJECT_DIR/.venv"
|
|
|
|
# whisperx zieht (über faster-whisper) eine exakt gepinnte ctranslate2-Version,
|
|
# für die es auf ganz neuen Python-Versionen (3.13/3.14 - z.B. Fedoras aktueller
|
|
# Standard-python3) noch keine Wheels gibt. Deshalb wird hier gezielt nach einer
|
|
# bekannt kompatiblen Version gesucht, statt blind "python3" zu verwenden.
|
|
find_compatible_python() {
|
|
if [[ -n "${PYTHON_BIN:-}" ]]; then
|
|
echo "$PYTHON_BIN"
|
|
return
|
|
fi
|
|
for candidate in python3.12 python3.11 python3.10; do
|
|
if command -v "$candidate" &>/dev/null; then
|
|
echo "$candidate"
|
|
return
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
# Prüft, ob eine bestehende .venv mit einer der bekannt kompatiblen Versionen läuft.
|
|
venv_is_compatible() {
|
|
local venv_python="$VENV_DIR/bin/python3"
|
|
[[ -x "$venv_python" ]] || return 1
|
|
local version
|
|
version="$("$venv_python" -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
|
|
[[ "$version" == "3.10" || "$version" == "3.11" || "$version" == "3.12" ]]
|
|
}
|
|
|
|
if [[ -d "$VENV_DIR" ]] && venv_is_compatible; then
|
|
echo "Verwende bestehende virtuelle Umgebung: $VENV_DIR"
|
|
else
|
|
if [[ -d "$VENV_DIR" ]]; then
|
|
echo "Bestehende .venv nutzt eine mit whisperx inkompatible Python-Version, wird neu angelegt..."
|
|
rm -rf "$VENV_DIR"
|
|
fi
|
|
|
|
if ! PYTHON_BIN="$(find_compatible_python)"; then
|
|
cat >&2 <<'EOF'
|
|
Kein kompatibler Python-Interpreter (3.10/3.11/3.12) gefunden.
|
|
whisperx benötigt (über faster-whisper) ctranslate2 in einer Version, für die es
|
|
auf neueren Python-Versionen (3.13/3.14) noch keine Wheels gibt.
|
|
|
|
Bitte auf Fedora nachinstallieren, z.B.:
|
|
sudo dnf install python3.12
|
|
|
|
Danach install.sh erneut ausführen, oder gezielt vorgeben mit:
|
|
PYTHON_BIN=python3.12 ./install.sh
|
|
EOF
|
|
exit 1
|
|
fi
|
|
|
|
echo "Erstelle virtuelle Umgebung mit $PYTHON_BIN ($("$PYTHON_BIN" --version)): $VENV_DIR"
|
|
"$PYTHON_BIN" -m venv "$VENV_DIR"
|
|
fi
|
|
|
|
echo "Installiere Notarius und Python-Abhängigkeiten..."
|
|
"$VENV_DIR/bin/pip" install --upgrade pip --quiet
|
|
"$VENV_DIR/bin/pip" install -e "$PROJECT_DIR"
|
|
|
|
echo "Richte Menü-Eintrag ein..."
|
|
"$VENV_DIR/bin/notarius-install-launcher"
|
|
|
|
cat <<EOF
|
|
|
|
Installation abgeschlossen.
|
|
|
|
Notarius ist jetzt im Anwendungsmenü zu finden, oder direkt startbar mit:
|
|
$VENV_DIR/bin/notarius
|
|
|
|
Autostart, API-Key und Modellwahl lassen sich im Tab "Settings" konfigurieren.
|
|
Zum Entfernen: ./uninstall.sh
|
|
EOF
|