Configure Installation ISOs as Persistent APT Sources#
Use Base Command Manager (BCM) Ubuntu installation ISOs as persistent local Advanced Package Tool (APT) sources when the BCM head node or software images cannot access network package repositories. Copy the contents of each ISO under /cm/shared/isos so that the BCM head node and cluster nodes can access the same packages through the BCM shared filesystem.
This procedure follows the local repository workflow in the NVIDIA Base Command Manager 11 Administrator Manual. Use an ISO that matches the BCM release, Ubuntu release, and CPU architecture of each installation target.
For a mixed-architecture deployment, complete the AMD64 instructions for the x86-64 BCM head node, control-plane images, and x86-64 DGX compute images. Complete the ARM64 instructions for the aarch64 DGX compute images. Run the commands on the active BCM head node as root.
Example Values#
The examples use the BCM 11.34 Ubuntu 26.04/DGX OS 8.0 ISO for both architectures. The AMD64 and ARM64 ISO files have the same filename. In a mixed-architecture deployment, stage and copy one ISO before replacing the file under /root with the ISO for the other architecture. The commands preserve both ISOs in separate architecture directories under /cm/shared/isos.
Setting |
Example value |
|---|---|
Staged ISO file |
|
ISO file in the shared filesystem |
|
Shared ISO contents |
|
BCM repository |
|
Ubuntu release |
|
Debian architecture |
|
Setting |
Example value |
|---|---|
Staged ISO file |
|
ISO file in the shared filesystem |
|
Shared ISO contents |
|
BCM repository |
|
Ubuntu release |
|
Debian architecture |
|
Create the APT Source Files#
Create the source files under /cm/shared/isos so that you can use the same files for the BCM head node and software images. Complete both tabs in a mixed-architecture deployment.
Create the base source file for the AMD64 BCM head node and general-purpose software images:
cat > /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64-iso.list <<'EOF' deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/11.34.0/ubuntu/2604/ ./ deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/dist/ubuntu/2604/ ./ EOF
Create the source file for AMD64 DGX compute images. This source file adds the package groups for NVIDIA drivers, CUDA, DGX OS, DOCA OFED, HPC software, and additional BCM packages:
cat > /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64-dgx-iso.list <<'EOF' deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/11.34.0/ubuntu/2604/ ./ deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/dist/ubuntu/2604/ ./ deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/default/ ./ deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/cuda/ ./ deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/dgx-os/ ./ deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/doca_ofed_3.4.1/ ./ deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/hpc/ ./ deb [arch=amd64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64/data/packages/packagegroups/bcm-extra/ ./ EOF
Create the base source file for general-purpose ARM64 software images:
cat > /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64-iso.list <<'EOF' deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/11.34.0/ubuntu/2604/ ./ deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/dist/ubuntu/2604/ ./ EOF
Create the source file for DGX compute images. This source file adds the package groups for NVIDIA drivers, CUDA, DGX OS, DOCA OFED, HPC software, and additional BCM packages:
cat > /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64-dgx-iso.list <<'EOF' deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/11.34.0/ubuntu/2604/ ./ deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/dist/ubuntu/2604/ ./ deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/default/ ./ deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/cuda/ ./ deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/dgx-os/ ./ deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/doca_ofed_3.4.1/ ./ deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/hpc/ ./ deb [arch=arm64 trusted=yes] file:///cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64/data/packages/packagegroups/bcm-extra/ ./ EOF
The copied ISO repositories use flat APT indexes without signed Release files. The trusted=yes option accepts packages from this physically controlled installation media and prevents APT authentication warnings for these sources. Do not use this option for a network-hosted repository.
Configure the BCM Head Node#
Complete only the tab that matches the output of dpkg --print-architecture on the BCM head node.
Copy the AMD64 source file into the BCM head node’s APT configuration and refresh the package metadata from that source:
dpkg --print-architecture cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64-iso.list \ /etc/apt/sources.list.d/ apt-get \ -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-amd64-iso.list \ -o Dir::Etc::sourceparts=- \ update
Install
cm-api-docsto verify package installation from the ISO source:apt-get \ -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-amd64-iso.list \ -o Dir::Etc::sourceparts=- \ install cm-api-docs
Copy the ARM64 base source file into the BCM head node’s APT configuration and refresh the package metadata from that source:
dpkg --print-architecture cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64-iso.list \ /etc/apt/sources.list.d/ apt-get \ -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-arm64-iso.list \ -o Dir::Etc::sourceparts=- \ update
Install
cm-api-docsto verify package installation from the ISO source:apt-get \ -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-arm64-iso.list \ -o Dir::Etc::sourceparts=- \ install cm-api-docs
Configure the Software Images#
The following loops list the BCM software images and add a source file to each image whose architecture matches the selected tab. The repository contents are already available to provisioned nodes through the /cm/shared Network File System (NFS) mount. Complete both tabs in a mixed-architecture deployment.
Add an APT source file to every AMD64 software image. Images that contain the dgx-release package receive the DGX source file with the additional package groups. Other AMD64 images receive the base BCM and Ubuntu source file.
Add APT Sources to Software Images
for IMAGE_DIR in $(cmsh -c "softwareimage; foreach * (get path)"); do
IMAGE_ARCH=$(dpkg --root="$IMAGE_DIR" --print-architecture 2>/dev/null || true)
[ "$IMAGE_ARCH" = "amd64" ] || continue
printf 'Adding AMD64 ISO sources to %s\n' "$IMAGE_DIR"
mkdir -p "$IMAGE_DIR/etc/apt/sources.list.d"
if dpkg-query --admindir="$IMAGE_DIR/var/lib/dpkg" -W -f='${db:Status-Abbrev}\n' dgx-release 2>/dev/null | grep -q '^ii '; then
cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64-dgx-iso.list \
"$IMAGE_DIR/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-amd64-iso.list"
else
cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-amd64-iso.list \
"$IMAGE_DIR/etc/apt/sources.list.d/"
fi
done
Add an APT source file to every ARM64 software image. Images that contain the dgx-release package receive the DGX source file with the additional package groups. Other ARM64 images receive the base BCM and Ubuntu source file.
Add APT Sources to Software Images
for IMAGE_DIR in $(cmsh -c "softwareimage; foreach * (get path)"); do
IMAGE_ARCH=$(dpkg --root="$IMAGE_DIR" --print-architecture 2>/dev/null || true)
[ "$IMAGE_ARCH" = "arm64" ] || continue
printf 'Adding ARM64 ISO sources to %s\n' "$IMAGE_DIR"
mkdir -p "$IMAGE_DIR/etc/apt/sources.list.d"
if dpkg-query --admindir="$IMAGE_DIR/var/lib/dpkg" -W -f='${db:Status-Abbrev}\n' dgx-release 2>/dev/null | grep -q '^ii '; then
cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64-dgx-iso.list \
"$IMAGE_DIR/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-arm64-iso.list"
else
cp /cm/shared/isos/bcm-11.34.0-ubuntu2604-arm64-iso.list \
"$IMAGE_DIR/etc/apt/sources.list.d/"
fi
done
Nodes that are already provisioned require an image update before they receive the source file. After a node boots and mounts /cm/shared, use apt-get update to refresh its package metadata.
Maintain the ISO Sources#
Keep the copied ISO contents and source files under /cm/shared/isos for future package installation and dependency resolution. To replace the contents with an updated ISO for the same BCM release, replace the architecture-specific directory and run apt-get update on the affected BCM head node or cluster nodes.
Use a separate contents directory and source filename for each BCM release, Ubuntu release, and architecture. Do not combine repositories from different BCM or Ubuntu releases for one installation target.
Retire an ISO Source#
Remove an ISO source only when its packages are no longer required or another offline package source replaces it.
Remove the source file from the AMD64 software images and the BCM head node:
for IMAGE_DIR in $(cmsh -c "softwareimage; foreach * (get path)"); do
IMAGE_ARCH=$(dpkg --root="$IMAGE_DIR" --print-architecture 2>/dev/null || true)
[ "$IMAGE_ARCH" = "amd64" ] || continue
rm -f "$IMAGE_DIR/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-amd64-iso.list"
done
rm -f /etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-amd64-iso.list
Remove the source file from the ARM64 software images and the BCM head node:
for IMAGE_DIR in $(cmsh -c "softwareimage; foreach * (get path)"); do
IMAGE_ARCH=$(dpkg --root="$IMAGE_DIR" --print-architecture 2>/dev/null || true)
[ "$IMAGE_ARCH" = "arm64" ] || continue
rm -f "$IMAGE_DIR/etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-arm64-iso.list"
done
rm -f /etc/apt/sources.list.d/bcm-11.34.0-ubuntu2604-arm64-iso.list
The ISO files, copied contents, and source templates remain under /cm/shared/isos until you archive or remove them.