CUDA repository setup
NVIDIA hosts package repositories at:
https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/
Where <distro> is one of rhel6, rhel7, rhel8, rhel9,
rhel10, sles11, sles12, sles15, ubuntu1404, ubuntu1604,
ubuntu1804, ubuntu2004, ubuntu2204, ubuntu2404, ubuntu2604
and <arch> is x86_64, ppc64le (RHEL 7-8, Ubuntu 14.04-16.04), or
sbsa (ARM).
Note
Older Ubuntu releases (14.04, 16.04) use ppc64el instead of
ppc64le in the repository URL path.
Online setup
If nodes have network access, point otherpkgdir at the NVIDIA URL directly:
chdef -t osimage <osimage> -p \
otherpkgdir=https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>
The otherpkgs postscript will configure this as a package repository on
the node during provisioning.
Offline setup (air-gapped clusters)
For clusters without internet access, mirror the NVIDIA repository to a
local directory under /install on the management node.
RHEL
Use dnf download (or yumdownloader on RHEL 7) on a system with internet
access to download the CUDA packages and their dependencies:
mkdir -p /install/cuda/<distro>/<arch>
dnf download --resolve --destdir /install/cuda/<distro>/<arch> cuda
createrepo /install/cuda/<distro>/<arch>
For EPEL dependencies such as dkms:
dnf download --resolve --destdir /install/cuda/<distro>/<arch> dkms
createrepo /install/cuda/<distro>/<arch>
SLES
Use zypper download on a system with internet access:
mkdir -p /install/cuda/<distro>/<arch>
zypper --pkg-cache-dir /install/cuda/<distro>/<arch> download cuda
createrepo /install/cuda/<distro>/<arch>
For a runtime-only installation, replace cuda with
cuda-runtime-<major>-<minor> (e.g., cuda-runtime-13-2).
Ubuntu
Use apt download on a system with internet access:
mkdir -p /install/cuda/<distro>/<arch>
cd /install/cuda/<distro>/<arch>
apt download cuda $(apt-cache depends --recurse --no-recommends \
--no-suggests --no-conflicts --no-breaks --no-replaces \
--no-enhances cuda | grep "^\w" | sort -u)
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
Note
The offline approach requires downloading packages on a system running
the same OS version and architecture as the target nodes. Transfer the
resulting directory to the management node under /install.