mirror of
https://github.com/stornic56/debianito-post-install.git
synced 2026-07-16 05:49:49 +00:00
add retroarch, nvidia - java - internet refactor
- NVIDIA CUDA extrepo refactor in `modules/gpu/nvidia.sh`: removed unnecessary `i386_active` lines, updated warning to reference `v590 (unified metapackage)`, simplified installation from 18+10 versioned packages → `nvidia-driver-pinning-590 nvidia-driver firmware-nvidia-gsp`, eliminated `apt-mark hold` since pinning packages now handle it. DKMS verification and `NVIDIA_DRIVER_MODE="cuda-repo"` preserved. - CUDA repo case fix in `modules/gaming.sh`: replaced silent bypass with detection of `nvidia-driver-libs:i386` v590 installation; if missing, prompts user confirmation before installing via active CUDA repo + pinning. - Palemoon internet module overhaul (`modules/extras/internet/internet.sh`): removed deprecated `_enable_palemoon_repo()`, created new `install_palemoon()` with AVX2→AVX→SSE2 CPU detection from `/proc/cpuinfo`, proper `extrepo enable` call, and package installation. - ProtonVPN module rewrite (`modules/extras/internet/internet.sh`): removed broken `_enable_protonvpn_repo()` that failed due to missing suite; created new `install_protonvpn()` using `stable` suite + `proton-vpn-gtk-app` package with proper validation. - Java/Minecraft rename across `modules/gaming.sh` and `modules/extras/java.sh`: renamed `_install_gaming_java()` → `install_minecraft_java()`, updated menu title from "Java Runtimes for Gaming" to "Java Runtimes for Minecraft", changed whiptail tag from `"java-jre"` to `"java"`. - RetroArch + 4 classic cores (`modules/gaming/tools.sh` and `.sh`): added RetroArch entry to gaming menu, new case handler in `gaming.sh`, updated installation command to include `libretro-mgba libretro-snes9x libretro-nestopia libretro-gambatte`, enhanced notice with emojis, core enumeration, DFSG warning, and wiki link. - OnlyOffice server status (`modules/extras/office/office.sh`): added fallback message for slow or down OnlyOffice servers to improve user experience during installation. - Full syntax validation: all modified files pass `bash -n` without errors; no residual references to old variables (`i386_active`, `590.48.01`) or functions remain. - Documentation about Debian and the script is added to supplement important information. - update README.md
This commit is contained in:
@@ -32,12 +32,42 @@ _enable_floorp_repo() {
|
||||
_run_cmd "APT Update" "sudo apt update" "Updating package lists..."
|
||||
}
|
||||
|
||||
_enable_palemoon_repo() {
|
||||
if [ ! -f /etc/apt/sources.list.d/extrepo_palemoon.sources ]; then
|
||||
_ensure_extrepo
|
||||
_run_cmd "Pale Moon" "sudo extrepo enable palemoon" "Enabling Pale Moon repository..."
|
||||
install_palemoon() {
|
||||
if [ "$DEBIAN_VERSION" -lt 12 ] 2>/dev/null; then
|
||||
_msg "Pale Moon" "Pale Moon is only available on\nDebian 12 (Bookworm) and 13 (Trixie).\n\nSkipping installation." 10 60
|
||||
return 1
|
||||
fi
|
||||
|
||||
local cpu_flags cpu_label REPO_PALEMOON
|
||||
cpu_flags=$(grep -m1 '^flags' /proc/cpuinfo 2>/dev/null)
|
||||
|
||||
if echo "$cpu_flags" | grep -q 'avx2'; then
|
||||
REPO_PALEMOON="palemoon_avx2_gtk3"
|
||||
cpu_label="AVX2"
|
||||
elif echo "$cpu_flags" | grep -q 'avx'; then
|
||||
REPO_PALEMOON="palemoon_avx_gtk3"
|
||||
cpu_label="AVX"
|
||||
else
|
||||
REPO_PALEMOON="palemoon_sse2_gtk3"
|
||||
cpu_label="SSE2"
|
||||
fi
|
||||
|
||||
_msg "Pale Moon" "CPU detected: ${cpu_label} support.\n\nEnabling optimized repository:\n ${REPO_PALEMOON}" 10 60
|
||||
|
||||
if ls /etc/apt/sources.list.d/extrepo_palemoon_*.sources &>/dev/null; then
|
||||
echo "Pale Moon repository already enabled."
|
||||
else
|
||||
_ensure_extrepo
|
||||
_run_cmd "Pale Moon" "sudo extrepo enable ${REPO_PALEMOON}" "Enabling ${REPO_PALEMOON}..."
|
||||
_run_cmd "APT Update" "sudo apt update" "Updating package lists..."
|
||||
fi
|
||||
|
||||
if ! is_installed "palemoon"; then
|
||||
_run_cmd "Pale Moon" "sudo apt install -y palemoon" "Installing Pale Moon..."
|
||||
echo -e "${GREEN}Pale Moon installed.${NC}"
|
||||
else
|
||||
echo "Pale Moon already installed."
|
||||
fi
|
||||
_run_cmd "APT Update" "sudo apt update" "Updating package lists..."
|
||||
}
|
||||
|
||||
_enable_librewolf_repo() {
|
||||
@@ -64,12 +94,22 @@ _enable_mullvad_repo() {
|
||||
_run_cmd "APT Update" "sudo apt update" "Updating package lists..."
|
||||
}
|
||||
|
||||
_enable_protonvpn_repo() {
|
||||
install_protonvpn() {
|
||||
if [ ! -f /etc/apt/sources.list.d/extrepo_protonvpn.sources ]; then
|
||||
_ensure_extrepo
|
||||
_run_cmd "ProtonVPN" "sudo extrepo enable protonvpn" "Enabling ProtonVPN repository..."
|
||||
_run_cmd "ProtonVPN" "sudo extrepo enable protonvpn stable" "Enabling ProtonVPN repository (stable suite)..."
|
||||
_run_cmd "APT Update" "sudo apt update" "Updating package lists..."
|
||||
else
|
||||
echo "ProtonVPN repository already enabled."
|
||||
fi
|
||||
|
||||
if ! is_installed "proton-vpn-gtk-app"; then
|
||||
_msg "ProtonVPN" "Installing Proton VPN GTK client\nfrom the official Proton repository." 10 60
|
||||
_run_cmd "ProtonVPN" "sudo apt install -y proton-vpn-gtk-app" "Installing Proton VPN GTK app..."
|
||||
echo -e "${GREEN}ProtonVPN installed.${NC}"
|
||||
else
|
||||
echo "Proton VPN GTK app already installed."
|
||||
fi
|
||||
_run_cmd "APT Update" "sudo apt update" "Updating package lists..."
|
||||
}
|
||||
|
||||
# ── Categories ──
|
||||
@@ -146,9 +186,7 @@ _cat_internet() {
|
||||
echo -e "${GREEN}LibreWolf installed.${NC}"
|
||||
;;
|
||||
palemoon)
|
||||
_enable_palemoon_repo
|
||||
_run_install palemoon
|
||||
echo -e "${GREEN}Pale Moon installed.${NC}"
|
||||
install_palemoon
|
||||
;;
|
||||
tailscale)
|
||||
_enable_tailscale_repo
|
||||
@@ -166,9 +204,7 @@ _cat_internet() {
|
||||
echo -e "${GREEN}Mullvad Browser installed.${NC}"
|
||||
;;
|
||||
protonvpn)
|
||||
_enable_protonvpn_repo
|
||||
_run_install protonvpn
|
||||
echo -e "${GREEN}ProtonVPN installed.${NC}"
|
||||
install_protonvpn
|
||||
;;
|
||||
riseup-vpn)
|
||||
install_backports_or_stable riseup-vpn
|
||||
|
||||
@@ -13,17 +13,18 @@ _enable_temurin_repo() {
|
||||
_run_cmd "APT Update" "sudo apt update" "Updating package lists..."
|
||||
}
|
||||
|
||||
_install_gaming_java() {
|
||||
install_minecraft_java() {
|
||||
local ver
|
||||
ver=$(whiptail --title "Java Runtimes for Gaming" --menu \
|
||||
ver=$(whiptail --title "Java Runtimes for Minecraft" --menu \
|
||||
"Select Java version:" 12 65 3 \
|
||||
"8" "Java 8 — For classic mods & Minecraft <= 1.16.5" \
|
||||
"17" "Java 17 — For Minecraft era 1.17 to 1.20.4" \
|
||||
"21" "Java 21 — For modern Minecraft >= 1.20.5 & 1.21+" \
|
||||
"8" "Java 8 — Classic mods & Minecraft <= 1.16.5" \
|
||||
"17" "Java 17 — Minecraft 1.17 to 1.20.4" \
|
||||
"21" "Java 21 — Modern Minecraft >= 1.20.5 & 1.21+" \
|
||||
3>&1 1>&2 2>&3)
|
||||
[ -z "$ver" ] && { echo "No Java version selected."; return; }
|
||||
_enable_temurin_repo
|
||||
_run_install "temurin-${ver}-jre"
|
||||
_run_cmd "Java" "sudo apt install -y temurin-${ver}-jre" \
|
||||
"Installing Temurin JRE ${ver}..."
|
||||
}
|
||||
|
||||
_install_dev_java() {
|
||||
|
||||
@@ -21,7 +21,7 @@ install_onlyoffice() {
|
||||
Repository: download.onlyoffice.com
|
||||
Version: ${ver:-unknown}"; then
|
||||
_enable_onlyoffice_repo
|
||||
_run_cmd "OnlyOffice" "sudo DEBIAN_FRONTEND=noninteractive apt install -y onlyoffice-desktopeditors" "Installing OnlyOffice..."
|
||||
_run_cmd "OnlyOffice" "sudo DEBIAN_FRONTEND=noninteractive apt install -y onlyoffice-desktopeditors" "Installing OnlyOffice..." || echo -e "${RED}OnlyOffice servers are currently slow or down. Please try again later.${NC}"
|
||||
echo -e "${GREEN}OnlyOffice installed.${NC}"
|
||||
fi
|
||||
}
|
||||
|
||||
+20
-4
@@ -66,8 +66,22 @@ install_gaming() {
|
||||
if [ "$GPU_TYPE" = "nvidia" ]; then
|
||||
case "${NVIDIA_DRIVER_MODE:-stable}" in
|
||||
cuda-repo)
|
||||
_msg "NVIDIA 32-bit" \
|
||||
"32-bit NVIDIA CUDA libraries already deployed.\n\nThe complete multiarch stack was installed\nwith the v590 driver from the official CUDA repo." 10 70
|
||||
local nv32_pkg="nvidia-driver-libs:i386"
|
||||
local nv32_ver
|
||||
nv32_ver=$(dpkg -l "$nv32_pkg" 2>/dev/null | awk '/^ii/ {print $3}')
|
||||
if [ -z "$nv32_ver" ] || ! echo "$nv32_ver" | grep -q "^590"; then
|
||||
local msg="Source: NVIDIA CUDA Repository (Pinned v590)\n"
|
||||
msg+="NVIDIA 32-bit Libraries (v590 branch)\n\n"
|
||||
msg+="[+] nvidia-driver-libs:i386"
|
||||
if _confirm "NVIDIA 32-bit" "$msg" 12 70; then
|
||||
_run_cmd "32-bit NVIDIA" \
|
||||
"sudo apt install -y ${nv32_pkg}" \
|
||||
"Installing 32-bit NVIDIA libraries from CUDA repo..."
|
||||
fi
|
||||
else
|
||||
_msg "NVIDIA 32-bit" \
|
||||
"32-bit NVIDIA CUDA libraries already deployed.\n\nv590 ${nv32_ver}" 10 70
|
||||
fi
|
||||
;;
|
||||
backports)
|
||||
local nv32_pkg="nvidia-driver-libs:i386"
|
||||
@@ -128,10 +142,11 @@ install_gaming() {
|
||||
"gamemode" "Game performance optimization" ON \
|
||||
"mangohud" "Performance overlay (Vulkan/OpenGL)" ON \
|
||||
"heroic" "Heroic Launcher (Epic/GOG)" OFF \
|
||||
"java-jre" "Java Runtimes (8, 17, 21)" OFF \
|
||||
"java" "Java Runtimes (8, 17, 21)" OFF \
|
||||
"goverlay" "MangoHud config GUI" ON \
|
||||
"openrgb" "OpenRGB (RGB lighting control)$(_inst openrgb)" OFF \
|
||||
"lutris" "Game launcher/manager" OFF \
|
||||
"retroarch" "RetroArch Emulator Frontend$(_inst retroarch)" OFF \
|
||||
3>&1 1>&2 2>&3)
|
||||
|
||||
if [ -z "$choices" ]; then
|
||||
@@ -159,7 +174,7 @@ install_gaming() {
|
||||
fi
|
||||
;;
|
||||
heroic) install_heroic ;;
|
||||
java) _install_gaming_java ;;
|
||||
java) install_minecraft_java ;;
|
||||
mangohud) install_mangohud ;;
|
||||
gamemode) install_gamemode ;;
|
||||
goverlay) install_goverlay ;;
|
||||
@@ -171,6 +186,7 @@ install_gaming() {
|
||||
install_openrgb
|
||||
;;
|
||||
lutris) install_lutris ;;
|
||||
retroarch) install_retroarch ;;
|
||||
*) _run_install "$pkg" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
@@ -61,3 +61,30 @@ install_openrgb() {
|
||||
rm -f "${deb_path}"
|
||||
echo -e "${GREEN}OpenRGB installed. NOTE: You must reboot or log out/in for the 'i2c' group to take effect.${NC}"
|
||||
}
|
||||
|
||||
install_retroarch() {
|
||||
if is_installed "retroarch"; then
|
||||
echo "RetroArch already installed."
|
||||
return
|
||||
fi
|
||||
|
||||
_run_cmd "RetroArch" "sudo apt install -y retroarch libretro-mgba libretro-snes9x libretro-nestopia libretro-gambatte" "Installing RetroArch and classic cores (GBA, SNES, NES, GB)..."
|
||||
|
||||
clear
|
||||
echo "================================================================="
|
||||
echo " 🎮 IMPORTANT RETROARCH NOTICE 🎮"
|
||||
echo "================================================================="
|
||||
echo "Good news! Nintendo (NES/SNES) and Game Boy (GB/GBA) cores"
|
||||
echo "have been automatically installed and are ready to play!"
|
||||
echo ""
|
||||
echo "⚠️ However, due to Debian open-source guidelines:"
|
||||
echo " - Core auto-updates inside the app are disabled."
|
||||
echo " - Heavy/arcade cores or those requiring proprietary BIOS"
|
||||
echo " (like PlayStation or Arcade) must be handled manually."
|
||||
echo ""
|
||||
echo "👉 To learn how to unlock the internal Online Downloader:"
|
||||
echo " Please check our repository's documentation or visit:"
|
||||
echo " https://wiki.debian.org/RetroArch"
|
||||
echo "================================================================="
|
||||
read -p "Press ENTER to continue..."
|
||||
}
|
||||
|
||||
+12
-56
@@ -78,21 +78,17 @@ _enable_cuda_repo() {
|
||||
# CASE A: Trixie + Backports Kernel → Official CUDA Repo (Pinned v590)
|
||||
# -------------------------------------------------------------------
|
||||
_install_nvidia_cuda_repo() {
|
||||
local i386_active=false
|
||||
dpkg --print-foreign-architectures | grep -q i386 && i386_active=true
|
||||
|
||||
local warn="WARNING: Official Debian NVIDIA driver (v550)\n"
|
||||
warn+="fails to compile on Trixie Backports Kernels.\n\n"
|
||||
warn+="The script will configure the official NVIDIA CUDA\n"
|
||||
warn+="repository and force-install the stable production\n"
|
||||
warn+="branch v590.48.01 on your system.\n\n"
|
||||
warn+="The script will enable the official NVIDIA CUDA\n"
|
||||
warn+="repository and install the production branch v590\n"
|
||||
warn+="using NVIDIA's unified driver pinning packages.\n\n"
|
||||
warn+="Source: Official NVIDIA CUDA Repo (Pinned v590.*)\n"
|
||||
warn+="Driver: Production Branch 590.48.01 (Kernel 7.0+ Compliant)\n"
|
||||
warn+="[+] Full 64-bit Core & Compute Stack (DKMS)\n"
|
||||
if $i386_active; then
|
||||
warn+="[+] 32-bit Gaming Multiarch Libraries\n"
|
||||
fi
|
||||
warn+="[+] APT Pinning + Package Hold will be applied\n\n"
|
||||
warn+="Driver: Production Branch v590 (unified metapackage)\n"
|
||||
warn+="[+] nvidia-driver (full 64-bit compute + graphics)\n"
|
||||
warn+="[+] firmware-nvidia-gsp\n"
|
||||
warn+="[+] nvidia-driver-pinning-590 (branch locking)\n"
|
||||
warn+="[+] APT Pinning (version 590.*)\n\n"
|
||||
warn+="Do you want to proceed at your own risk?"
|
||||
|
||||
if ! _confirm_custom "NVIDIA Driver — Trixie + Backports" "$warn" "Proceed" "Abort" 18 70; then
|
||||
@@ -108,50 +104,10 @@ _install_nvidia_cuda_repo() {
|
||||
'printf "%s\n" "Package: *nvidia*" "Package: *cuda*" "Package: libcuda1" "Package: firmware-nvidia-gsp" "Pin: version 590.*" "Pin-Priority: 1001" | sudo tee /etc/apt/preferences.d/block-nvidia > /dev/null' \
|
||||
"Creating APT pinning to lock NVIDIA to v590 branch..."
|
||||
|
||||
# Step 3: Build version-locked package list
|
||||
local pkgs=(
|
||||
"cuda-drivers=590.48.01-1"
|
||||
"libcuda1=590.48.01-1"
|
||||
"nvidia-driver=590.48.01-1"
|
||||
"nvidia-driver-libs=590.48.01-1"
|
||||
"firmware-nvidia-gsp=590.48.01-1"
|
||||
"libegl-nvidia0=590.48.01-1"
|
||||
"libglx-nvidia0=590.48.01-1"
|
||||
"libnvidia-eglcore=590.48.01-1"
|
||||
"libnvidia-glcore=590.48.01-1"
|
||||
"libnvidia-glvkspirv=590.48.01-1"
|
||||
"libnvidia-ml1=590.48.01-1"
|
||||
"nvidia-egl-icd=590.48.01-1"
|
||||
"nvidia-vulkan-icd=590.48.01-1"
|
||||
"libnvcuvid1=590.48.01-1"
|
||||
"libnvidia-encode1=590.48.01-1"
|
||||
"nvidia-kernel-dkms=590.48.01-1"
|
||||
"nvidia-settings=590.48.01-1"
|
||||
"nvidia-smi=590.48.01-1"
|
||||
)
|
||||
|
||||
if $i386_active; then
|
||||
pkgs+=(
|
||||
"libcuda1:i386=590.48.01-1"
|
||||
"nvidia-driver-libs:i386=590.48.01-1"
|
||||
"libegl-nvidia0:i386=590.48.01-1"
|
||||
"libglx-nvidia0:i386=590.48.01-1"
|
||||
"libnvidia-eglcore:i386=590.48.01-1"
|
||||
"libnvidia-glcore:i386=590.48.01-1"
|
||||
"libnvidia-glvkspirv:i386=590.48.01-1"
|
||||
"libnvidia-ml1:i386=590.48.01-1"
|
||||
"nvidia-egl-icd:i386=590.48.01-1"
|
||||
"nvidia-vulkan-icd:i386=590.48.01-1"
|
||||
)
|
||||
fi
|
||||
|
||||
_run_cmd "NVIDIA CUDA" "sudo apt install -y ${pkgs[*]}" \
|
||||
"Installing NVIDIA Production Driver v590.48.01..."
|
||||
|
||||
# Step 4: Hold critical packages
|
||||
_run_cmd "Package Hold" \
|
||||
"sudo apt-mark hold cuda-drivers libcuda1 firmware-nvidia-gsp" \
|
||||
"Locking v590 packages to prevent accidental upgrades..."
|
||||
# Step 3: Install NVIDIA unified metapackages (driver pinning)
|
||||
_run_cmd "NVIDIA CUDA" \
|
||||
"sudo apt install -y nvidia-driver-pinning-590 nvidia-driver firmware-nvidia-gsp" \
|
||||
"Installing NVIDIA v590 production driver via unified metapackages..."
|
||||
|
||||
NVIDIA_DRIVER_MODE="cuda-repo"
|
||||
echo -e "${GREEN}NVIDIA Production Driver v590 installed from CUDA repo. Reboot required.${NC}"
|
||||
|
||||
Reference in New Issue
Block a user