From 72963e9ccbd18cae4482ec8e3a898f35ca73fa13 Mon Sep 17 00:00:00 2001 From: teknium1 Date: Sun, 1 Mar 2026 16:18:35 -0800 Subject: [PATCH] fix(install): prevent interactive prompts during non-interactive installs Updated the install.sh script to set DEBIAN_FRONTEND and NEEDRESTART_MODE environment variables for non-interactive package installations on Ubuntu and Debian. This change ensures that prompts from needrestart and whiptail do not block the installation process, improving automation for system package installations. --- scripts/install.sh | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/scripts/install.sh b/scripts/install.sh index 81978e8f0..0e2cf92a6 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -458,6 +458,11 @@ install_system_packages() { if [ -n "$pkg_install" ]; then local install_cmd="$pkg_install ${pkgs[*]}" + # Prevent needrestart/whiptail dialogs from blocking non-interactive installs + case "$DISTRO" in + ubuntu|debian) export DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a ;; + esac + # Already root — just install if [ "$(id -u)" -eq 0 ]; then log_info "Installing ${pkgs[*]}..." @@ -469,7 +474,7 @@ install_system_packages() { # Passwordless sudo — just install elif command -v sudo &> /dev/null && sudo -n true 2>/dev/null; then log_info "Installing ${pkgs[*]}..." - if sudo $install_cmd; then + if sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a $install_cmd; then [ "$need_ripgrep" = true ] && HAS_RIPGREP=true && log_success "ripgrep installed" [ "$need_ffmpeg" = true ] && HAS_FFMPEG=true && log_success "ffmpeg installed" return 0 @@ -481,7 +486,7 @@ install_system_packages() { read -p "Install ${description}? (requires sudo) [y/N] " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then - if sudo $install_cmd; then + if sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a $install_cmd; then [ "$need_ripgrep" = true ] && HAS_RIPGREP=true && log_success "ripgrep installed" [ "$need_ffmpeg" = true ] && HAS_FFMPEG=true && log_success "ffmpeg installed" return 0 @@ -623,13 +628,13 @@ install_deps() { log_info "Some build tools may be needed for Python packages..." if command -v sudo &> /dev/null; then if sudo -n true 2>/dev/null; then - sudo apt-get update -qq && sudo apt-get install -y -qq build-essential python3-dev libffi-dev >/dev/null 2>&1 || true + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update -qq && sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y -qq build-essential python3-dev libffi-dev >/dev/null 2>&1 || true log_success "Build tools installed" else read -p "Install build tools (build-essential, python3-dev)? (requires sudo) [Y/n] " -n 1 -r < /dev/tty echo if [[ $REPLY =~ ^[Yy]$ ]] || [[ -z $REPLY ]]; then - sudo apt-get update -qq && sudo apt-get install -y -qq build-essential python3-dev libffi-dev >/dev/null 2>&1 || true + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update -qq && sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y -qq build-essential python3-dev libffi-dev >/dev/null 2>&1 || true log_success "Build tools installed" fi fi