fix: support Fedora/RHEL/Arch/openSUSE for GFK installation

On Fedora/RHEL, python3-venv package doesn't exist because the venv
module is already included with python3. The script was failing with:
  "No match for argument: python3-venv"

Fix: Handle venv installation per package manager:
- apt (Debian/Ubuntu): install python3.X-venv
- dnf (Fedora/RHEL 8+): just install python3-pip (venv included)
- yum (RHEL/CentOS 7): just install python3-pip
- pacman (Arch): install python-pip (venv included)
- zypper (openSUSE): install python3-pip (venv included)
- apk (Alpine): install py3-pip

Fixes #24
This commit is contained in:
SamNet-dev
2026-02-05 08:38:42 -06:00
parent 21a591b748
commit 6481762d23

View File

@@ -1155,18 +1155,46 @@ install_python_deps() {
return 1 return 1
fi fi
# Install python3-venv (version-specific package for Debian/Ubuntu) # Install venv support (varies by distro)
# The generic python3-venv may not work, need python3.X-venv # - Debian/Ubuntu: needs python3-venv or python3.X-venv package
local venv_pkg="python3-venv" # - Fedora/RHEL/Arch/openSUSE: venv included with python3, just need pip
if [ "$PKG_MANAGER" = "apt" ]; then # - Alpine: needs py3-pip
# Get specific version like python3.12-venv case "$PKG_MANAGER" in
apt)
# Debian/Ubuntu needs python3-venv package (version-specific)
local pyver_full local pyver_full
pyver_full=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")' 2>/dev/null) pyver_full=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")' 2>/dev/null)
if [ -n "$pyver_full" ]; then if [ -n "$pyver_full" ]; then
venv_pkg="python${pyver_full}-venv" install_package "python${pyver_full}-venv" || install_package "python3-venv"
else
install_package "python3-venv"
fi fi
fi ;;
install_package "$venv_pkg" dnf)
# Fedora/RHEL 8+: venv is included with python3, just ensure pip
install_package "python3-pip" || true
;;
yum)
# Older RHEL/CentOS 7
install_package "python3-pip" || true
;;
pacman)
# Arch Linux: venv included with python, pip is separate
install_package "python-pip" || true
;;
zypper)
# openSUSE: venv included with python3
install_package "python3-pip" || true
;;
apk)
# Alpine
install_package "py3-pip" || true
;;
*)
# Try generic python3-venv, ignore if fails (venv may be built-in)
install_package "python3-venv" 2>/dev/null || true
;;
esac
# Create virtual environment # Create virtual environment
local VENV_DIR="$INSTALL_DIR/venv" local VENV_DIR="$INSTALL_DIR/venv"