diff --git a/go.sh b/go.sh index 142cd95..323f853 100644 --- a/go.sh +++ b/go.sh @@ -59,14 +59,32 @@ install_debian() { } # ----------------------------- -# Fedora/Bazzite installer +# Fedora/Bazzite installer (immutable-aware) # ----------------------------- install_fedora() { if [ "$IMMUTABLE" = true ]; then echo "Immutable Fedora/Bazzite detected." - echo "Layering 32-bit libraries via rpm-ostree..." - run_cmd "sudo rpm-ostree install glibc.i686 libstdc++.i686 zlib.i686 ncurses-libs.i686 glibc-devel.i686 libstdc++-devel.i686" - echo "Reboot required for layered packages to take effect." + + # List of 32-bit packages we want + PKGS=("glibc.i686" "libstdc++.i686" "zlib.i686" "ncurses-libs.i686" "glibc-devel.i686" "libstdc++-devel.i686") + + # Filter out packages that are already installed + TO_INSTALL=() + for pkg in "${PKGS[@]}"; do + if rpm -q "$pkg" &>/dev/null; then + echo "$pkg is already installed, skipping." + else + TO_INSTALL+=("$pkg") + fi + done + + if [ ${#TO_INSTALL[@]} -eq 0 ]; then + echo "All required 32-bit packages are already installed. Nothing to do." + else + echo "Layering 32-bit libraries via rpm-ostree: ${TO_INSTALL[*]}" + run_cmd "sudo rpm-ostree install ${TO_INSTALL[*]}" + echo "Reboot required for layered packages to take effect." + fi else echo "Installing 32-bit libraries via dnf..." run_cmd "sudo dnf install -y glibc.i686 libstdc++.i686 zlib.i686 ncurses-libs.i686"