# Prerequisites on the offline RHEL 9.6 host

This bundle ships **no RPMs on purpose**. It contains Python wheels only.

## Why no RPMs

The bundle was assembled on AlmaLinux 9. Alma RPMs are rebuilds: they satisfy
the same dependency names but are not the binaries Red Hat signed, and dropping
them onto a RHEL host mixes two vendors' builds in one transaction. That can
break `dnf` dependency resolution later and puts the host outside its support
boundary. Install the interpreter from the RHEL repositories you already have
(satellite, a local mirror, or the DVD/ISO media repo), not from here.

## What you need

### Python 3.9 (the RHEL 9 default interpreter)

Already present on every RHEL 9 installation. Confirm:

    python3 -V          # Python 3.9.x
    python3 -m venv --help >/dev/null && echo "venv ok"

`venv` lives in `python3-libs`, which is part of the base install. If it is
missing:

    dnf install python3 python3-libs

### Python 3.12

Shipped in the RHEL 9 AppStream repository as a parallel-installable
interpreter. It does **not** replace `/usr/bin/python3`:

    dnf install python3.12 python3.12-pip
    python3.12 -V       # Python 3.12.x

From the ISO media repo instead:

    dnf --disablerepo='*' --enablerepo=media-appstream install python3.12

### Not required

* **A compiler.** Every wheel in `wheels/` is a prebuilt binary
  (`manylinux_2_17_x86_64`, glibc 2.17+) or pure Python. RHEL 9.6 ships glibc
  2.34, so nothing is compiled at install time and `gcc`/`python3-devel` are
  not needed.
* **Network access.** `pip` runs with `--no-index`.

### Optional, only for audio and video components

`gr.Audio` and `gr.Video` shell out to **ffmpeg** for format conversion. ffmpeg
is not in the RHEL repositories and is not bundled here (licensing, plus size).
Text, image, file, dataframe, plot and chat components need nothing extra. If
you need audio or video, obtain ffmpeg separately through whatever channel your
site approves and put it on `PATH`.

## Architecture

The wheels are `x86_64` only. For `aarch64`, re-run the download step in
`docs/REBUILD.md` on an aarch64 host.
