install.sh: curl bei Bedarf automatisch installieren
Neue Helfer ensure_curl + pkg_install (apt/dnf/yum/apk/pacman/zypper) mit sudo-Erkennung; wird vor der Docker-Installation aufgerufen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -20,6 +20,49 @@ error() { printf '\033[0;31m[x]\033[0m %s\n' "$*" >&2; }
|
|||||||
|
|
||||||
rand() { LC_ALL=C tr -dc 'A-Za-z0-9' </dev/urandom | head -c "${1:-32}"; }
|
rand() { LC_ALL=C tr -dc 'A-Za-z0-9' </dev/urandom | head -c "${1:-32}"; }
|
||||||
|
|
||||||
|
# root/sudo bestimmen
|
||||||
|
if [[ "$(id -u)" -eq 0 ]]; then
|
||||||
|
SUDO=""
|
||||||
|
elif command -v sudo >/dev/null 2>&1; then
|
||||||
|
SUDO="sudo"
|
||||||
|
else
|
||||||
|
SUDO=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Paketinstallation (paketmanager-unabhängig) ------------------------------
|
||||||
|
pkg_install() {
|
||||||
|
local pkg="$1"
|
||||||
|
if command -v apt-get >/dev/null 2>&1; then
|
||||||
|
$SUDO apt-get update -y && $SUDO apt-get install -y "$pkg"
|
||||||
|
elif command -v dnf >/dev/null 2>&1; then
|
||||||
|
$SUDO dnf install -y "$pkg"
|
||||||
|
elif command -v yum >/dev/null 2>&1; then
|
||||||
|
$SUDO yum install -y "$pkg"
|
||||||
|
elif command -v apk >/dev/null 2>&1; then
|
||||||
|
$SUDO apk add --no-cache "$pkg"
|
||||||
|
elif command -v pacman >/dev/null 2>&1; then
|
||||||
|
$SUDO pacman -Sy --noconfirm "$pkg"
|
||||||
|
elif command -v zypper >/dev/null 2>&1; then
|
||||||
|
$SUDO zypper install -y "$pkg"
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- curl sicherstellen (wird für die Docker-Installation gebraucht) ----------
|
||||||
|
ensure_curl() {
|
||||||
|
if command -v curl >/dev/null 2>&1; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
warn "curl ist nicht installiert – wird jetzt automatisch installiert …"
|
||||||
|
if ! pkg_install curl; then
|
||||||
|
error "curl konnte nicht installiert werden (kein bekannter Paketmanager gefunden). Bitte curl manuell installieren und erneut ausführen."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
command -v curl >/dev/null 2>&1 || { error "curl-Installation fehlgeschlagen."; exit 1; }
|
||||||
|
info "curl installiert."
|
||||||
|
}
|
||||||
|
|
||||||
# --- Docker prüfen / installieren ---------------------------------------------
|
# --- Docker prüfen / installieren ---------------------------------------------
|
||||||
ensure_docker() {
|
ensure_docker() {
|
||||||
if command -v docker >/dev/null 2>&1; then
|
if command -v docker >/dev/null 2>&1; then
|
||||||
@@ -34,6 +77,7 @@ ensure_docker() {
|
|||||||
fi
|
fi
|
||||||
case "$reply" in
|
case "$reply" in
|
||||||
[JjYy]*)
|
[JjYy]*)
|
||||||
|
ensure_curl
|
||||||
info "Installiere Docker über get.docker.com …"
|
info "Installiere Docker über get.docker.com …"
|
||||||
curl -fsSL https://get.docker.com | sh
|
curl -fsSL https://get.docker.com | sh
|
||||||
;;
|
;;
|
||||||
|
|||||||
Reference in New Issue
Block a user